From 5f6e785e0abe416b0fadab33c66abe7194f6e07a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 20:30:08 +0000 Subject: [PATCH 01/60] Bump eslint-plugin-import in /DigitalLearningSolutions.Web (#3298) Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.31.0 to 2.32.0. - [Release notes](https://github.com/import-js/eslint-plugin-import/releases) - [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.31.0...v2.32.0) --- updated-dependencies: - dependency-name: eslint-plugin-import dependency-version: 2.32.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 311 +++++++++++++++------- 2 files changed, 218 insertions(+), 95 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 77447fa236..7c2bbd3820 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -51,7 +51,7 @@ "eslint": "^8.57.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-import-resolver-webpack": "^0.13.10", - "eslint-plugin-import": "^2.31.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-jasmine": "^4.2.2", "fork-ts-checker-webpack-plugin": "^9.0.3", "glob": "^8.1.0", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 6aed671f98..e992f48105 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -61,16 +61,12 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" -"@babel/generator@^7.27.0": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" - integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.27.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" + integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== dependencies: - "@babel/parser" "^7.27.0" - "@babel/types" "^7.27.0" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^3.0.2" + "@babel/types" "^7.27.3" "@babel/helper-annotate-as-pure@^7.25.9": version "7.25.9" @@ -123,19 +119,6 @@ "@babel/traverse" "^7.27.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.27.0": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz#518fad6a307c6a96f44af14912b2c20abe9bfc30" - integrity sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-member-expression-to-functions" "^7.25.9" - "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/helper-replace-supers" "^7.26.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/traverse" "^7.27.0" - semver "^6.3.1" - "@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.21.8" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz#a7886f61c2e29e21fd4aaeaf1e473deba6b571dc" @@ -260,12 +243,12 @@ "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helper-string-parser@^7.27.1": +"@babel/helper-string-parser@^7.25.9", "@babel/helper-string-parser@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== -"@babel/helper-validator-identifier@^7.27.1": +"@babel/helper-validator-identifier@^7.25.9", "@babel/helper-validator-identifier@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== @@ -299,6 +282,13 @@ dependencies: "@babel/types" "^7.27.3" +"@babel/parser@^7.20.7": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.5.tgz#ed22f871f110aa285a6fd934a0efed621d118826" + integrity sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg== + dependencies: + "@babel/types" "^7.27.3" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9" @@ -364,6 +354,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-import-assertions@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" @@ -371,7 +368,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-import-attributes@^7.27.1": +"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== @@ -1003,16 +1000,15 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.25.9", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.25.9", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.27.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.3.tgz#c0257bedf33aad6aad1f406d35c44758321eb3ec" integrity sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw== - dependencies: "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" -"@babel/types@^7.20.7", "@babel/types@^7.26.7", "@babel/types@^7.27.0": +"@babel/types@^7.20.7": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== @@ -2054,36 +2050,39 @@ array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: call-bound "^1.0.3" is-array-buffer "^3.0.5" -array-includes@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" - integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== +array-includes@^3.1.9: + version "3.1.9" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz#1f0ccaa08e90cdbc3eb433210f903ad0f17c3f3a" + integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - is-string "^1.0.7" + es-abstract "^1.24.0" + es-object-atoms "^1.1.1" + get-intrinsic "^1.3.0" + is-string "^1.1.1" + math-intrinsics "^1.1.0" array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" - integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== +array.prototype.findlastindex@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz#cfa1065c81dcb64e34557c9b81d012f6a421c564" + integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" define-properties "^1.2.1" - es-abstract "^1.23.2" + es-abstract "^1.23.9" es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" + es-object-atoms "^1.1.1" + es-shim-unscopables "^1.1.0" -array.prototype.flat@^1.3.2: +array.prototype.flat@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== @@ -2093,7 +2092,7 @@ array.prototype.flat@^1.3.2: es-abstract "^1.23.5" es-shim-unscopables "^1.0.2" -array.prototype.flatmap@^1.3.2: +array.prototype.flatmap@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== @@ -2300,6 +2299,14 @@ call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: es-errors "^1.3.0" function-bind "^1.1.2" +call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + call-bind@^1.0.7, call-bind@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" @@ -2318,6 +2325,14 @@ call-bound@^1.0.2, call-bound@^1.0.3: call-bind-apply-helpers "^1.0.1" get-intrinsic "^1.2.6" +call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -2852,6 +2867,66 @@ es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.9: unbox-primitive "^1.1.0" which-typed-array "^1.1.18" +es-abstract@^1.24.0: + version "1.24.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz#c44732d2beb0acc1ed60df840869e3106e7af328" + integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.3.0" + get-proto "^1.0.1" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" + is-callable "^1.2.7" + is-data-view "^1.0.2" + is-negative-zero "^2.0.3" + is-regex "^1.2.1" + is-set "^2.0.3" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.1" + math-intrinsics "^1.1.0" + object-inspect "^1.13.4" + object-keys "^1.1.1" + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.4" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + stop-iteration-iterator "^1.1.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.19" + es-define-property@^1.0.0, es-define-property@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" @@ -2867,7 +2942,7 @@ es-module-lexer@^1.2.1: resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== -es-object-atoms@^1.0.0: +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== @@ -2891,6 +2966,13 @@ es-shim-unscopables@^1.0.2: dependencies: hasown "^2.0.0" +es-shim-unscopables@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" + integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== + dependencies: + hasown "^2.0.2" + es-to-primitive@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" @@ -2966,36 +3048,36 @@ eslint-import-resolver-webpack@^0.13.10: resolve "^2.0.0-next.5" semver "^5.7.2" -eslint-module-utils@^2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" - integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== +eslint-module-utils@^2.12.1: + version "2.12.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz#f76d3220bfb83c057651359295ab5854eaad75ff" + integrity sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw== dependencies: debug "^3.2.7" -eslint-plugin-import@^2.31.0: - version "2.31.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" - integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== +eslint-plugin-import@^2.32.0: + version "2.32.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz#602b55faa6e4caeaa5e970c198b5c00a37708980" + integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== dependencies: "@rtsao/scc" "^1.1.0" - array-includes "^3.1.8" - array.prototype.findlastindex "^1.2.5" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" + array-includes "^3.1.9" + array.prototype.findlastindex "^1.2.6" + array.prototype.flat "^1.3.3" + array.prototype.flatmap "^1.3.3" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.12.0" + eslint-module-utils "^2.12.1" hasown "^2.0.2" - is-core-module "^2.15.1" + is-core-module "^2.16.1" is-glob "^4.0.3" minimatch "^3.1.2" object.fromentries "^2.0.8" object.groupby "^1.0.3" - object.values "^1.2.0" + object.values "^1.2.1" semver "^6.3.1" - string.prototype.trimend "^1.0.8" + string.prototype.trimend "^1.0.9" tsconfig-paths "^3.15.0" eslint-plugin-jasmine@^4.2.2: @@ -3274,6 +3356,13 @@ for-each@^0.3.3: dependencies: is-callable "^1.2.7" +for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== + dependencies: + is-callable "^1.2.7" + foreground-child@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" @@ -3381,6 +3470,22 @@ get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@ hasown "^2.0.2" math-intrinsics "^1.1.0" +get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -3718,14 +3823,7 @@ is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== - dependencies: - hasown "^2.0.2" - -is-core-module@^2.16.0: +is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0, is-core-module@^2.16.1: version "2.16.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== @@ -3793,6 +3891,11 @@ is-map@^2.0.3: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + is-number-object@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" @@ -3860,7 +3963,7 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.7, is-string@^1.1.1: +is-string@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== @@ -3896,6 +3999,13 @@ is-weakref@^1.0.2, is-weakref@^1.1.0: dependencies: call-bound "^1.0.2" +is-weakref@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== + dependencies: + call-bound "^1.0.3" + is-weakset@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" @@ -4481,6 +4591,11 @@ jsesc@^3.0.2: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + jsesc@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" @@ -4834,6 +4949,11 @@ object-inspect@^1.13.3: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== +object-inspect@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -4879,7 +4999,7 @@ object.groupby@^1.0.3: define-properties "^1.2.1" es-abstract "^1.23.2" -object.values@^1.2.0: +object.values@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== @@ -5232,25 +5352,7 @@ regenerator-runtime@^0.14.0, regenerator-runtime@^0.14.1: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - -regexp.prototype.flags@^1.5.3: +regexp.prototype.flags@^1.5.3, regexp.prototype.flags@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== @@ -5670,6 +5772,14 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +stop-iteration-iterator@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad" + integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== + dependencies: + es-errors "^1.3.0" + internal-slot "^1.1.0" + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -5728,7 +5838,7 @@ string.prototype.trim@^1.2.10: es-object-atoms "^1.0.0" has-property-descriptors "^1.0.2" -string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9: +string.prototype.trimend@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== @@ -6314,6 +6424,19 @@ which-typed-array@^1.1.16, which-typed-array@^1.1.18: gopd "^1.2.0" has-tostringtag "^1.0.2" +which-typed-array@^1.1.19: + version "1.1.19" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" + integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" From 81697f0456253e1a0e0d64f425605b183dab17d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Jun 2025 18:43:48 +0000 Subject: [PATCH 02/60] Bump @types/lodash in /DigitalLearningSolutions.Web (#3302) Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.18 to 4.17.19. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash) --- updated-dependencies: - dependency-name: "@types/lodash" dependency-version: 4.17.19 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 7c2bbd3820..27a201cb41 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -43,7 +43,7 @@ "@types/js-cookie": "^3.0.6", "@types/js-search": "^1.4.4", "@types/jsdom": "^16.2.15", - "@types/lodash": "^4.17.18", + "@types/lodash": "^4.17.19", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "babel-jest": "^28.1.3", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index e992f48105..918562189d 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -1589,10 +1589,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash@^4.17.18": - version "4.17.18" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.18.tgz#4710e7db5b3857103764bf7b7b666414e6141baf" - integrity sha512-KJ65INaxqxmU6EoCiJmRPZC9H9RVWCRd349tXM2M3O5NA7cY6YL7c0bHAHQ93NOfTObEQ004kd2QVHs/r0+m4g== +"@types/lodash@^4.17.19": + version "4.17.19" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.19.tgz#de18c90b7891f00fed7c1273495a2f851efd99c4" + integrity sha512-NYqRyg/hIQrYPT9lbOeYc3kIRabJDn/k4qQHIXUpx88CBDww2fD15Sg5kbXlW86zm2XEW4g0QxkTI3/Kfkc7xQ== "@types/node@*": version "22.12.0" From 208a1bced20b16b26f8f6c8198e863dd843054c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Jun 2025 18:44:33 +0000 Subject: [PATCH 03/60] Bump @babel/core from 7.27.4 to 7.27.7 in /DigitalLearningSolutions.Web (#3301) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.27.4 to 7.27.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.27.7/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-version: 7.27.7 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 89 ++++++++++------------- 2 files changed, 38 insertions(+), 53 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 27a201cb41..32bee03d27 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -35,7 +35,7 @@ "regenerator-runtime": "^0.14.1" }, "devDependencies": { - "@babel/core": "^7.27.4", + "@babel/core": "^7.27.7", "@babel/preset-env": "^7.27.1", "@babel/preset-typescript": "^7.27.0", "@types/dompurify": "^2.3.3", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 918562189d..130050f741 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -29,33 +29,33 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.3.tgz#cc49c2ac222d69b889bf34c795f537c0c6311111" integrity sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.27.4": - version "7.27.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.4.tgz#cc1fc55d0ce140a1828d1dd2a2eba285adbfb3ce" - integrity sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.27.7": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.7.tgz#0ddeab1e7b17317dad8c3c3a887716f66b5c4428" + integrity sha512-BU2f9tlKQ5CAthiMIgpzAh4eDTLWo1mqi9jqE2OxMG0E/OM199VJt2q8BztTxpnSW0i1ymdwLXRJnYzvDM5r2w== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.3" + "@babel/generator" "^7.27.5" "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-module-transforms" "^7.27.3" - "@babel/helpers" "^7.27.4" - "@babel/parser" "^7.27.4" + "@babel/helpers" "^7.27.6" + "@babel/parser" "^7.27.7" "@babel/template" "^7.27.2" - "@babel/traverse" "^7.27.4" - "@babel/types" "^7.27.3" + "@babel/traverse" "^7.27.7" + "@babel/types" "^7.27.7" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.27.3", "@babel/generator@^7.7.2": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.3.tgz#ef1c0f7cfe3b5fc8cbb9f6cc69f93441a68edefc" - integrity sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q== +"@babel/generator@^7.27.5", "@babel/generator@^7.7.2": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.5.tgz#3eb01866b345ba261b04911020cbe22dd4be8c8c" + integrity sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw== dependencies: - "@babel/parser" "^7.27.3" + "@babel/parser" "^7.27.5" "@babel/types" "^7.27.3" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" @@ -243,12 +243,12 @@ "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helper-string-parser@^7.25.9", "@babel/helper-string-parser@^7.27.1": +"@babel/helper-string-parser@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== -"@babel/helper-validator-identifier@^7.25.9", "@babel/helper-validator-identifier@^7.27.1": +"@babel/helper-validator-identifier@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== @@ -267,27 +267,20 @@ "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helpers@^7.27.4": - version "7.27.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.4.tgz#c79050c6a0e41e095bfc96d469c85431e9ed7fe7" - integrity sha512-Y+bO6U+I7ZKaM5G5rDUZiYfUvQPUibYmAFe7EnKdnKBbVXDZxvp+MWOH5gYciY0EPk4EScsuFMQBbEfpdRKSCQ== +"@babel/helpers@^7.27.6": + version "7.27.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.6.tgz#6456fed15b2cb669d2d1fabe84b66b34991d812c" + integrity sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug== dependencies: "@babel/template" "^7.27.2" - "@babel/types" "^7.27.3" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.27.2", "@babel/parser@^7.27.3", "@babel/parser@^7.27.4": - version "7.27.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.4.tgz#f92e89e4f51847be05427285836fc88341c956df" - integrity sha512-BRmLHGwpUqLFR2jzx9orBuX/ABDkj2jLKOXrHDTN2aOKL+jFDDKaRNo9nyYsIl9h/UE/7lMKdDjKQQyxKKDZ7g== - dependencies: - "@babel/types" "^7.27.3" + "@babel/types" "^7.27.6" -"@babel/parser@^7.20.7": - version "7.27.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.5.tgz#ed22f871f110aa285a6fd934a0efed621d118826" - integrity sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.27.5", "@babel/parser@^7.27.7": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.7.tgz#1687f5294b45039c159730e3b9c1f1b242e425e9" + integrity sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q== dependencies: - "@babel/types" "^7.27.3" + "@babel/types" "^7.27.7" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": version "7.27.1" @@ -987,35 +980,27 @@ "@babel/parser" "^7.27.2" "@babel/types" "^7.27.1" -"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.27.0", "@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.27.4", "@babel/traverse@^7.7.2": - version "7.27.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.4.tgz#b0045ac7023c8472c3d35effd7cc9ebd638da6ea" - integrity sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA== +"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.27.0", "@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.27.7", "@babel/traverse@^7.7.2": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.7.tgz#8355c39be6818362eace058cf7f3e25ac2ec3b55" + integrity sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw== dependencies: "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.3" - "@babel/parser" "^7.27.4" + "@babel/generator" "^7.27.5" + "@babel/parser" "^7.27.7" "@babel/template" "^7.27.2" - "@babel/types" "^7.27.3" + "@babel/types" "^7.27.7" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.25.9", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.3.tgz#c0257bedf33aad6aad1f406d35c44758321eb3ec" - integrity sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6", "@babel/types@^7.27.7", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.7.tgz#40eabd562049b2ee1a205fa589e629f945dce20f" + integrity sha512-8OLQgDScAOHXnAz2cV+RfzzNMipuLVBz2biuAJFMV9bfkNf393je3VM8CLkjQodW5+iWsSJdSgSWT6rsZoXHPw== dependencies: "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" -"@babel/types@^7.20.7": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" - integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== - dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" From 0e04fd8f78eda894a755976393c3fd00dc26347d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 19:07:56 +0000 Subject: [PATCH 04/60] Bump @types/lodash in /DigitalLearningSolutions.Web (#3308) Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.19 to 4.17.20. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash) --- updated-dependencies: - dependency-name: "@types/lodash" dependency-version: 4.17.20 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 32bee03d27..ad7add5f2f 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -43,7 +43,7 @@ "@types/js-cookie": "^3.0.6", "@types/js-search": "^1.4.4", "@types/jsdom": "^16.2.15", - "@types/lodash": "^4.17.19", + "@types/lodash": "^4.17.20", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "babel-jest": "^28.1.3", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 130050f741..db35bb412c 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -1574,10 +1574,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash@^4.17.19": - version "4.17.19" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.19.tgz#de18c90b7891f00fed7c1273495a2f851efd99c4" - integrity sha512-NYqRyg/hIQrYPT9lbOeYc3kIRabJDn/k4qQHIXUpx88CBDww2fD15Sg5kbXlW86zm2XEW4g0QxkTI3/Kfkc7xQ== +"@types/lodash@^4.17.20": + version "4.17.20" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.20.tgz#1ca77361d7363432d29f5e55950d9ec1e1c6ea93" + integrity sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA== "@types/node@*": version "22.12.0" From c8f173bcb9fb733f25158d6628549fc7a01a3ac4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 19:09:04 +0000 Subject: [PATCH 05/60] Bump @babel/core from 7.27.7 to 7.28.0 in /DigitalLearningSolutions.Web (#3307) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.27.7 to 7.28.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.28.0/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-version: 7.28.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 92 +++++++++++++++-------- 2 files changed, 60 insertions(+), 34 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index ad7add5f2f..27ff246fa9 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -35,7 +35,7 @@ "regenerator-runtime": "^0.14.1" }, "devDependencies": { - "@babel/core": "^7.27.7", + "@babel/core": "^7.28.0", "@babel/preset-env": "^7.27.1", "@babel/preset-typescript": "^7.27.0", "@types/dompurify": "^2.3.3", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index db35bb412c..04d3784a09 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -29,36 +29,36 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.3.tgz#cc49c2ac222d69b889bf34c795f537c0c6311111" integrity sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.27.7": - version "7.27.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.7.tgz#0ddeab1e7b17317dad8c3c3a887716f66b5c4428" - integrity sha512-BU2f9tlKQ5CAthiMIgpzAh4eDTLWo1mqi9jqE2OxMG0E/OM199VJt2q8BztTxpnSW0i1ymdwLXRJnYzvDM5r2w== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.0.tgz#55dad808d5bf3445a108eefc88ea3fdf034749a4" + integrity sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.5" + "@babel/generator" "^7.28.0" "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-module-transforms" "^7.27.3" "@babel/helpers" "^7.27.6" - "@babel/parser" "^7.27.7" + "@babel/parser" "^7.28.0" "@babel/template" "^7.27.2" - "@babel/traverse" "^7.27.7" - "@babel/types" "^7.27.7" + "@babel/traverse" "^7.28.0" + "@babel/types" "^7.28.0" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.27.5", "@babel/generator@^7.7.2": - version "7.27.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.5.tgz#3eb01866b345ba261b04911020cbe22dd4be8c8c" - integrity sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw== +"@babel/generator@^7.28.0", "@babel/generator@^7.7.2": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.0.tgz#9cc2f7bd6eb054d77dc66c2664148a0c5118acd2" + integrity sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg== dependencies: - "@babel/parser" "^7.27.5" - "@babel/types" "^7.27.3" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" + "@babel/parser" "^7.28.0" + "@babel/types" "^7.28.0" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" "@babel/helper-annotate-as-pure@^7.18.6": @@ -148,6 +148,11 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + "@babel/helper-member-expression-to-functions@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" @@ -275,12 +280,12 @@ "@babel/template" "^7.27.2" "@babel/types" "^7.27.6" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.27.5", "@babel/parser@^7.27.7": - version "7.27.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.7.tgz#1687f5294b45039c159730e3b9c1f1b242e425e9" - integrity sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.0.tgz#979829fbab51a29e13901e5a80713dbcb840825e" + integrity sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g== dependencies: - "@babel/types" "^7.27.7" + "@babel/types" "^7.28.0" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": version "7.27.1" @@ -980,23 +985,23 @@ "@babel/parser" "^7.27.2" "@babel/types" "^7.27.1" -"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.27.0", "@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.27.7", "@babel/traverse@^7.7.2": - version "7.27.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.7.tgz#8355c39be6818362eace058cf7f3e25ac2ec3b55" - integrity sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw== +"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.27.0", "@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.28.0", "@babel/traverse@^7.7.2": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.0.tgz#518aa113359b062042379e333db18380b537e34b" + integrity sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg== dependencies: "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.5" - "@babel/parser" "^7.27.7" + "@babel/generator" "^7.28.0" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.0" "@babel/template" "^7.27.2" - "@babel/types" "^7.27.7" + "@babel/types" "^7.28.0" debug "^4.3.1" - globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6", "@babel/types@^7.27.7", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.27.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.7.tgz#40eabd562049b2ee1a205fa589e629f945dce20f" - integrity sha512-8OLQgDScAOHXnAz2cV+RfzzNMipuLVBz2biuAJFMV9bfkNf393je3VM8CLkjQodW5+iWsSJdSgSWT6rsZoXHPw== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6", "@babel/types@^7.28.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.0.tgz#2fd0159a6dc7353933920c43136335a9b264d950" + integrity sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg== dependencies: "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" @@ -1290,6 +1295,14 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jridgewell/gen-mapping@^0.3.12": + version "0.3.12" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz#2234ce26c62889f03db3d7fea43c1932ab3e927b" + integrity sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/gen-mapping@^0.3.5": version "0.3.8" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" @@ -1337,6 +1350,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz#7358043433b2e5da569aa02cbc4c121da3af27d7" + integrity sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw== + "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" @@ -1361,6 +1379,14 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jridgewell/trace-mapping@^0.3.28": + version "0.3.29" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz#a58d31eaadaf92c6695680b2e1d464a9b8fbf7fc" + integrity sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" From 67fce1fdf3f3522781eb5c4a60680181db2c82f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 19:18:17 +0000 Subject: [PATCH 06/60] Bump @babel/preset-env in /DigitalLearningSolutions.Web (#3306) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.27.1 to 7.28.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.28.0/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-version: 7.28.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 239 +++++++++++++--------- 2 files changed, 139 insertions(+), 102 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 27ff246fa9..56dddb3b95 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -36,7 +36,7 @@ }, "devDependencies": { "@babel/core": "^7.28.0", - "@babel/preset-env": "^7.27.1", + "@babel/preset-env": "^7.28.0", "@babel/preset-typescript": "^7.27.0", "@types/dompurify": "^2.3.3", "@types/jest": "^27.5.2", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 04d3784a09..464fc30ec5 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -19,15 +19,10 @@ js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.1.tgz#db7cf122745e0a332c44e847ddc4f5e5221a43f6" - integrity sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A== - -"@babel/compat-data@^7.27.2": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.3.tgz#cc49c2ac222d69b889bf34c795f537c0c6311111" - integrity sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw== +"@babel/compat-data@^7.27.2", "@babel/compat-data@^7.27.7", "@babel/compat-data@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.0.tgz#9fc6fd58c2a6a15243cd13983224968392070790" + integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.28.0": version "7.28.0" @@ -61,7 +56,7 @@ "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/helper-annotate-as-pure@^7.18.6": +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.27.3": version "7.27.3" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== @@ -82,7 +77,7 @@ dependencies: "@babel/types" "^7.27.1" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": +"@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== @@ -137,16 +132,16 @@ regexpu-core "^6.2.0" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.3": - version "0.6.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21" - integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== +"@babel/helper-define-polyfill-provider@^0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz#742ccf1cb003c07b48859fc9fa2c1bbe40e5f753" + integrity sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg== dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + debug "^4.4.1" lodash.debounce "^4.0.8" - resolve "^1.14.2" + resolve "^1.22.10" "@babel/helper-globals@^7.28.0": version "7.28.0" @@ -200,7 +195,7 @@ dependencies: "@babel/types" "^7.27.1" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== @@ -479,14 +474,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-async-generator-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz#ca433df983d68e1375398e7ca71bf2a4f6fd89d7" - integrity sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA== +"@babel/plugin-transform-async-generator-functions@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz#1276e6c7285ab2cd1eccb0bc7356b7a69ff842c2" + integrity sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-remap-async-to-generator" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.28.0" "@babel/plugin-transform-async-to-generator@^7.27.1": version "7.27.1" @@ -504,10 +499,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-block-scoping@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz#bc0dbe8ac6de5602981ba58ef68c6df8ef9bfbb3" - integrity sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw== +"@babel/plugin-transform-block-scoping@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz#e7c50cbacc18034f210b93defa89638666099451" + integrity sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -527,17 +522,17 @@ "@babel/helper-create-class-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-classes@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz#03bb04bea2c7b2f711f0db7304a8da46a85cced4" - integrity sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA== +"@babel/plugin-transform-classes@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz#12fa46cffc32a6e084011b650539e880add8a0f8" + integrity sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-globals" "^7.28.0" "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.27.1" - globals "^11.1.0" + "@babel/traverse" "^7.28.0" "@babel/plugin-transform-computed-properties@^7.27.1": version "7.27.1" @@ -547,12 +542,13 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/template" "^7.27.1" -"@babel/plugin-transform-destructuring@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz#d5916ef7089cb254df0418ae524533c1b72ba656" - integrity sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q== +"@babel/plugin-transform-destructuring@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz#0f156588f69c596089b7d5b06f5af83d9aa7f97a" + integrity sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A== dependencies: "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.28.0" "@babel/plugin-transform-dotall-regex@^7.27.1": version "7.27.1" @@ -584,6 +580,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" +"@babel/plugin-transform-explicit-resource-management@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz#45be6211b778dbf4b9d54c4e8a2b42fa72e09a1a" + integrity sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.28.0" + "@babel/plugin-transform-exponentiation-operator@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz#fc497b12d8277e559747f5a3ed868dd8064f83e1" @@ -706,14 +710,16 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-object-rest-spread@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.1.tgz#845bdcd74c87b8f565c25cc6812f7f4f43c9ed79" - integrity sha512-/sSliVc9gHE20/7D5qsdGlq7RG5NCDTWsAhyqzGuq174EtWJoGzIu1BQ7G56eDsTcy1jseBZwv50olSdXOlGuA== +"@babel/plugin-transform-object-rest-spread@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz#d23021857ffd7cd809f54d624299b8086402ed8d" + integrity sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA== dependencies: - "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-parameters" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.28.0" + "@babel/plugin-transform-parameters" "^7.27.7" + "@babel/traverse" "^7.28.0" "@babel/plugin-transform-object-super@^7.27.1": version "7.27.1" @@ -738,10 +744,10 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-parameters@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz#80334b54b9b1ac5244155a0c8304a187a618d5a7" - integrity sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg== +"@babel/plugin-transform-parameters@^7.27.7": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz#1fd2febb7c74e7d21cf3b05f7aebc907940af53a" + integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -769,10 +775,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz#0a471df9213416e44cd66bf67176b66f65768401" - integrity sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw== +"@babel/plugin-transform-regenerator@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.0.tgz#f19ca3558f7121924fc4ba6cd2afe3a5cdac89b1" + integrity sha512-LOAozRVbqxEVjSKfhGnuLoE4Kz4Oc5UJzuvFUhSsQzdCdaAQu06mG8zDv2GFSerM62nImUZ7K92vxnQcLSDlCQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -869,13 +875,13 @@ "@babel/helper-create-regexp-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/preset-env@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.27.1.tgz#23463ab94f36540630924f5de3b4c7a8dde3b6a2" - integrity sha512-TZ5USxFpLgKDpdEt8YWBR7p6g+bZo6sHaXLqP2BY/U0acaoI8FTVflcYCr/v94twM1C5IWFdZ/hscq9WjUeLXA== +"@babel/preset-env@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.0.tgz#d23a6bc17b43227d11db77081a0779c706b5569c" + integrity sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg== dependencies: - "@babel/compat-data" "^7.27.1" - "@babel/helper-compilation-targets" "^7.27.1" + "@babel/compat-data" "^7.28.0" + "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-validator-option" "^7.27.1" "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" @@ -888,19 +894,20 @@ "@babel/plugin-syntax-import-attributes" "^7.27.1" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.27.1" - "@babel/plugin-transform-async-generator-functions" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.28.0" "@babel/plugin-transform-async-to-generator" "^7.27.1" "@babel/plugin-transform-block-scoped-functions" "^7.27.1" - "@babel/plugin-transform-block-scoping" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.28.0" "@babel/plugin-transform-class-properties" "^7.27.1" "@babel/plugin-transform-class-static-block" "^7.27.1" - "@babel/plugin-transform-classes" "^7.27.1" + "@babel/plugin-transform-classes" "^7.28.0" "@babel/plugin-transform-computed-properties" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.28.0" "@babel/plugin-transform-dotall-regex" "^7.27.1" "@babel/plugin-transform-duplicate-keys" "^7.27.1" "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" "@babel/plugin-transform-dynamic-import" "^7.27.1" + "@babel/plugin-transform-explicit-resource-management" "^7.28.0" "@babel/plugin-transform-exponentiation-operator" "^7.27.1" "@babel/plugin-transform-export-namespace-from" "^7.27.1" "@babel/plugin-transform-for-of" "^7.27.1" @@ -917,15 +924,15 @@ "@babel/plugin-transform-new-target" "^7.27.1" "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" "@babel/plugin-transform-numeric-separator" "^7.27.1" - "@babel/plugin-transform-object-rest-spread" "^7.27.1" + "@babel/plugin-transform-object-rest-spread" "^7.28.0" "@babel/plugin-transform-object-super" "^7.27.1" "@babel/plugin-transform-optional-catch-binding" "^7.27.1" "@babel/plugin-transform-optional-chaining" "^7.27.1" - "@babel/plugin-transform-parameters" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.7" "@babel/plugin-transform-private-methods" "^7.27.1" "@babel/plugin-transform-private-property-in-object" "^7.27.1" "@babel/plugin-transform-property-literals" "^7.27.1" - "@babel/plugin-transform-regenerator" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.28.0" "@babel/plugin-transform-regexp-modifiers" "^7.27.1" "@babel/plugin-transform-reserved-words" "^7.27.1" "@babel/plugin-transform-shorthand-properties" "^7.27.1" @@ -938,10 +945,10 @@ "@babel/plugin-transform-unicode-regex" "^7.27.1" "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.11.0" - babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.40.0" + babel-plugin-polyfill-corejs2 "^0.4.14" + babel-plugin-polyfill-corejs3 "^0.13.0" + babel-plugin-polyfill-regenerator "^0.6.5" + core-js-compat "^3.43.0" semver "^6.3.1" "@babel/preset-modules@0.1.6-no-external-plugins": @@ -2190,29 +2197,29 @@ babel-plugin-jest-hoist@^28.1.3: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.12" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz#ca55bbec8ab0edeeef3d7b8ffd75322e210879a9" - integrity sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og== +babel-plugin-polyfill-corejs2@^0.4.14: + version "0.4.14" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz#8101b82b769c568835611542488d463395c2ef8f" + integrity sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg== dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.3" + "@babel/compat-data" "^7.27.7" + "@babel/helper-define-polyfill-provider" "^0.6.5" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" - integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== +babel-plugin-polyfill-corejs3@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz#bb7f6aeef7addff17f7602a08a6d19a128c30164" + integrity sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.3" - core-js-compat "^3.40.0" + "@babel/helper-define-polyfill-provider" "^0.6.5" + core-js-compat "^3.43.0" -babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz#abeb1f3f1c762eace37587f42548b08b57789bc8" - integrity sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q== +babel-plugin-polyfill-regenerator@^0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz#32752e38ab6f6767b92650347bf26a31b16ae8c5" + integrity sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.3" + "@babel/helper-define-polyfill-provider" "^0.6.5" babel-preset-current-node-syntax@^1.0.0: version "1.1.0" @@ -2280,7 +2287,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.24.0, browserslist@^4.24.3: +browserslist@^4.24.0: version "4.24.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== @@ -2290,6 +2297,16 @@ browserslist@^4.24.0, browserslist@^4.24.3: node-releases "^2.0.19" update-browserslist-db "^1.1.1" +browserslist@^4.25.0: + version "4.25.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.1.tgz#ba9e8e6f298a1d86f829c9b975e07948967bb111" + integrity sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw== + dependencies: + caniuse-lite "^1.0.30001726" + electron-to-chromium "^1.5.173" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -2364,6 +2381,11 @@ caniuse-lite@^1.0.30001688: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz#a102cf330d153bf8c92bfb5be3cd44c0a89c8c12" integrity sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w== +caniuse-lite@^1.0.30001726: + version "1.0.30001726" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz#a15bd87d5a4bf01f6b6f70ae7c97fdfd28b5ae47" + integrity sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw== + chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2520,12 +2542,12 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -core-js-compat@^3.40.0: - version "3.40.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.40.0.tgz#7485912a5a4a4315c2fdb2cbdc623e6881c88b38" - integrity sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ== +core-js-compat@^3.43.0: + version "3.43.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.43.0.tgz#055587369c458795ef316f65e0aabb808fb15840" + integrity sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA== dependencies: - browserslist "^4.24.3" + browserslist "^4.25.0" core-js@^3.28.0, core-js@^3.43.0: version "3.43.0" @@ -2657,6 +2679,13 @@ debug@^3.2.7: dependencies: ms "^2.1.1" +debug@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== + dependencies: + ms "^2.1.3" + decimal.js@^10.3.1, decimal.js@^10.4.3: version "10.5.0" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.5.0.tgz#0f371c7cf6c4898ce0afb09836db73cd82010f22" @@ -2767,6 +2796,11 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +electron-to-chromium@^1.5.173: + version "1.5.178" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.178.tgz#6fc4d69eb5275bb13068931448fd822458901fbb" + integrity sha512-wObbz/ar3Bc6e4X5vf0iO8xTN8YAjN/tgiAOJLr7yjYFtP9wAjq8Mb5h0yn6kResir+VYx2DXBj9NNobs0ETSA== + electron-to-chromium@^1.5.73: version "1.5.100" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.100.tgz#c99b7cfe49ec72c5e22237f036bb8b1d8b7f0621" @@ -3578,11 +3612,6 @@ glob@^8.1.0: minimatch "^5.0.1" once "^1.3.0" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - globals@^13.19.0: version "13.24.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" @@ -5455,7 +5484,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.4: +resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.10, resolve@^1.22.4: version "1.22.10" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== @@ -6206,6 +6235,14 @@ update-browserslist-db@^1.1.1: escalade "^3.2.0" picocolors "^1.1.0" +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" From 0aa7b3278a97eeafe3effde7f4fd841a87c1ba2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 21:04:17 +0000 Subject: [PATCH 07/60] Bump core-js from 3.43.0 to 3.44.0 in /DigitalLearningSolutions.Web (#3314) Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.43.0 to 3.44.0. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/commits/v3.44.0/packages/core-js) --- updated-dependencies: - dependency-name: core-js dependency-version: 3.44.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 56dddb3b95..efc8776f62 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -23,7 +23,7 @@ "dependencies": { "@types/chartist": "^0.11.1", "chartist": "^0.11.4", - "core-js": "^3.43.0", + "core-js": "^3.44.0", "date-fns": "^2.30.0", "dompurify": "^2.5.8", "input-range-scss": "^1.5.3", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 464fc30ec5..ceee44be40 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -2549,10 +2549,10 @@ core-js-compat@^3.43.0: dependencies: browserslist "^4.25.0" -core-js@^3.28.0, core-js@^3.43.0: - version "3.43.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.43.0.tgz#f7258b156523208167df35dea0cfd6b6ecd4ee88" - integrity sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA== +core-js@^3.28.0, core-js@^3.44.0: + version "3.44.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.44.0.tgz#db4fd4fa07933c1d6898c8b112a1119a9336e959" + integrity sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw== cosmiconfig@^8.2.0: version "8.3.6" From b402adf6e380ccb80656039654520c495dc69893 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 19:02:46 +0000 Subject: [PATCH 08/60] Bump webpack from 5.99.9 to 5.100.0 in /DigitalLearningSolutions.Web (#3320) Bumps [webpack](https://github.com/webpack/webpack) from 5.99.9 to 5.100.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.99.9...v5.100.0) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.100.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 91 ++++++++--------------- 2 files changed, 33 insertions(+), 60 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index efc8776f62..d5221a4e62 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -62,7 +62,7 @@ "rimraf": "^5.0.10", "ts-node": "^10.9.2", "typescript": "^4.9.5", - "webpack": "^5.99.9", + "webpack": "^5.100.0", "webpack-cli": "^5.1.4" }, "-vs-binding": { diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index ceee44be40..d85fd17193 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -1530,10 +1530,10 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/estree@*", "@types/estree@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/graceful-fs@^4.1.3": version "4.1.9" @@ -1916,6 +1916,11 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" +acorn-import-phases@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.3.tgz#30394a1dccee5f380aecb8205b8c69b4f7ae688e" + integrity sha512-jtKLnfoOzm28PazuQ4dVBcE9Jeo6ha1GAJvq3N0LlNOszmTfx+wSycBehn+FN0RnyeR77IBxN/qVYMw0Rlj0Xw== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1938,15 +1943,10 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.11.0: - version "8.14.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" - integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== - -acorn@^8.14.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.8.2, acorn@^8.9.0: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== +acorn@^8.11.0, acorn@^8.15.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.8.2, acorn@^8.9.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== agent-base@6: version "6.0.2" @@ -2287,17 +2287,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.24.0: - version "4.24.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" - integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== - dependencies: - caniuse-lite "^1.0.30001688" - electron-to-chromium "^1.5.73" - node-releases "^2.0.19" - update-browserslist-db "^1.1.1" - -browserslist@^4.25.0: +browserslist@^4.24.0, browserslist@^4.25.0: version "4.25.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.1.tgz#ba9e8e6f298a1d86f829c9b975e07948967bb111" integrity sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw== @@ -2376,11 +2366,6 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001688: - version "1.0.30001699" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz#a102cf330d153bf8c92bfb5be3cd44c0a89c8c12" - integrity sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w== - caniuse-lite@^1.0.30001726: version "1.0.30001726" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz#a15bd87d5a4bf01f6b6f70ae7c97fdfd28b5ae47" @@ -2801,11 +2786,6 @@ electron-to-chromium@^1.5.173: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.178.tgz#6fc4d69eb5275bb13068931448fd822458901fbb" integrity sha512-wObbz/ar3Bc6e4X5vf0iO8xTN8YAjN/tgiAOJLr7yjYFtP9wAjq8Mb5h0yn6kResir+VYx2DXBj9NNobs0ETSA== -electron-to-chromium@^1.5.73: - version "1.5.100" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.100.tgz#c99b7cfe49ec72c5e22237f036bb8b1d8b7f0621" - integrity sha512-u1z9VuzDXV86X2r3vAns0/5ojfXBue9o0+JDUDBKYqGLjxLkSqsSUoPU/6kW0gx76V44frHaf6Zo+QF74TQCMg== - emittery@^0.10.2: version "0.10.2" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" @@ -2830,10 +2810,10 @@ enhanced-resolve@^0.9.1: memory-fs "^0.2.0" tapable "^0.1.8" -enhanced-resolve@^5.17.1: - version "5.18.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz#91eb1db193896b9801251eeff1c6980278b1e404" - integrity sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ== +enhanced-resolve@^5.17.2: + version "5.18.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz#7903c5b32ffd4b2143eeb4b92472bd68effd5464" + integrity sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -5223,7 +5203,7 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@^1.1.0, picocolors@^1.1.1: +picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -6227,14 +6207,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -update-browserslist-db@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.0" - update-browserslist-db@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" @@ -6349,26 +6321,27 @@ webpack-merge@^5.7.3: flat "^5.0.2" wildcard "^2.0.0" -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== +webpack-sources@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" + integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== -webpack@^5.99.9: - version "5.99.9" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.99.9.tgz#d7de799ec17d0cce3c83b70744b4aedb537d8247" - integrity sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg== +webpack@^5.100.0: + version "5.100.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.0.tgz#fa3ef235b38969bd0ded53297a2c44a5f092f8f4" + integrity sha512-H8yBSBTk+BqxrINJnnRzaxU94SVP2bjd7WmA+PfCphoIdDpeQMJ77pq9/4I7xjLq38cB1bNKfzYPZu8pB3zKtg== dependencies: "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.6" + "@types/estree" "^1.0.8" "@types/json-schema" "^7.0.15" "@webassemblyjs/ast" "^1.14.1" "@webassemblyjs/wasm-edit" "^1.14.1" "@webassemblyjs/wasm-parser" "^1.14.1" - acorn "^8.14.0" + acorn "^8.15.0" + acorn-import-phases "^1.0.3" browserslist "^4.24.0" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.1" + enhanced-resolve "^5.17.2" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -6382,7 +6355,7 @@ webpack@^5.99.9: tapable "^2.1.1" terser-webpack-plugin "^5.3.11" watchpack "^2.4.1" - webpack-sources "^3.2.3" + webpack-sources "^3.3.3" whatwg-encoding@^2.0.0: version "2.0.0" From 3467588a5043ca0584530a488c40c4995d2480c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 19:00:59 +0000 Subject: [PATCH 09/60] Bump webpack from 5.100.0 to 5.100.1 in /DigitalLearningSolutions.Web (#3321) Bumps [webpack](https://github.com/webpack/webpack) from 5.100.0 to 5.100.1. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.100.0...v5.100.1) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.100.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index d5221a4e62..d79f436227 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -62,7 +62,7 @@ "rimraf": "^5.0.10", "ts-node": "^10.9.2", "typescript": "^4.9.5", - "webpack": "^5.100.0", + "webpack": "^5.100.1", "webpack-cli": "^5.1.4" }, "-vs-binding": { diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index d85fd17193..2618672d90 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -6326,10 +6326,10 @@ webpack-sources@^3.3.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== -webpack@^5.100.0: - version "5.100.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.0.tgz#fa3ef235b38969bd0ded53297a2c44a5f092f8f4" - integrity sha512-H8yBSBTk+BqxrINJnnRzaxU94SVP2bjd7WmA+PfCphoIdDpeQMJ77pq9/4I7xjLq38cB1bNKfzYPZu8pB3zKtg== +webpack@^5.100.1: + version "5.100.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.1.tgz#d8a7e7761d253b961248ed9ed7661c51698593de" + integrity sha512-YJB/ESPUe2Locd0NKXmw72Dx8fZQk1gTzI6rc9TAT4+Sypbnhl8jd8RywB1bDsDF9Dy1RUR7gn3q/ZJTd0OZZg== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.8" From f711a819ff7fe97c413bb630ae9f7e3fd0286717 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Jul 2025 19:05:44 +0000 Subject: [PATCH 10/60] Bump webpack from 5.100.1 to 5.100.2 in /DigitalLearningSolutions.Web (#3322) Bumps [webpack](https://github.com/webpack/webpack) from 5.100.1 to 5.100.2. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.100.1...v5.100.2) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.100.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index d79f436227..2d4488c506 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -62,7 +62,7 @@ "rimraf": "^5.0.10", "ts-node": "^10.9.2", "typescript": "^4.9.5", - "webpack": "^5.100.1", + "webpack": "^5.100.2", "webpack-cli": "^5.1.4" }, "-vs-binding": { diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 2618672d90..0ab240517e 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -6326,10 +6326,10 @@ webpack-sources@^3.3.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== -webpack@^5.100.1: - version "5.100.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.1.tgz#d8a7e7761d253b961248ed9ed7661c51698593de" - integrity sha512-YJB/ESPUe2Locd0NKXmw72Dx8fZQk1gTzI6rc9TAT4+Sypbnhl8jd8RywB1bDsDF9Dy1RUR7gn3q/ZJTd0OZZg== +webpack@^5.100.2: + version "5.100.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.2.tgz#e2341facf9f7de1d702147c91bcb65b693adf9e8" + integrity sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.8" From 4fdce6058e7274a4f46d64bd138a2ae4c82f9d78 Mon Sep 17 00:00:00 2001 From: Auldrin-Possa Date: Tue, 22 Jul 2025 15:04:03 +0100 Subject: [PATCH 11/60] TD-5837-Added a script to add columns to the SelfAssessments table. --- ...07221424_AddNewColumnsInSelfAssessments.cs | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 DigitalLearningSolutions.Data.Migrations/202507221424_AddNewColumnsInSelfAssessments.cs diff --git a/DigitalLearningSolutions.Data.Migrations/202507221424_AddNewColumnsInSelfAssessments.cs b/DigitalLearningSolutions.Data.Migrations/202507221424_AddNewColumnsInSelfAssessments.cs new file mode 100644 index 0000000000..7b6c381573 --- /dev/null +++ b/DigitalLearningSolutions.Data.Migrations/202507221424_AddNewColumnsInSelfAssessments.cs @@ -0,0 +1,22 @@ +namespace DigitalLearningSolutions.Data.Migrations +{ + using FluentMigrator; + [Migration(202507221424)] + public class AddNewColumnsInSelfAssessments : Migration + { + public override void Up() + { + Alter.Table("SelfAssessments") + .AddColumn("RetirementDate").AsDateTime().Nullable() + .AddColumn("EnrolmentCutoffDate").AsDateTime().Nullable() + .AddColumn("RetirementReason").AsString(2000).Nullable(); + } + + public override void Down() + { + Delete.Column("RetirementDate").FromTable("SelfAssessments"); + Delete.Column("EnrolmentCutoffDate").FromTable("SelfAssessments"); + Delete.Column("RetirementReason").FromTable("SelfAssessments"); + } + } +} From 629f2e0b0d782164a35506fd5fd932db36b16681 Mon Sep 17 00:00:00 2001 From: Auldrin-Possa Date: Thu, 24 Jul 2025 15:29:39 +0100 Subject: [PATCH 12/60] TD-5535-Modified SQL query/stored procedure to hide retired self-assessments. --- ...tivitiesForDelegateEnrolment_Retired_SA.cs | 18 ++++ .../Properties/Resources.Designer.cs | 90 +++++++++++++----- .../Properties/Resources.resx | 6 ++ ...GetActivitiesForDelegateEnrolment_Down.sql | Bin 0 -> 8564 bytes ...r_GetActivitiesForDelegateEnrolment_Up.sql | Bin 0 -> 8778 bytes .../CandidateAssessmentsDataService.cs | 54 ++++++----- .../Models/SelfAssessments/SelfAssessment.cs | 7 +- .../LearningPortalController/Current.cs | 8 +- 8 files changed, 130 insertions(+), 53 deletions(-) create mode 100644 DigitalLearningSolutions.Data.Migrations/202507240953_Alter_GetActivitiesForDelegateEnrolment_Retired_SA.cs create mode 100644 DigitalLearningSolutions.Data.Migrations/Scripts/TD-5535-Alter_GetActivitiesForDelegateEnrolment_Down.sql create mode 100644 DigitalLearningSolutions.Data.Migrations/Scripts/TD-5535-Alter_GetActivitiesForDelegateEnrolment_Up.sql diff --git a/DigitalLearningSolutions.Data.Migrations/202507240953_Alter_GetActivitiesForDelegateEnrolment_Retired_SA.cs b/DigitalLearningSolutions.Data.Migrations/202507240953_Alter_GetActivitiesForDelegateEnrolment_Retired_SA.cs new file mode 100644 index 0000000000..abf874dd9b --- /dev/null +++ b/DigitalLearningSolutions.Data.Migrations/202507240953_Alter_GetActivitiesForDelegateEnrolment_Retired_SA.cs @@ -0,0 +1,18 @@ +using FluentMigrator; + +namespace DigitalLearningSolutions.Data.Migrations +{ + [Migration(202507240953)] + public class Alter_GetActivitiesForDelegateEnrolment_Retired_SA : Migration + { + public override void Up() + { + Execute.Sql(Properties.Resources.TD_5535_Alter_GetActivitiesForDelegateEnrolment_Up); + } + public override void Down() + { + Execute.Sql(Properties.Resources.TD_5535_Alter_GetActivitiesForDelegateEnrolment_Down); + } + } +} + diff --git a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs index 0f99da6fea..631af7bc66 100644 --- a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs +++ b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs @@ -478,8 +478,7 @@ internal static string DLSV2_272_AlterGetLinkedFieldNameFunction_UP { ///-- Create date: 15/10/2021 ///-- Description: Reorders the CompetencyAssessmentQuestions - moving the given competency question up or down. ///-- ============================================= - ///CREATE OR ALTER PROCEDURE [dbo].[ReorderCompetencyAssessmentQuestion] - /// [rest of string was truncated]";. + ///CREATE OR ALTER PROCEDURE [dbo].[ReorderCompetencyAssessmentQuestion] /// [rest of string was truncated]";. /// internal static string DLSV2_379_ReorderCompetencyAssessmentQuestionsSP { get { @@ -1505,8 +1504,7 @@ internal static string TD_3190_SendOneMonthSelfAssessmentOverdueRemindersSP { /// @EmailProfileName nvarchar(100), /// @TestOnly bit ///AS - ///BEGIN - /// [rest of string was truncated]";. + ///BEGIN /// [rest of string was truncated]";. /// internal static string TD_3190_SendOneMonthSelfAssessmentTBCRemindersSP { get { @@ -2526,17 +2524,78 @@ internal static string TD_5514_Alter_SendExpiredTBCReminders_Up { } } + /// + /// Looks up a localized string similar to /****** Object: StoredProcedure [dbo].[GetActivitiesForDelegateEnrolment] Script Date: 24/07/2025 02:06:43 ******/ + ///SET ANSI_NULLS ON + ///GO + /// + ///SET QUOTED_IDENTIFIER ON + ///GO + /// + ///-- ============================================= + ///-- Author: Kevin Whittaker + ///-- Create date: 24/01/2023 + ///-- Description: Returns active available for delegate enrolment based on original GetActiveAvailableCustomisationsForCentreFiltered_V6 sproc but adjusted for user account refactor and filters properly for category. + ///-- ========= [rest of string was truncated]";. + /// + internal static string TD_5535_Alter_GetActivitiesForDelegateEnrolment_Down { + get { + return ResourceManager.GetString("TD_5535_Alter_GetActivitiesForDelegateEnrolment_Down", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /****** Object: StoredProcedure [dbo].[GetActivitiesForDelegateEnrolment] Script Date: 24/07/2025 02:06:43 ******/ + ///SET ANSI_NULLS ON + ///GO + /// + ///SET QUOTED_IDENTIFIER ON + ///GO + /// + ///-- ============================================= + ///-- Author: Kevin Whittaker + ///-- Create date: 24/01/2023 + ///-- Description: Returns active available for delegate enrolment based on original GetActiveAvailableCustomisationsForCentreFiltered_V6 sproc but adjusted for user account refactor and filters properly for category. + ///-- ========= [rest of string was truncated]";. + /// + internal static string TD_5535_Alter_GetActivitiesForDelegateEnrolment_Up { + get { + return ResourceManager.GetString("TD_5535_Alter_GetActivitiesForDelegateEnrolment_Up", resourceCulture); + } + } + /// /// Looks up a localized string similar to IF OBJECT_ID('dbo.IndexOptimize', 'P') IS NOT NULL DROP PROCEDURE dbo.IndexOptimize; ///IF OBJECT_ID('dbo.CommandExecute', 'P') IS NOT NULL DROP PROCEDURE dbo.CommandExecute; + ///IF OBJECT_ID('dbo.sp_purge_commandlog', 'P') IS NOT NULL DROP PROCEDURE dbo.sp_purge_commandlog; ///IF OBJECT_ID('dbo.CommandLog', 'U') IS NOT NULL DROP TABLE dbo.CommandLog; ///. /// internal static string TD_5670_MaintenanceScripts_DOWN { get { return ResourceManager.GetString("TD-5670-MaintenanceScripts_DOWN", resourceCulture); - } + } } + + /// + /// Looks up a localized string similar to -- ============================================ + ///-- Drop if exists (for clean redeploy) + ///-- ============================================ + ///IF OBJECT_ID('dbo.IndexOptimize', 'P') IS NOT NULL DROP PROCEDURE dbo.IndexOptimize; + ///IF OBJECT_ID('dbo.DatabaseIntegrityCheck', 'P') IS NOT NULL DROP PROCEDURE dbo.DatabaseIntegrityCheck; + ///IF OBJECT_ID('dbo.CommandExecute', 'P') IS NOT NULL DROP PROCEDURE dbo.CommandExecute; + ///IF OBJECT_ID('dbo.CommandLog', 'U') IS NOT NULL DROP TABLE dbo.CommandLog; + ///GO + /// + ///-- =========== [rest of string was truncated]";. + /// + internal static string TD_5670_MaintenanceScripts_UP { + get { + return ResourceManager.GetString("TD_5670_MaintenanceScripts_UP", resourceCulture); + } + } + + /// /// Looks up a localized string similar to CREATE OR ALTER PROCEDURE [dbo].[usp_GetSelfAssessmentReport] /// @SelfAssessmentID INT, /// @CentreID INT @@ -2561,27 +2620,6 @@ internal static string TD_5759_CreateOrAlterSelfAssessmentReportSPandTVF_Fix_UP } /// - /// Looks up a localized string similar to -- ============================================ - ///-- CommandLog table - ///-- ============================================ - ///IF OBJECT_ID('dbo.CommandLog', 'U') IS NOT NULL DROP TABLE dbo.CommandLog; - ///CREATE TABLE dbo.CommandLog ( - /// ID INT IDENTITY PRIMARY KEY, - /// DatabaseName SYSNAME NULL, - /// SchemaName SYSNAME NULL, - /// ObjectName SYSNAME NULL, - /// ObjectType CHAR(2) NULL, - /// IndexName SYSNAME NULL, - /// IndexType TINYINT NULL, - /// StatisticsName SYSNAME NULL, - /// PartitionNumber INT NULL, - /// Ext [rest of string was truncated]";. - /// - internal static string TD_5670_MaintenanceScripts_UP { - get { - return ResourceManager.GetString("TD_5670_MaintenanceScripts_UP", resourceCulture); - } - } /// Looks up a localized string similar to CREATE OR ALTER FUNCTION dbo.GetOtherCentresForSelfAssessmentTVF ///( /// @UserID INT, diff --git a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx index 55d97e6ce3..41e1de40a2 100644 --- a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx +++ b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx @@ -499,4 +499,10 @@ ..\Scripts\TD-5759_CreateOrAlterSelfAssessmentReportSPandTVF-Fix_UP.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Scripts\TD-5535-Alter_GetActivitiesForDelegateEnrolment_Down.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16 + + + ..\Scripts\TD-5535-Alter_GetActivitiesForDelegateEnrolment_Up.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16 + \ No newline at end of file diff --git a/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5535-Alter_GetActivitiesForDelegateEnrolment_Down.sql b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5535-Alter_GetActivitiesForDelegateEnrolment_Down.sql new file mode 100644 index 0000000000000000000000000000000000000000..d2f8374a0934475f0bf819c0432dc7745281bc9b GIT binary patch literal 8564 zcmcgyYj0CW5S_27)c~Og^3;F7979?T2%-I=YdksI1u6yR)X6R#-oj_cFw{A;xC16}YtVJi_0R>|y3WIx-GCM{=|fEK-ll4PyOc!e2y;}mxM3**zEovz#rzEqD?@TWe-mcD&% z>ATT7dUFO}o0o>zdkpKZz#7B>F){{41&%}%5pfW{y~oH9NZ12*h=)oJgWTLbMM#D3 zIYuh1+5=zWunK$fol+d(Z;ZJS#&awl!0Y+Gn~-q^$xeX3A)ctYYGH`o4Evu33vFR; z1PWS@d%uyFKwE`%6O1r2C>gy#jrS2r%3b9&4LL>*YLx-jok3=$$J|p>v5#v6<8cKK+IDAA@IzqlI3R{RG#s?$eDc*NvGepZSo;w)({F#E9 zt(>EOKUj(pKs-%ghbjJ;SJY#)n_0=I)c5L5vuc{($c^*5*8}LJd5UAq0`w6%cjrFb z!1KD?IH%7uUc81_J&kBLGv9TCMs@rtO$#|orFsbaK7s_Az04w(>w3WxJIG(mSDNJ% zpNus|5YeXEGhe8FjJv-vLmMhGXTT}ZPrTEnYER<+crJ%#6V-}VI|Lo0att(9@&Qk@ zJ8Mb@Sn0r)l!rc0%vueY%~87&C`nVN!;kY_ndwrF*Rf(NAn-{GBg!`6{#x^i$Za5F23rsDNgJ322C{mg zcMX&4k*CW1D5qw{dJV6t!(-^h$}*n&?<(@=yeNB~Jsx5&?E(yup4%$%S!QF6RIRo? zqZNmBi7}CmJNA8?Qjju^hQ-Rn%14YaYSNBF{Y4*GM!ei-Zh@SCogK=u>ggl3O_}=R zyr!GAE~0e%-?jqB=b>$5`M z^YrHxp7m}E@=qJ`#`5v>0Qn?6D^L@cGM|m5xQcf)M{dIh%>hUPlJZ+Cq_{w zGT*w-=(SP@K+kC&=WgsSdw6MY{R{dz@Ac}lTz!>wuI%ZWvLsK!R(I=prKoA5q2_h+ zH%kzAF7@19n*nTXeJ!6$UB>b<^L~ICPPxUhI1j}^KG$T`I6tpOl`lV0F#9|JI?{0> zdncT(EJj*D*eIc+O}P3t{!E8e;N~}YfIVn`p}xes)Z1A#cHCaPf>Ok~Hu1Gg+eBlU z#5=nm7A@tv$Gx*z<{EMYUryEJGq-hogP}HFo`+(xkKFJic$G2zX*{ODByVzfPTL1Y zwe~W?`rv7|S<6ed*bg=3&Hp2NGgq(=;wkzz{_cH(x5}B-y9Ya?bYQvXIBU4gn(?q) zZ$$4BnR#!-^R`BDX?6peUyHJ{RSurtyI4!>@UG=?4NZCu?t^X(YqVD*KFW3>6|1>s z4${W4lg^M!)7f(q7Uj;1@yb&GrARXyx%;`PoC!#$oZXAfCpV=gq8INesbRBC;&YwZ za@jMT+mWX!JB`Jss`yN27SoJ=g1eFq`U>8y_|3ShJ1evx||a$@c{9n zzY|fr58(!mx4-QC+VEWIH0(LT?3(5X^FQ+%Z`pa_Ri`o-_;PR<;%Huibg~blJUg&Wrxj_-{w(w7oP6IkSdeY#c#l8B%}h zO4p%;3rFweva)x{#IstGb>=wynxMb6HJwYWrZ93`Cqqj9$%xTTGVh~_*U#5uuOuD! o3ij-S|1)&ME+e~k{_4-)Hy_IH^ZE3i)M~k{(q9<(&Hkt0KQhPZ6aWAK literal 0 HcmV?d00001 diff --git a/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5535-Alter_GetActivitiesForDelegateEnrolment_Up.sql b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5535-Alter_GetActivitiesForDelegateEnrolment_Up.sql new file mode 100644 index 0000000000000000000000000000000000000000..0e8c76138fd14ea0c89fb3f449b8f7a69f7fcc9d GIT binary patch literal 8778 zcmcgyYg1b{5Y<;Y)BkY4)uaip&~_#*860fDZDNubl6E?o3^9+mHO6B@(){_h=VpBwHwjPmml-oMBDrhAByP`6e0wfhR% zwA~?Qny!oIj(dyGBli@q9!3xFjZ}Mh;%B(x1?Ud2whc+%Vr2_YU3~9AvksnLX4XG& z4=}U!#a@(A_GrQdEmdTD^YN3i}9tU(+QBO_20;7CLf5vTs!2aF7WgkxZbcqrVNmz%rC z2r2MA#Yllw$KXpG7Jg5@Q;Ku^jW9RFc#6eScs<>B2Qp3}*(LBdz!NnWEfldke*Y_P zpX)EeO zijmjxEZCX$l>Nq@&(M9sh;r{^4JADH96li`4Iy6^g-t{ey$Wb|65n;aMpgVNO%pjwq58d{DjV`>1i;^)f2qL zTd%yOr?4D1Jx^n~45nqhk*KQx5-5YuGa(BUrJ}lf%?lIoK z!K;Agy8akiSMO^pzxC_rC9W?Vzl$B_*_XHyspr{?TD9CVcA%~WbY?D|cwDGNX0iPK zhtQd^LfW+(ZbVog7QO~*SSNe1^*P4I*oByvxJcKKjur3>GEKcCeAmb@X_V?Es9E*M zQL2jQlAG7eM8t-u74(XwJKz@XPTX^6>GX(PqQ8$mB5xD!FEyWt+y^qIu=N0+w1HZn z?;5vyS24L3cq-42a!OXL)^JfBo1W-AjbA2GtHi8~JQ7k!`^@ot}~1ycT1cF4;rr;pe+ zdFoGPO;>B(Mrrm-rIa|ko90SAYXQqkhlrgqu-AumwZ_Gn%P3MzgxVNYjE_8x>1u1M zvqIYQ^vVj)dbbPtCpCFv{&?C(K8eo?)WoDrXG19#@s8xkefWTRomt-Em>KxF*O2|h zFvvveTk{#cmg@lMImzSPjooDzFX^p+Mn7l0UUinMuCm6JJzZUvZ}^(=SEQZ(h~)<&o4dX+vHs*H)I{{`JtZ})w@G-e zQ(Mk^rZYS8G^MAp@KhC^>C|G9(JygV(nepwyA`_`S9z6Jdh&~{m^;Ino$Jp~DV_B= zdTx!QgndZbx7wM){AG1SaBVb1Mp!i($yr4*rue~D5x1Jn=}ntiq{ma7&BpIM=N|3J z%()7STyD@^PyeSd9iM+soeKSRK;h64zkcL@WET9 z6=d5}+-O|hQp4_-6+rSbeOp(V7V~z9_Qm^pq9=ccL!66^XnE^`HP7cht9$4$m(I7V z8IX(os%&V0VV0A0$7mAH?1 zk>81^-A8`|$J<|ael2(|cN(@Fp>~aPg!-R(jkoN)ZPyMg?I!Y=rVO@|W(D0b&H10> z#XR@wxKP^~7LK5qbWf6nQY-5U^Vd7Nhl=H0rB>r0gI(09JLe8w<7aK!RUWVA8 zveIYSrScJ)=&0H#>isNBJ8lt@OCer<@^|J&Yg1r-!f_y+pc3dFtqaUdO~j zaz+sCSugWDrzgKqm+&01ggv>>3-tI#!+rR_4E)vhiTkabk8gjqL(x_8y9vMPe@grd DDBT6E literal 0 HcmV?d00001 diff --git a/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentsDataService.cs b/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentsDataService.cs index bb1dc7649f..1522d93b0d 100644 --- a/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentsDataService.cs +++ b/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentsDataService.cs @@ -12,28 +12,31 @@ public IEnumerable GetSelfAssessmentsForCandidate(int del { return connection.Query( @"SELECT SelfAssessment.Id, - SelfAssessment.Name, - SelfAssessment.Description, - SelfAssessment.IncludesSignposting, - SelfAssessment.IncludeRequirementsFilters, - SelfAssessment. IsSupervisorResultsReviewed, - SelfAssessment.ReviewerCommentsLabel, - SelfAssessment. Vocabulary, - SelfAssessment. NumberOfCompetencies, - SelfAssessment.StartedDate, - SelfAssessment.LastAccessed, - SelfAssessment.CompleteByDate, - SelfAssessment.CandidateAssessmentId, - SelfAssessment.UserBookmark, - SelfAssessment.UnprocessedUpdates, - SelfAssessment.LaunchCount, - SelfAssessment. IsSelfAssessment, - SelfAssessment.SubmittedDate, - SelfAssessment. CentreName, - SelfAssessment.EnrolmentMethodId, - Signoff.SignedOff, - Signoff.Verified, - EnrolledByForename +' '+EnrolledBySurname AS EnrolledByFullName + SelfAssessment.Name, + SelfAssessment.Description, + SelfAssessment.IncludesSignposting, + SelfAssessment.IncludeRequirementsFilters, + SelfAssessment. IsSupervisorResultsReviewed, + SelfAssessment.ReviewerCommentsLabel, + SelfAssessment. Vocabulary, + SelfAssessment. NumberOfCompetencies, + SelfAssessment.StartedDate, + SelfAssessment.LastAccessed, + SelfAssessment.CompleteByDate, + SelfAssessment.CandidateAssessmentId, + SelfAssessment.UserBookmark, + SelfAssessment.UnprocessedUpdates, + SelfAssessment.LaunchCount, + SelfAssessment. IsSelfAssessment, + SelfAssessment.SubmittedDate, + SelfAssessment. CentreName, + SelfAssessment.EnrolmentMethodId, + SelfAssessment.RetirementDate, + SelfAssessment.EnrolmentCutoffDate, + SelfAssessment.RetirementReason, + Signoff.SignedOff, + Signoff.Verified, + EnrolledByForename +' '+EnrolledBySurname AS EnrolledByFullName FROM (SELECT CA.SelfAssessmentID AS Id, SA.Name, @@ -56,7 +59,10 @@ public IEnumerable GetSelfAssessmentsForCandidate(int del CR.CentreName AS CentreName, CA.EnrolmentMethodId, uEnrolledBy.FirstName AS EnrolledByForename, - uEnrolledBy.LastName AS EnrolledBySurname + uEnrolledBy.LastName AS EnrolledBySurname, + SA.RetirementDate, + SA.EnrolmentCutoffDate, + SA.RetirementReason FROM Centres AS CR INNER JOIN CandidateAssessments AS CA INNER JOIN SelfAssessments AS SA ON CA.SelfAssessmentID = SA.ID ON CR.CentreID = CA.CentreID INNER JOIN @@ -71,7 +77,7 @@ Competencies AS C RIGHT OUTER JOIN AND (ISNULL(@adminIdCategoryID, 0) = 0 OR sa.CategoryID = @adminIdCategoryId) GROUP BY CA.SelfAssessmentID, SA.Name, SA.Description, SA.IncludesSignposting, SA.SupervisorResultsReview, - SA.ReviewerCommentsLabel, SA.IncludeRequirementsFilters, + SA.ReviewerCommentsLabel, SA.IncludeRequirementsFilters, SA.RetirementDate,SA.EnrolmentCutoffDate,SA.RetirementReason, COALESCE(SA.Vocabulary, 'Capability'), CA.StartedDate, CA.LastAccessed, CA.CompleteByDate, CA.ID, CA.UserBookmark, CA.UnprocessedUpdates, CA.LaunchCount, CA.SubmittedDate, CR.CentreName,CA.EnrolmentMethodId, diff --git a/DigitalLearningSolutions.Data/Models/SelfAssessments/SelfAssessment.cs b/DigitalLearningSolutions.Data/Models/SelfAssessments/SelfAssessment.cs index 1beabfb672..20c401b52f 100644 --- a/DigitalLearningSolutions.Data/Models/SelfAssessments/SelfAssessment.cs +++ b/DigitalLearningSolutions.Data/Models/SelfAssessments/SelfAssessment.cs @@ -1,4 +1,6 @@ -namespace DigitalLearningSolutions.Data.Models.SelfAssessments +using System; + +namespace DigitalLearningSolutions.Data.Models.SelfAssessments { public class SelfAssessment : CurrentLearningItem { @@ -11,6 +13,9 @@ public class SelfAssessment : CurrentLearningItem public string? ManageOptionalCompetenciesPrompt { get; set; } public string? QuestionLabel { get; set; } public string? DescriptionLabel { get; set; } + public DateTime? RetirementDate { get; set; } + public DateTime? EnrolmentCutoffDate { get; set; } + public string? RetirementReason { get; set; } } } diff --git a/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs b/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs index ed30c74566..341045b074 100644 --- a/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs +++ b/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs @@ -44,7 +44,9 @@ public async Task Current( var centreId = User.GetCentreIdKnownNotNull(); var selfAssessments = - selfAssessmentService.GetSelfAssessmentsForCandidate(delegateUserId, centreId, 0); + selfAssessmentService.GetSelfAssessmentsForCandidate(delegateUserId, centreId, 0) + .Where(r => (r.RetirementDate != null && r.RetirementDate.Value.Date >= DateTime.UtcNow.Date) + || r.RetirementDate == null).ToList(); var (learningResources, apiIsAccessible) = await GetIncompleteActionPlanResourcesIfSignpostingEnabled(delegateUserId); @@ -81,7 +83,9 @@ public async Task AllCurrentItems() var centreId = User.GetCentreIdKnownNotNull(); var selfAssessment = - selfAssessmentService.GetSelfAssessmentsForCandidate(delegateUserId, centreId, 0); + selfAssessmentService.GetSelfAssessmentsForCandidate(delegateUserId, centreId, 0) + .Where(r => (r.RetirementDate != null && r.RetirementDate.Value.Date >= DateTime.UtcNow.Date) + || r.RetirementDate == null).ToList(); var (learningResources, _) = await GetIncompleteActionPlanResourcesIfSignpostingEnabled(delegateUserId); var model = new AllCurrentItemsPageViewModel(currentCourses, selfAssessment, learningResources); From 3820011006ee7be12180d36427d0b0e09f8bda21 Mon Sep 17 00:00:00 2001 From: Auldrin-Possa Date: Fri, 25 Jul 2025 15:14:36 +0100 Subject: [PATCH 13/60] TD-5611-Modified SQL query to hide retired self-assessment role profiles --- .../DataServices/SupervisorDataService.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs b/DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs index e0218b3e55..dd435aa1e8 100644 --- a/DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs +++ b/DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs @@ -796,7 +796,8 @@ FROM CandidateAssessments AS CA WHERE (DelegateUserID = @delegateUserId) AND (RemovedDate IS NULL) AND (CompletedDate IS NULL))) AND ((rp.SupervisorSelfAssessmentReview = 1) OR (rp.SupervisorResultsReview = 1)) - AND (ISNULL(@categoryId, 0) = 0 OR rp.CategoryID = @categoryId)", new { delegateUserId, centreId, categoryId } + AND (ISNULL(@categoryId, 0) = 0 OR rp.CategoryID = @categoryId) AND + ((CAST(rp.RetirementDate AS DATE) >= CAST(GETUTCDATE() AS DATE)) OR rp.RetirementDate IS NULL)", new { delegateUserId, centreId, categoryId } ); } From 4b053479d26d37091db6b014a29967f9770dcaef Mon Sep 17 00:00:00 2001 From: ABSinhaa Date: Wed, 30 Jul 2025 11:58:42 +0100 Subject: [PATCH 14/60] TD_5535_Undoing not showing retired self assessments across current activity page. --- .../Controllers/LearningPortalController/Current.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs b/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs index 341045b074..ad15189eb1 100644 --- a/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs +++ b/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs @@ -83,9 +83,7 @@ public async Task AllCurrentItems() var centreId = User.GetCentreIdKnownNotNull(); var selfAssessment = - selfAssessmentService.GetSelfAssessmentsForCandidate(delegateUserId, centreId, 0) - .Where(r => (r.RetirementDate != null && r.RetirementDate.Value.Date >= DateTime.UtcNow.Date) - || r.RetirementDate == null).ToList(); + selfAssessmentService.GetSelfAssessmentsForCandidate(delegateUserId, centreId, 0); var (learningResources, _) = await GetIncompleteActionPlanResourcesIfSignpostingEnabled(delegateUserId); var model = new AllCurrentItemsPageViewModel(currentCourses, selfAssessment, learningResources); From 7d97c7c8f78afa3b7c4e5623643ba7ba53a07345 Mon Sep 17 00:00:00 2001 From: ABSinhaa Date: Wed, 30 Jul 2025 15:25:56 +0100 Subject: [PATCH 15/60] TD_5535_Undid the retirement date logic to display all the self assessments on the current activites page. --- .../Controllers/LearningPortalController/Current.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs b/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs index ad15189eb1..ed30c74566 100644 --- a/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs +++ b/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Current.cs @@ -44,9 +44,7 @@ public async Task Current( var centreId = User.GetCentreIdKnownNotNull(); var selfAssessments = - selfAssessmentService.GetSelfAssessmentsForCandidate(delegateUserId, centreId, 0) - .Where(r => (r.RetirementDate != null && r.RetirementDate.Value.Date >= DateTime.UtcNow.Date) - || r.RetirementDate == null).ToList(); + selfAssessmentService.GetSelfAssessmentsForCandidate(delegateUserId, centreId, 0); var (learningResources, apiIsAccessible) = await GetIncompleteActionPlanResourcesIfSignpostingEnabled(delegateUserId); From e63a596e77d69786530860c8eec80193b59494ec Mon Sep 17 00:00:00 2001 From: sherif-olaboye <123654949+sherif-olaboye@users.noreply.github.com> Date: Thu, 31 Jul 2025 16:02:11 +0100 Subject: [PATCH 16/60] TD-5669 Learners enrolling onto a retiring self assessment --- .../SelfAssessmentDataService.cs | 13 +++++ .../Models/SelfAssessments/SelfAssessment.cs | 4 +- .../LearningPortalController/Available.cs | 35 ++++++++++++ .../Services/SelfAssessmentService.cs | 5 ++ .../Available/RetirementViewModel.cs | 25 +++++++++ .../Available/ConfirmRetirement.cshtml | 54 +++++++++++++++++++ 6 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 DigitalLearningSolutions.Web/ViewModels/LearningPortal/Available/RetirementViewModel.cs create mode 100644 DigitalLearningSolutions.Web/Views/LearningPortal/Available/ConfirmRetirement.cshtml diff --git a/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs b/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs index 324a1050a7..e002025532 100644 --- a/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs +++ b/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs @@ -16,6 +16,7 @@ public interface ISelfAssessmentDataService { //Self Assessments string? GetSelfAssessmentNameById(int selfAssessmentId); + SelfAssessment GetSelfAssessmentRetirementDateById(int selfAssessmentId); // CompetencyDataService IEnumerable GetCompetencyIdsForSelfAssessment(int selfAssessmentId); @@ -204,6 +205,18 @@ FROM SelfAssessments return name; } + public SelfAssessment GetSelfAssessmentRetirementDateById(int selfAssessmentId) + { + var date = connection.QueryFirstOrDefault( + @"SELECT Id,Name,[RetirementDate] + FROM SelfAssessments + WHERE ID = @selfAssessmentId" + , + new { selfAssessmentId } + ); + return date; + } + public (IEnumerable, int) GetSelfAssessmentDelegates(string searchString, int offSet, int itemsPerPage, string sortBy, string sortDirection, int? selfAssessmentId, int centreId, bool? isDelegateActive, bool? removed, bool? submitted, bool? signedOff) { diff --git a/DigitalLearningSolutions.Data/Models/SelfAssessments/SelfAssessment.cs b/DigitalLearningSolutions.Data/Models/SelfAssessments/SelfAssessment.cs index 1beabfb672..59aae71ca6 100644 --- a/DigitalLearningSolutions.Data/Models/SelfAssessments/SelfAssessment.cs +++ b/DigitalLearningSolutions.Data/Models/SelfAssessments/SelfAssessment.cs @@ -1,4 +1,5 @@ -namespace DigitalLearningSolutions.Data.Models.SelfAssessments +using System; +namespace DigitalLearningSolutions.Data.Models.SelfAssessments { public class SelfAssessment : CurrentLearningItem { @@ -11,6 +12,7 @@ public class SelfAssessment : CurrentLearningItem public string? ManageOptionalCompetenciesPrompt { get; set; } public string? QuestionLabel { get; set; } public string? DescriptionLabel { get; set; } + public DateTime? RetirementDate { get; set; } } } diff --git a/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Available.cs b/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Available.cs index 6e8a5a3d90..b9e16e7ac6 100644 --- a/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Available.cs +++ b/DigitalLearningSolutions.Web/Controllers/LearningPortalController/Available.cs @@ -4,8 +4,10 @@ using DigitalLearningSolutions.Data.Models.SearchSortFilterPaginate; using DigitalLearningSolutions.Web.Attributes; using DigitalLearningSolutions.Web.Helpers; + using DigitalLearningSolutions.Web.Services; using DigitalLearningSolutions.Web.ViewModels.LearningPortal.Available; using Microsoft.AspNetCore.Mvc; + using System; using System.Linq; public partial class LearningPortalController @@ -58,8 +60,41 @@ public IActionResult AllAvailableItems() public IActionResult EnrolOnSelfAssessment(int selfAssessmentId) { + var selfAssessment = selfAssessmentService.GetSelfAssessmentRetirementDateById(selfAssessmentId); + if(CheckRetirementDate(selfAssessment.RetirementDate)) return RedirectToAction("ConfirmRetirement", new { selfAssessmentId }); courseService.EnrolOnSelfAssessment(selfAssessmentId, User.GetUserIdKnownNotNull(), User.GetCentreIdKnownNotNull()); return RedirectToAction("SelfAssessment", new { selfAssessmentId }); } + + [Route("/LearningPortal/Retirement/{selfAssessmentId:int}/confirm")] + public IActionResult ConfirmRetirement(int selfAssessmentId) + { + var selfAssessment = selfAssessmentService.GetSelfAssessmentRetirementDateById(selfAssessmentId); + var model = new RetirementViewModel(selfAssessmentId, selfAssessment.RetirementDate, selfAssessment.Name); + return View("Available/ConfirmRetirement", model); + } + [HttpPost] + [Route("/LearningPortal/Retirement/{selfAssessmentId:int}/confirm")] + public IActionResult ConfirmRetirement(RetirementViewModel retirementViewModel) + { + if (!ModelState.IsValid && !retirementViewModel.ActionConfirmed) + { + var selfAssessment = selfAssessmentService.GetSelfAssessmentRetirementDateById(retirementViewModel.SelfAssessmentId); + var model = new RetirementViewModel(retirementViewModel.SelfAssessmentId , selfAssessment.RetirementDate, selfAssessment.Name); + return View("Available/ConfirmRetirement", model); + } + var date = selfAssessmentService.GetSelfAssessmentRetirementDateById(retirementViewModel.SelfAssessmentId); + courseService.EnrolOnSelfAssessment(retirementViewModel.SelfAssessmentId, User.GetUserIdKnownNotNull(), User.GetCentreIdKnownNotNull()); + return RedirectToAction("SelfAssessment", new { retirementViewModel.SelfAssessmentId }); + } + private bool CheckRetirementDate(DateTime? date) + { + if (date == null) + return false; + + DateTime twoWeeksbeforeRetirementdate = DateTime.Today.AddDays(14); + DateTime today = DateTime.Today; + return (date >= today && date <= twoWeeksbeforeRetirementdate); + } } } diff --git a/DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs b/DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs index c9a50014fa..0a9367b83b 100644 --- a/DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs +++ b/DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs @@ -162,6 +162,7 @@ public IEnumerable GetSelfAssessmentResultswithSupervisorV int competencyId ); void RemoveReviewCandidateAssessmentOptionalCompetencies(int id); + SelfAssessment GetSelfAssessmentRetirementDateById(int selfAssessmentId); } public class SelfAssessmentService : ISelfAssessmentService @@ -610,5 +611,9 @@ public void RemoveReviewCandidateAssessmentOptionalCompetencies(int id) { selfAssessmentDataService.RemoveReviewCandidateAssessmentOptionalCompetencies(id); } + public SelfAssessment GetSelfAssessmentRetirementDateById(int selfAssessmentId) + { + return selfAssessmentDataService.GetSelfAssessmentRetirementDateById(selfAssessmentId); + } } } diff --git a/DigitalLearningSolutions.Web/ViewModels/LearningPortal/Available/RetirementViewModel.cs b/DigitalLearningSolutions.Web/ViewModels/LearningPortal/Available/RetirementViewModel.cs new file mode 100644 index 0000000000..bfbba45cb6 --- /dev/null +++ b/DigitalLearningSolutions.Web/ViewModels/LearningPortal/Available/RetirementViewModel.cs @@ -0,0 +1,25 @@ +using DigitalLearningSolutions.Web.Attributes; +using System; + +namespace DigitalLearningSolutions.Web.ViewModels.LearningPortal.Available +{ + + public class RetirementViewModel + { + public RetirementViewModel() + { + + } + public RetirementViewModel(int selfAssessmentId, DateTime? retirementDate, string name) + { + SelfAssessmentId = selfAssessmentId; + RetirementDate = retirementDate; + Name = name; + } + public string Name { get; set; } = string.Empty; + public int SelfAssessmentId { get; set; } + public DateTime? RetirementDate { get; set; } + [BooleanMustBeTrue(ErrorMessage = "Please tick the checkbox to confirm you wish to perform this action")] + public bool ActionConfirmed { get; set; } + } +} diff --git a/DigitalLearningSolutions.Web/Views/LearningPortal/Available/ConfirmRetirement.cshtml b/DigitalLearningSolutions.Web/Views/LearningPortal/Available/ConfirmRetirement.cshtml new file mode 100644 index 0000000000..7eba8f20ff --- /dev/null +++ b/DigitalLearningSolutions.Web/Views/LearningPortal/Available/ConfirmRetirement.cshtml @@ -0,0 +1,54 @@ +@using DigitalLearningSolutions.Web.ViewModels.LearningPortal.Available +@using Microsoft.Extensions.Configuration +@model RetirementViewModel; +@inject IConfiguration Configuration; +@{ + var errorHasOccurred = !ViewData.ModelState.IsValid; + ViewData["Application"] = "Learning Portal"; + ViewData["Title"] = "Retirement Confirmation"; + ViewData["HeaderPath"] = $"{Configuration["AppRootPath"]}/LearningPortal/Retirement"; + ViewData["HeaderPathName"] = "Learning Portal"; +} + +@section NavMenuItems { + +} +
+
+
+ @if (errorHasOccurred) + { + + } +

Confirm Retirement

+

You are about to enrol on a retiring @Model.Name self-assessment.

+

Retirement date: @Model.RetirementDate?.ToString("dd MMMM yyyy")

+

After this date, the @Model.Name self-assessment will no longer be accessible.

+ +

Please consider:

+
    +
  • you may have limited time to complete the self-assessment
  • + + +
  • if you do not complete it before the retirement date, your progress may not be saved
  • +
+

To continue, you must acknowledge that you understand the self-assessment is retiring and still wish to enrol.

+ + +

+ +

+ + + Cancel + + @Html.HiddenFor(m => m.SelfAssessmentId) + @Html.HiddenFor(m => m.RetirementDate) +
+
+
+ From 4fc772c1441535b5ee61cc85e7ba03448fe9ad66 Mon Sep 17 00:00:00 2001 From: Auldrin-Possa Date: Fri, 1 Aug 2025 09:07:35 +0100 Subject: [PATCH 17/60] TD-Added confirmation screen and related change in controller --- .../SelfAssessmentDataService.cs | 51 +++++++++++++++++ .../SupervisorController/Supervisor.cs | 40 +++++++++++++ .../Services/SelfAssessmentService.cs | 6 ++ .../RetiringSelfAssessmentViewModel.cs | 14 +++++ .../ConfirmRetiringSelfAssessment.cshtml | 56 +++++++++++++++++++ 5 files changed, 167 insertions(+) create mode 100644 DigitalLearningSolutions.Web/ViewModels/Supervisor/RetiringSelfAssessmentViewModel.cs create mode 100644 DigitalLearningSolutions.Web/Views/Supervisor/ConfirmRetiringSelfAssessment.cshtml diff --git a/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs b/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs index 324a1050a7..3df284d618 100644 --- a/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs +++ b/DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs @@ -16,6 +16,7 @@ public interface ISelfAssessmentDataService { //Self Assessments string? GetSelfAssessmentNameById(int selfAssessmentId); + SelfAssessment? GetSelfAssessmentById(int selfAssessmentId); // CompetencyDataService IEnumerable GetCompetencyIdsForSelfAssessment(int selfAssessmentId); @@ -204,6 +205,56 @@ FROM SelfAssessments return name; } + public SelfAssessment? GetSelfAssessmentById(int selfAssessmentId) + { + return connection.Query( + @"SELECT [ID] + ,[Name] + ,[Description] + ,[IncludesSignposting] + ,[BrandID] + ,[CreatedDate] + ,[CreatedByCentreID] + ,[CreatedByAdminID] + ,[ArchivedDate] + ,[ArchivedByAdminID] + ,[IncludeDevelopment] + ,[ParentSelfAssessmentID] + ,[NRPProfessionalGroupID] + ,[NRPSubGroupID] + ,[NRPRoleID] + ,[PublishStatusID] + ,[UpdatedByAdminID] + ,[National] + ,[Public] + ,[Archived] + ,[LastEdit] + ,[SupervisorSelfAssessmentReview] + ,[SupervisorResultsReview] + ,[RAGResults] + ,[LinearNavigation] + ,[CategoryID] + ,[UseDescriptionExpanders] + ,[ManageOptionalCompetenciesPrompt] + ,[Vocabulary] + ,[SignOffRequestorStatement] + ,[SignOffSupervisorStatement] + ,[QuestionLabel] + ,[DescriptionLabel] + ,[EnforceRoleRequirementsForSignOff] + ,[ReviewerCommentsLabel] + ,[ManageSupervisorsDescription] + ,[IncludeRequirementsFilters] + ,[MinimumOptionalCompetencies] + ,[RetirementDate] + ,[EnrolmentCutoffDate] + ,[RetirementReason] + FROM SelfAssessments + WHERE ID = @selfAssessmentId", + new { selfAssessmentId } + ).SingleOrDefault(); + } + public (IEnumerable, int) GetSelfAssessmentDelegates(string searchString, int offSet, int itemsPerPage, string sortBy, string sortDirection, int? selfAssessmentId, int centreId, bool? isDelegateActive, bool? removed, bool? submitted, bool? signedOff) { diff --git a/DigitalLearningSolutions.Web/Controllers/SupervisorController/Supervisor.cs b/DigitalLearningSolutions.Web/Controllers/SupervisorController/Supervisor.cs index 3d22fb71fb..cc52357879 100644 --- a/DigitalLearningSolutions.Web/Controllers/SupervisorController/Supervisor.cs +++ b/DigitalLearningSolutions.Web/Controllers/SupervisorController/Supervisor.cs @@ -780,6 +780,18 @@ public IActionResult EnrolSetRoleProfile(int supervisorDelegateId, int selfAsses }; return View("EnrolDelegateOnProfileAssessment", model); } + var retirementDate = selfAssessmentService.GetSelfAssessmentById(selfAssessmentID).RetirementDate; + if (retirementDate?.Date is DateTime date && date >= DateTime.Today && + date <= DateTime.Today.AddDays(14)) + { + var model = new RetiringSelfAssessmentViewModel() + { + SelfAssessmentID = selfAssessmentID, + SupervisorDelegateID = supervisorDelegateId, + RetirementDate = retirementDate + }; + return View("ConfirmRetiringSelfAssessment", model); + } sessionEnrolOnRoleProfile.SelfAssessmentID = selfAssessmentID; multiPageFormService.SetMultiPageFormData( @@ -794,6 +806,34 @@ public IActionResult EnrolSetRoleProfile(int supervisorDelegateId, int selfAsses ); } + [HttpPost] + public IActionResult RetiringSelfAssessmentConfirmed(RetiringSelfAssessmentViewModel retiringSelfAssessment) + { + if (ModelState.IsValid && retiringSelfAssessment.ActionConfirmed) + { + var sessionEnrolOnRoleProfile = multiPageFormService.GetMultiPageFormData( + MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment, + TempData + ).GetAwaiter().GetResult(); + + sessionEnrolOnRoleProfile.SelfAssessmentID = retiringSelfAssessment.SelfAssessmentID; + multiPageFormService.SetMultiPageFormData( + sessionEnrolOnRoleProfile, + MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment, + TempData + ); + return RedirectToAction( + "EnrolDelegateCompleteBy", + "Supervisor", + new { supervisorDelegateId = retiringSelfAssessment.SupervisorDelegateID } + ); + } + else + { + return View("ConfirmRetiringSelfAssessment", retiringSelfAssessment); + } + } + [Route("/Supervisor/Staff/{supervisorDelegateId}/ProfileAssessment/Enrol/CompleteBy")] [ResponseCache(CacheProfileName = "Never")] [TypeFilter( diff --git a/DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs b/DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs index c9a50014fa..86ad36a410 100644 --- a/DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs +++ b/DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs @@ -14,6 +14,7 @@ public interface ISelfAssessmentService { //Self Assessments string? GetSelfAssessmentNameById(int selfAssessmentId); + SelfAssessment? GetSelfAssessmentById(int selfAssessmentId); // Candidate Assessments IEnumerable GetSelfAssessmentsForCandidate(int delegateUserId, int centreId, int? adminIdCategoryID); IEnumerable GetSelfAssessmentsForCandidate(int delegateUserId, int centreId); @@ -466,6 +467,11 @@ public void RemoveEnrolment(int selfAssessmentId, int delegateUserId) return selfAssessmentDataService.GetSelfAssessmentNameById(selfAssessmentId); } + public SelfAssessment? GetSelfAssessmentById(int selfAssessmentId) + { + return selfAssessmentDataService.GetSelfAssessmentById(selfAssessmentId); + } + public (SelfAssessmentDelegatesData, int?) GetSelfAssessmentDelegatesPerPage(string searchString, int offSet, int itemsPerPage, string sortBy, string sortDirection, int? selfAssessmentId, int centreId, bool? isDelegateActive, bool? removed, bool? submitted, bool? signedOff, int? adminCategoryId) { diff --git a/DigitalLearningSolutions.Web/ViewModels/Supervisor/RetiringSelfAssessmentViewModel.cs b/DigitalLearningSolutions.Web/ViewModels/Supervisor/RetiringSelfAssessmentViewModel.cs new file mode 100644 index 0000000000..06bab1bc50 --- /dev/null +++ b/DigitalLearningSolutions.Web/ViewModels/Supervisor/RetiringSelfAssessmentViewModel.cs @@ -0,0 +1,14 @@ +namespace DigitalLearningSolutions.Web.ViewModels.Supervisor +{ + using DigitalLearningSolutions.Web.Attributes; + using System; + + public class RetiringSelfAssessmentViewModel + { + public int SelfAssessmentID { get; set; } + public int SupervisorDelegateID { get; set; } + public DateTime? RetirementDate { get; set; } + [BooleanMustBeTrue(ErrorMessage = "Please tick the checkbox to confirm you wish to perform this action")] + public bool ActionConfirmed { get; set; } + } +} diff --git a/DigitalLearningSolutions.Web/Views/Supervisor/ConfirmRetiringSelfAssessment.cshtml b/DigitalLearningSolutions.Web/Views/Supervisor/ConfirmRetiringSelfAssessment.cshtml new file mode 100644 index 0000000000..ca4b515446 --- /dev/null +++ b/DigitalLearningSolutions.Web/Views/Supervisor/ConfirmRetiringSelfAssessment.cshtml @@ -0,0 +1,56 @@ +@using DigitalLearningSolutions.Web.Extensions +@using DigitalLearningSolutions.Web.ViewModels.Supervisor +@using Microsoft.Extensions.Configuration +@model RetiringSelfAssessmentViewModel; +@inject IConfiguration Configuration; +@{ + var errorHasOccurred = !ViewData.ModelState.IsValid; + ViewData["Title"] = (errorHasOccurred ? "Error: " : "") + "Enrol on Profile Assessment"; + ViewData["Application"] = "Supervisor"; + ViewData["HeaderPathName"] = "Supervisor"; +} + +@section NavMenuItems { + +} + +
+
+ @if (errorHasOccurred) + { + + } +

Confirm Enrolment

+

You are about to enrol learners on a retiring self-assessment.

+

Retirement date: @Model.RetirementDate?.ToString("dd/MM/yyyy")

+

After this date, this self-assessment will no longer be available for use.

+

Please note:

+
    +
  • Learners may not have enough time to complete the self-assessment before it is retired
  • +
  • You may wish to consider enrolling them on an updated version, if available
  • +
+

To continue, you must acknowledge that you understand the self-assessment is being retired and you still wish to proceed.

+
+
+ +
+ + @Html.HiddenFor(m => m.SelfAssessmentID) + @Html.HiddenFor(m => m.SupervisorDelegateID) + @Html.HiddenFor(m => m.RetirementDate) +
+ +
+
From 83381de4998c5dd45d498d2584497eef26436917 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Aug 2025 01:31:43 +0000 Subject: [PATCH 18/60] Bump core-js from 3.44.0 to 3.45.0 in /DigitalLearningSolutions.Web (#3341) Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.44.0 to 3.45.0. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/commits/v3.45.0/packages/core-js) --- updated-dependencies: - dependency-name: core-js dependency-version: 3.45.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 2d4488c506..456412621c 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -23,7 +23,7 @@ "dependencies": { "@types/chartist": "^0.11.1", "chartist": "^0.11.4", - "core-js": "^3.44.0", + "core-js": "^3.45.0", "date-fns": "^2.30.0", "dompurify": "^2.5.8", "input-range-scss": "^1.5.3", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 0ab240517e..c985142fdd 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -2534,10 +2534,10 @@ core-js-compat@^3.43.0: dependencies: browserslist "^4.25.0" -core-js@^3.28.0, core-js@^3.44.0: - version "3.44.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.44.0.tgz#db4fd4fa07933c1d6898c8b112a1119a9336e959" - integrity sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw== +core-js@^3.28.0, core-js@^3.45.0: + version "3.45.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.45.0.tgz#556c2af44a2d9c73ea7b49504392474a9f7c947e" + integrity sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA== cosmiconfig@^8.2.0: version "8.3.6" From ab5705283b5d27413f9271a5562f6a02d71bf480 Mon Sep 17 00:00:00 2001 From: sherif-olaboye <123654949+sherif-olaboye@users.noreply.github.com> Date: Wed, 6 Aug 2025 15:42:29 +0100 Subject: [PATCH 19/60] TD-3237 Multiple spaces on 'Contact number' field should be trimmed off on 'Edit centre manager details' screen --- .../Controllers/SuperAdmin/Centres/CentresController.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs b/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs index 8781d525bf..dd1a06b23e 100644 --- a/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs +++ b/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text.RegularExpressions; namespace DigitalLearningSolutions.Web.Controllers.SuperAdmin.Centres { @@ -330,7 +331,8 @@ public IActionResult ManageCentreManager(EditCentreManagerDetailsViewModel editC { editCentreManagerDetailsViewModel.FirstName = editCentreManagerDetailsViewModel.FirstName == null ? string.Empty : editCentreManagerDetailsViewModel.FirstName.Trim(); editCentreManagerDetailsViewModel.LastName = editCentreManagerDetailsViewModel.LastName == null ? string.Empty : editCentreManagerDetailsViewModel.LastName.Trim(); - editCentreManagerDetailsViewModel.Telephone = editCentreManagerDetailsViewModel.Telephone?.Trim() ?? string.Empty; + editCentreManagerDetailsViewModel.Telephone = editCentreManagerDetailsViewModel.Telephone != null ? Regex.Replace(editCentreManagerDetailsViewModel.Telephone, @"\s+", "") + : string.Empty; ; if (!ModelState.IsValid) { return View(editCentreManagerDetailsViewModel); From 814e27be80ad9b8cc7435f076c03a38bb6746a4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 22:56:50 +0000 Subject: [PATCH 20/60] Bump webpack from 5.100.2 to 5.101.1 in /DigitalLearningSolutions.Web (#3344) Bumps [webpack](https://github.com/webpack/webpack) from 5.100.2 to 5.101.1. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.100.2...v5.101.1) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.101.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 456412621c..4c949effa3 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -62,7 +62,7 @@ "rimraf": "^5.0.10", "ts-node": "^10.9.2", "typescript": "^4.9.5", - "webpack": "^5.100.2", + "webpack": "^5.101.1", "webpack-cli": "^5.1.4" }, "-vs-binding": { diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index c985142fdd..6cff7747e4 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -2810,10 +2810,10 @@ enhanced-resolve@^0.9.1: memory-fs "^0.2.0" tapable "^0.1.8" -enhanced-resolve@^5.17.2: - version "5.18.2" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz#7903c5b32ffd4b2143eeb4b92472bd68effd5464" - integrity sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ== +enhanced-resolve@^5.17.3: + version "5.18.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" + integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -6326,10 +6326,10 @@ webpack-sources@^3.3.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== -webpack@^5.100.2: - version "5.100.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.2.tgz#e2341facf9f7de1d702147c91bcb65b693adf9e8" - integrity sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw== +webpack@^5.101.1: + version "5.101.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.101.1.tgz#bda907efcb233161fe17690ef906a2b244bbfede" + integrity sha512-rHY3vHXRbkSfhG6fH8zYQdth/BtDgXXuR2pHF++1f/EBkI8zkgM5XWfsC3BvOoW9pr1CvZ1qQCxhCEsbNgT50g== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.8" @@ -6341,7 +6341,7 @@ webpack@^5.100.2: acorn-import-phases "^1.0.3" browserslist "^4.24.0" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.2" + enhanced-resolve "^5.17.3" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" From 7da04fe190a3eae10c50d9535a8bca903a25e009 Mon Sep 17 00:00:00 2001 From: sherif-olaboye <123654949+sherif-olaboye@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:51:12 +0100 Subject: [PATCH 21/60] TD-5361 Switch filter logic from AND to OR to match any selected filter --- .../Helpers/CompetencyFilterHelper.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/DigitalLearningSolutions.Web/Helpers/CompetencyFilterHelper.cs b/DigitalLearningSolutions.Web/Helpers/CompetencyFilterHelper.cs index 26b0e181ab..bf4e79abea 100644 --- a/DigitalLearningSolutions.Web/Helpers/CompetencyFilterHelper.cs +++ b/DigitalLearningSolutions.Web/Helpers/CompetencyFilterHelper.cs @@ -43,12 +43,12 @@ private static void ApplyResponseStatusFilters(ref IEnumerable compe let searchTextMatchesCompetencyDescription = wordsInSearchText.All(w => c.Description?.Contains(w, StringComparison.CurrentCultureIgnoreCase) ?? false) let searchTextMatchesCompetencyName = wordsInSearchText.All(w => c.Name?.Contains(w, StringComparison.CurrentCultureIgnoreCase) ?? false) let responseStatusFilterMatchesAll = - (!filters.Contains((int)SelfAssessmentCompetencyFilter.RequiresSelfAssessment) || c.AssessmentQuestions.Any(q => q.ResultId == null)) - && (!filters.Contains((int)SelfAssessmentCompetencyFilter.SelfAssessed) || c.AssessmentQuestions.Any(q => q.ResultId != null && q.Requested == null && q.SignedOff == null)) - && (!filters.Contains((int)SelfAssessmentCompetencyFilter.ConfirmationRequested) || c.AssessmentQuestions.Any(q => q.Verified == null && q.Requested != null)) - && (!filters.Contains((int)SelfAssessmentCompetencyFilter.ConfirmationRejected) || c.AssessmentQuestions.Any(q => q.Verified.HasValue && q.SignedOff != true)) - && (!filters.Contains((int)SelfAssessmentCompetencyFilter.Verified) || c.AssessmentQuestions.Any(q => q.Verified.HasValue && q.SignedOff == true)) - && (!filters.Contains((int)SelfAssessmentCompetencyFilter.Optional) || c.Optional) + (filters.Contains((int)SelfAssessmentCompetencyFilter.RequiresSelfAssessment) && c.AssessmentQuestions.Any(q => q.ResultId == null)) + || (filters.Contains((int)SelfAssessmentCompetencyFilter.SelfAssessed) && c.AssessmentQuestions.Any(q => q.ResultId != null && q.Requested == null && q.SignedOff == null)) + || (filters.Contains((int)SelfAssessmentCompetencyFilter.ConfirmationRequested) && c.AssessmentQuestions.Any(q => q.Verified == null && q.Requested != null)) + || (filters.Contains((int)SelfAssessmentCompetencyFilter.ConfirmationRejected) && c.AssessmentQuestions.Any(q => q.Verified.HasValue && q.SignedOff != true)) + || (filters.Contains((int)SelfAssessmentCompetencyFilter.Verified) && c.AssessmentQuestions.Any(q => q.Verified.HasValue && q.SignedOff == true)) + || (filters.Contains((int)SelfAssessmentCompetencyFilter.Optional) && c.Optional) where (wordsInSearchText.Count() == 0 || searchTextMatchesGroup || searchTextMatchesCompetencyDescription || searchTextMatchesCompetencyName) && (!appliedResponseStatusFilters.Any() || responseStatusFilterMatchesAll) select c; From 7f16d7c7df5f7a8c9e07812bcc6995faf53e1ab6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Aug 2025 18:31:15 +0000 Subject: [PATCH 22/60] Bump @babel/core from 7.28.0 to 7.28.3 in /DigitalLearningSolutions.Web (#3349) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.28.0 to 7.28.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.28.3/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-version: 7.28.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 99 +++++++++++------------ 2 files changed, 47 insertions(+), 54 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 4c949effa3..f5f40020c7 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -35,7 +35,7 @@ "regenerator-runtime": "^0.14.1" }, "devDependencies": { - "@babel/core": "^7.28.0", + "@babel/core": "^7.28.3", "@babel/preset-env": "^7.28.0", "@babel/preset-typescript": "^7.27.0", "@types/dompurify": "^2.3.3", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 6cff7747e4..9d3522ddb8 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -24,34 +24,34 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.0.tgz#9fc6fd58c2a6a15243cd13983224968392070790" integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.0.tgz#55dad808d5bf3445a108eefc88ea3fdf034749a4" - integrity sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.3.tgz#aceddde69c5d1def69b839d09efa3e3ff59c97cb" + integrity sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.0" + "@babel/generator" "^7.28.3" "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-module-transforms" "^7.27.3" - "@babel/helpers" "^7.27.6" - "@babel/parser" "^7.28.0" + "@babel/helper-module-transforms" "^7.28.3" + "@babel/helpers" "^7.28.3" + "@babel/parser" "^7.28.3" "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.0" - "@babel/types" "^7.28.0" + "@babel/traverse" "^7.28.3" + "@babel/types" "^7.28.2" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.28.0", "@babel/generator@^7.7.2": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.0.tgz#9cc2f7bd6eb054d77dc66c2664148a0c5118acd2" - integrity sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg== +"@babel/generator@^7.28.3", "@babel/generator@^7.7.2": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e" + integrity sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw== dependencies: - "@babel/parser" "^7.28.0" - "@babel/types" "^7.28.0" + "@babel/parser" "^7.28.3" + "@babel/types" "^7.28.2" "@jridgewell/gen-mapping" "^0.3.12" "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" @@ -172,14 +172,14 @@ "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz#db0bbcfba5802f9ef7870705a7ef8788508ede02" - integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== +"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" + integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== dependencies: "@babel/helper-module-imports" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.27.3" + "@babel/traverse" "^7.28.3" "@babel/helper-optimise-call-expression@^7.25.9": version "7.25.9" @@ -267,20 +267,20 @@ "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helpers@^7.27.6": - version "7.27.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.6.tgz#6456fed15b2cb669d2d1fabe84b66b34991d812c" - integrity sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug== +"@babel/helpers@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.3.tgz#b83156c0a2232c133d1b535dd5d3452119c7e441" + integrity sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw== dependencies: "@babel/template" "^7.27.2" - "@babel/types" "^7.27.6" + "@babel/types" "^7.28.2" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.0.tgz#979829fbab51a29e13901e5a80713dbcb840825e" - integrity sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.3.tgz#d2d25b814621bca5fe9d172bc93792547e7a2a71" + integrity sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA== dependencies: - "@babel/types" "^7.28.0" + "@babel/types" "^7.28.2" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": version "7.27.1" @@ -992,23 +992,23 @@ "@babel/parser" "^7.27.2" "@babel/types" "^7.27.1" -"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.27.0", "@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.28.0", "@babel/traverse@^7.7.2": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.0.tgz#518aa113359b062042379e333db18380b537e34b" - integrity sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg== +"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.27.0", "@babel/traverse@^7.27.1", "@babel/traverse@^7.28.0", "@babel/traverse@^7.28.3", "@babel/traverse@^7.7.2": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.3.tgz#6911a10795d2cce43ec6a28cffc440cca2593434" + integrity sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ== dependencies: "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.0" + "@babel/generator" "^7.28.3" "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.28.0" + "@babel/parser" "^7.28.3" "@babel/template" "^7.27.2" - "@babel/types" "^7.28.0" + "@babel/types" "^7.28.2" debug "^4.3.1" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6", "@babel/types@^7.28.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.0.tgz#2fd0159a6dc7353933920c43136335a9b264d950" - integrity sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.28.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.2.tgz#da9db0856a9a88e0a13b019881d7513588cf712b" + integrity sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ== dependencies: "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" @@ -2650,10 +2650,10 @@ date-fns@^2.30.0: dependencies: "@babel/runtime" "^7.21.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.4.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" - integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== dependencies: ms "^2.1.3" @@ -2664,13 +2664,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" - integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== - dependencies: - ms "^2.1.3" - decimal.js@^10.3.1, decimal.js@^10.4.3: version "10.5.0" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.5.0.tgz#0f371c7cf6c4898ce0afb09836db73cd82010f22" From c92b6d85ef419fb994160cdacb3832d9bab8348b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Aug 2025 18:44:02 +0000 Subject: [PATCH 23/60] Bump @babel/preset-env in /DigitalLearningSolutions.Web (#3347) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.28.0 to 7.28.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.28.3/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-version: 7.28.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 67 ++++++++++++++--------- 2 files changed, 41 insertions(+), 28 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index f5f40020c7..7ca19f443b 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -36,7 +36,7 @@ }, "devDependencies": { "@babel/core": "^7.28.3", - "@babel/preset-env": "^7.28.0", + "@babel/preset-env": "^7.28.3", "@babel/preset-typescript": "^7.27.0", "@types/dompurify": "^2.3.3", "@types/jest": "^27.5.2", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 9d3522ddb8..3bd9834243 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -114,6 +114,19 @@ "@babel/traverse" "^7.27.1" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz#3e747434ea007910c320c4d39a6b46f20f371d46" + integrity sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.28.3" + semver "^6.3.1" + "@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.21.8" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz#a7886f61c2e29e21fd4aaeaf1e473deba6b571dc" @@ -313,13 +326,13 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" "@babel/plugin-transform-optional-chaining" "^7.27.1" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" - integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz#373f6e2de0016f73caf8f27004f61d167743742a" + integrity sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.28.3" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -514,25 +527,25 @@ "@babel/helper-create-class-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-static-block@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" - integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== +"@babel/plugin-transform-class-static-block@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz#d1b8e69b54c9993bc558203e1f49bfc979bfd852" + integrity sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.28.3" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-classes@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz#12fa46cffc32a6e084011b650539e880add8a0f8" - integrity sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA== +"@babel/plugin-transform-classes@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz#598297260343d0edbd51cb5f5075e07dee91963a" + integrity sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-globals" "^7.28.0" "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.28.0" + "@babel/traverse" "^7.28.3" "@babel/plugin-transform-computed-properties@^7.27.1": version "7.27.1" @@ -775,10 +788,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.0.tgz#f19ca3558f7121924fc4ba6cd2afe3a5cdac89b1" - integrity sha512-LOAozRVbqxEVjSKfhGnuLoE4Kz4Oc5UJzuvFUhSsQzdCdaAQu06mG8zDv2GFSerM62nImUZ7K92vxnQcLSDlCQ== +"@babel/plugin-transform-regenerator@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz#b8eee0f8aed37704bbcc932fd0b1a0a34d0b7344" + integrity sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -875,10 +888,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/preset-env@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.0.tgz#d23a6bc17b43227d11db77081a0779c706b5569c" - integrity sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg== +"@babel/preset-env@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.3.tgz#2b18d9aff9e69643789057ae4b942b1654f88187" + integrity sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg== dependencies: "@babel/compat-data" "^7.28.0" "@babel/helper-compilation-targets" "^7.27.2" @@ -888,7 +901,7 @@ "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.3" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-import-assertions" "^7.27.1" "@babel/plugin-syntax-import-attributes" "^7.27.1" @@ -899,8 +912,8 @@ "@babel/plugin-transform-block-scoped-functions" "^7.27.1" "@babel/plugin-transform-block-scoping" "^7.28.0" "@babel/plugin-transform-class-properties" "^7.27.1" - "@babel/plugin-transform-class-static-block" "^7.27.1" - "@babel/plugin-transform-classes" "^7.28.0" + "@babel/plugin-transform-class-static-block" "^7.28.3" + "@babel/plugin-transform-classes" "^7.28.3" "@babel/plugin-transform-computed-properties" "^7.27.1" "@babel/plugin-transform-destructuring" "^7.28.0" "@babel/plugin-transform-dotall-regex" "^7.27.1" @@ -932,7 +945,7 @@ "@babel/plugin-transform-private-methods" "^7.27.1" "@babel/plugin-transform-private-property-in-object" "^7.27.1" "@babel/plugin-transform-property-literals" "^7.27.1" - "@babel/plugin-transform-regenerator" "^7.28.0" + "@babel/plugin-transform-regenerator" "^7.28.3" "@babel/plugin-transform-regexp-modifiers" "^7.27.1" "@babel/plugin-transform-reserved-words" "^7.27.1" "@babel/plugin-transform-shorthand-properties" "^7.27.1" From 12224ebda5b45a08c3bf7e90e5cee702c4f7a389 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 05:39:16 +0000 Subject: [PATCH 24/60] Bump webpack from 5.101.1 to 5.101.3 in /DigitalLearningSolutions.Web (#3351) Bumps [webpack](https://github.com/webpack/webpack) from 5.101.1 to 5.101.3. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.101.1...v5.101.3) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.101.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 7ca19f443b..5aefe7db75 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -62,7 +62,7 @@ "rimraf": "^5.0.10", "ts-node": "^10.9.2", "typescript": "^4.9.5", - "webpack": "^5.101.1", + "webpack": "^5.101.3", "webpack-cli": "^5.1.4" }, "-vs-binding": { diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 3bd9834243..706ffbbafe 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -6332,10 +6332,10 @@ webpack-sources@^3.3.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== -webpack@^5.101.1: - version "5.101.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.101.1.tgz#bda907efcb233161fe17690ef906a2b244bbfede" - integrity sha512-rHY3vHXRbkSfhG6fH8zYQdth/BtDgXXuR2pHF++1f/EBkI8zkgM5XWfsC3BvOoW9pr1CvZ1qQCxhCEsbNgT50g== +webpack@^5.101.3: + version "5.101.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.101.3.tgz#3633b2375bb29ea4b06ffb1902734d977bc44346" + integrity sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.8" From a314e68e86ce97c9802ad813967f3ba4e51b89c7 Mon Sep 17 00:00:00 2001 From: Auldrin-Possa Date: Tue, 19 Aug 2025 17:11:31 +0100 Subject: [PATCH 25/60] TD-5552- Created a stored procedure to send retiring self assessment email notifications --- ...endRetiringSelfAssessmentNotificationSP.cs | 16 ++++++++++ .../Properties/Resources.Designer.cs | 28 ++++++++++++++++++ .../Properties/Resources.resx | 3 ++ .../TD-5552-SendRetiringNotification.sql | Bin 0 -> 15236 bytes 4 files changed, 47 insertions(+) create mode 100644 DigitalLearningSolutions.Data.Migrations/202508191440_CreateSendRetiringSelfAssessmentNotificationSP.cs create mode 100644 DigitalLearningSolutions.Data.Migrations/Scripts/TD-5552-SendRetiringNotification.sql diff --git a/DigitalLearningSolutions.Data.Migrations/202508191440_CreateSendRetiringSelfAssessmentNotificationSP.cs b/DigitalLearningSolutions.Data.Migrations/202508191440_CreateSendRetiringSelfAssessmentNotificationSP.cs new file mode 100644 index 0000000000..d6f109b420 --- /dev/null +++ b/DigitalLearningSolutions.Data.Migrations/202508191440_CreateSendRetiringSelfAssessmentNotificationSP.cs @@ -0,0 +1,16 @@ +namespace DigitalLearningSolutions.Data.Migrations +{ + using FluentMigrator; + [Migration(202508191440)] + public class CreateSendRetiringSelfAssessmentNotificationSP : Migration + { + public override void Up() + { + Execute.Sql(Properties.Resources.TD_5552_SendRetiringNotification); + } + public override void Down() + { + Execute.Sql("DROP PROCEDURE [dbo].[SendRetiringSelfAssessmentNotification]"); + } + } +} diff --git a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs index 631af7bc66..5a70756bd6 100644 --- a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs +++ b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs @@ -2564,6 +2564,34 @@ internal static string TD_5535_Alter_GetActivitiesForDelegateEnrolment_Up { } } + /// + /// Looks up a localized string similar to SET ANSI_NULLS ON + ///GO + /// + ///SET QUOTED_IDENTIFIER ON + ///GO + /// + /// + /// + ///-- ============================================= + ///-- Author: Auldrin Possa + ///-- Create date: 04/08/2015 + ///-- Description: Uses DB mail to send notification to delegates on retiring self assessment. + ///-- ============================================= + ///CREATE PROCEDURE [dbo].[SendRetiringSelfAssessmentNotification] + /// @SelfAssessmentId int, + /// @TestOnly bit + ///AS + ///BEGIN + /// -- SET NOCOUNT ON added to prevent extra result sets from + /// -- interfering with SELEC [rest of string was truncated]";. + /// + internal static string TD_5552_SendRetiringNotification { + get { + return ResourceManager.GetString("TD_5552_SendRetiringNotification", resourceCulture); + } + } + /// /// Looks up a localized string similar to IF OBJECT_ID('dbo.IndexOptimize', 'P') IS NOT NULL DROP PROCEDURE dbo.IndexOptimize; ///IF OBJECT_ID('dbo.CommandExecute', 'P') IS NOT NULL DROP PROCEDURE dbo.CommandExecute; diff --git a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx index 41e1de40a2..138250507c 100644 --- a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx +++ b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx @@ -505,4 +505,7 @@ ..\Scripts\TD-5535-Alter_GetActivitiesForDelegateEnrolment_Up.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16 + + ..\Scripts\TD-5552-SendRetiringNotification.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16 + \ No newline at end of file diff --git a/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5552-SendRetiringNotification.sql b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5552-SendRetiringNotification.sql new file mode 100644 index 0000000000000000000000000000000000000000..dac12e78400b072add6ae5b4eb560d731335f642 GIT binary patch literal 15236 zcmeI3eQz7b5ytml7U*{%Py~_@Td{(sXkEt;O-YVYy*LtWH!uuAmgJXIZy+T*Mv$-G z_WA8_w0n1ZN7}WKpfC>Nk$1bZGqW?#%bn+J)oVkaYid2xw{`ukh256^PUlv*r54|QvWszSj6t{x zm*G`7594qr^mOs$Bpm7Y>u@G69_rmh*FlufdJXmVSWhnX*;iZpc1PcDhd+m}^!ZnP zey#g*_$KSOs`is`7-?Uq_iNEUi{n1hbKdo(tNZ#q70uV;qpw!y`sD4IM(XSHJobE{ z_lI$0qv9=()bd1sFQ;5VlTrGSXT~(iUQVf=gctgDpb?CNiNieqfh&TQ4RI)#p9M8nnQ`wnmV^{ZFBAz49pdih5i{73^DSKfhQf=$K z5p|D6T!x$1Jw_UDq9;3geiGh^&*#$bWqdynJ?!kh_poUXo7YLSTHY{=m-_5W4`a!EI_1_Z*CaUBn-^-A zEa7eB`;~gZ*{1%6ksqWp>vpS{Ozol3C-`)zXjOgybePuLR0F3V=FO@>~0B5i@M_zbuUio#Ddg8q zCb?ahCWtii%tM)$(WrZFf9kud(XTE0t4J>}Owo@-RLhO5XkGCGb4dTjKv~{TYUpVw`!h>9gt&KARh&0{)IAuV*gA zkQa&+W8F9P?m*v+Bi9rZi3_{ad1AhH)VgGo%xiN_kfE+;o+VwrpOiPUS*%8^EBQ)! zeBP9JV4engvnCnIIu;d652fd&8h7-6DBTb{(9yf>eL}RVL}X}7(Xw5aSX{z&%W9T1 za(he!-wiE23w6t7Ube*r`Skaag5S(4nbOjnHj}8st7jmLWPDo$F*&-pG+)l8?BX5+?_M>eA|)VPd5e75&QNbA>p zH@`eSCi=X(=DWlX<6%pTp3}zy*Q1A}xpb;IXJ~<}jQSwWp4qJH%PrXZ*Cnk!cMW;3 ze6)Jc`ny>YblD7X-ZR%E3E!wL$z_+MqpF=$Id9V?v1mtLwI?bAdF?~_H*sUJqVamx z*F*v$&Og-)+nIzn;^(pW0RyPN$k1=ZD6}BV{#(pXZ^f$5J}o|*@8d=qCSb3-ZpO1x64)?yX?Im&PRQ`>S(>`j5{y$qE|`c zWU)rA>1owG*;~ygTa|i~c8UaTn)kU*c_4V6XYO_Mot?i|wdwwhWJ~gdV@0fUSughL zqmysp9loYhreOF5He;_)Fq~c1z1#z2E444TZhD+!P&JOuioKhXhMcgk%=ruDO;liC z=zBiugNO-_gav(N!Jq+De~Vm!T*u}HYvR{zTd5)sy=Nl`mGfh1W?NY%Ib=Q0adZP` zpI%$WNHa}!{A>3wqvx?2 zx~(~(@_Ao7oJdY`#wOY)ukoBQf8z32bI|#4uZrKGM=AHrN9fI&ftKW`j>a#`2$I*N zycFx5PX@dV+3VQFs;{j)Kp%Ql%&cQ&S^BE%C8_GUOp=lr&1Hm#c_>)LM;2r@frM2) zl5E!Ef0rzISuGqHqQl<9#iIxPZ=GwV_bOqx|Z_T zYZlg(wI-^w<1$`omenqI?xFL?Eh@D`n`D47ge^=PgrRTB_{HY^wTq*>bNe zk20@+;svw0uxKzT;2)N79@pQ90=JY6vj+Y$R(tGl%)63exf#;B#Pda z-FeS0Z_KHZH#_c_45eECP<8+&eGH zU_RmN;fAVUY(G{p8*weIuhofjUA8)2-NQVVou%~)_ps(((J)$_+2-XG&9NJDCQyC( zdM~J_xL4n4vdY@#Cht{8K+l3{3C7LBAK!l}joGXwN^8WvlSSsg(pZz6-D6*}x&}wm zajA!|Lw9k@Iw89g-$|oe;-f^zwBxJEWKT^^=lrY-C)jmlr}~X%c`P(}74M7M5&uRP zI%f8^RiCXYTYsrPu;@h3()u&_%^vlhsGZ0TyxPIv+xBw%;jVfanq8>ZJ8Abwce1H7 zal!p6{7bu3sWL1{1KK?gKM4z|d*_pcyb2!Ep6WzT*yp?@*_ylST^yv@Wxbhr##-O8 zO1;ImA>_T0_$0S z+U%Emf_WyEp5`;>G3mCHZRIWVcw~46)shygJ9w@m@Ny;Y3RJxvD)~4)`Ndt$<2}t4 zwhMx@qS6mv>W}pzUoBcJ>i4GF+L|Zr>DSh`smW^3o8sfE$jO4nF7xLFVdp0JWqVs7(mTmRg}{j))=%skz1#Sl@3cZyZg35L@L4eJdE^f+4Ik`Whn>kO zkGn2!-Hp4Q?7`1EO+XY`kZ+PZZ%r>`wTt;^^0(Bf-+^?-PA@xx=!&&u-z_9ROnU3a zxLgb1vgHKey3sbx9K<+*w$dKD??+x~Wr-DF0kd*l%uOt7rxli+HGkm90y1VLk zA{(z-RZo3RB-DX=Tlyagh?P#%je(xE+JNyl1x-tC~ILU0LJ3sRXtMY<^;TPV>rK zAUm@5BRA}^+l~dJK&5Roo|}dlZLF5qy;HFVKR+^>>L8u)0yA${+O|a}IBKi)>Z4Par)NYCyevKOtcs_cf6Ma| zJ9BhjeR6cCB`YdN(K7DKPAtYBMu{dug}PmG-fB~Or|g5n54e*!aGt79bG~>}VQSN;vvtK_Vl~$L>Ty0<&?9e)m1J|tWi-{+tttScy#Z{dMr!BwyW|WWtB=-YnOgj zkE&L>Ti0{)YU?C>{v6pY#+UM{FB`Q|PwicYPRH-~P?~l3mWgx*2HC#nq4dUC%}w16 zIY0-e(9Eb`X|_)_!?Wv)oCf>hb|SPpQ%V(1o41wnD=fT}3C=pFLiLh+igTQ-t0&52 zGk9RSV*?kuK=DgiU8ydySlvc(AVec`cgh3NA&=o1d%e&Gcloq7{m20=XtSih_8u#0 zV-*t7a{zMRVk89@}l-AacFl z*^0<(C(PcjrcYy~I;31veb~BzYxHwHM8@aZzY;>6SWv0*`K5pmzpCvo zjr#Cc`AW)5>J>|>t3KB(mRA}!e!Q9m4gdbC7PpA@JUCg#|9>XTiR@BVY3RBTbH{li zWR3(DbrWXSvnQj?d3a8M4YcmW`OXzZI?G7R4)N$_F3{%b9@mJFDfjUBU(Q8&`@USx z;=0VUaX0^3jh|mDVOp71+uBV@8}+$r%g|EBY1J5(lAd|(k)C+w&HR0?hdh_>w!!v# z$g17XzS+J?TKC2J?>eIVUVXFfkDn{yW+iMp{oViN<9dAG|E-}S Date: Wed, 20 Aug 2025 18:46:56 +0000 Subject: [PATCH 26/60] Bump core-js from 3.45.0 to 3.45.1 in /DigitalLearningSolutions.Web (#3354) Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.45.0 to 3.45.1. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/commits/v3.45.1/packages/core-js) --- updated-dependencies: - dependency-name: core-js dependency-version: 3.45.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- DigitalLearningSolutions.Web/package.json | 2 +- DigitalLearningSolutions.Web/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DigitalLearningSolutions.Web/package.json b/DigitalLearningSolutions.Web/package.json index 5aefe7db75..1ee3444d88 100644 --- a/DigitalLearningSolutions.Web/package.json +++ b/DigitalLearningSolutions.Web/package.json @@ -23,7 +23,7 @@ "dependencies": { "@types/chartist": "^0.11.1", "chartist": "^0.11.4", - "core-js": "^3.45.0", + "core-js": "^3.45.1", "date-fns": "^2.30.0", "dompurify": "^2.5.8", "input-range-scss": "^1.5.3", diff --git a/DigitalLearningSolutions.Web/yarn.lock b/DigitalLearningSolutions.Web/yarn.lock index 706ffbbafe..d7fc8b963a 100644 --- a/DigitalLearningSolutions.Web/yarn.lock +++ b/DigitalLearningSolutions.Web/yarn.lock @@ -2547,10 +2547,10 @@ core-js-compat@^3.43.0: dependencies: browserslist "^4.25.0" -core-js@^3.28.0, core-js@^3.45.0: - version "3.45.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.45.0.tgz#556c2af44a2d9c73ea7b49504392474a9f7c947e" - integrity sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA== +core-js@^3.28.0, core-js@^3.45.1: + version "3.45.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.45.1.tgz#5810e04a1b4e9bc5ddaa4dd12e702ff67300634d" + integrity sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg== cosmiconfig@^8.2.0: version "8.3.6" From 5d48f64050bcd469f356aeefbc7430fdbec3ce04 Mon Sep 17 00:00:00 2001 From: sherif-olaboye <123654949+sherif-olaboye@users.noreply.github.com> Date: Thu, 21 Aug 2025 09:25:22 +0100 Subject: [PATCH 27/60] TD-4624 Add regex validation of professional registration number field throughout the application --- .../Helpers/ProfessionalRegistrationNumberHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs index 461d7ae46b..b5b379e1d6 100644 --- a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs +++ b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs @@ -48,7 +48,7 @@ public static void ValidateProfessionalRegistrationNumber( ); } - const string pattern = @"^[a-z\d-]+$"; + const string pattern = @"^(\d{7}|[A-Za-z]{1,2}\d{6}|\d{4,8}|P?\d{5,6}|[C|P]\d{6}|[A-Za-z]?\d{5,6}|L\d{4,6}|\d{2}-[A-Za-z\d]{4,5})$"; var rg = new Regex(pattern, RegexOptions.IgnoreCase); if (!rg.Match(prn).Success) { From 304cb3d1746a58f99d3f833058bb9259ec045ac1 Mon Sep 17 00:00:00 2001 From: sherif-olaboye <123654949+sherif-olaboye@users.noreply.github.com> Date: Thu, 21 Aug 2025 10:51:59 +0100 Subject: [PATCH 28/60] TD-4624 Add regex validation of professional registration number field throughout the application --- .../ProfessionalRegistrationNumberHelperTests.cs | 2 +- .../ProfessionalRegistrationNumberHelper.cs | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs b/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs index d78c74f042..28e5f0004e 100644 --- a/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs +++ b/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs @@ -70,7 +70,7 @@ public void ValidateProfessionalRegistrationNumber_does_not_set_errors_when_vali { // Given var state = new ModelStateDictionary(); - const string validPrn = "abc-123"; + const string validPrn = "AB123456"; // When ProfessionalRegistrationNumberHelper.ValidateProfessionalRegistrationNumber( diff --git a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs index b5b379e1d6..abe2959b99 100644 --- a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs +++ b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs @@ -1,7 +1,11 @@ namespace DigitalLearningSolutions.Web.Helpers { - using System.Text.RegularExpressions; + using DocumentFormat.OpenXml.ExtendedProperties; + using DocumentFormat.OpenXml.Spreadsheet; using Microsoft.AspNetCore.Mvc.ModelBinding; + using Microsoft.CodeAnalysis; + using System.Diagnostics.Metrics; + using System.Text.RegularExpressions; public class ProfessionalRegistrationNumberHelper { @@ -40,11 +44,11 @@ public static void ValidateProfessionalRegistrationNumber( return; } - if (prn.Length < 5 || prn.Length > 20) + if (prn.Length < 4 || prn.Length > 20) { modelState.AddModelError( "ProfessionalRegistrationNumber", - "Professional registration number must be between 5 and 20 characters" + "Professional registration number must be between 4 and 20 characters" ); } @@ -54,7 +58,9 @@ public static void ValidateProfessionalRegistrationNumber( { modelState.AddModelError( "ProfessionalRegistrationNumber", - "Invalid professional registration number format - Only alphanumeric characters (a-z, A-Z and 0-9) and hyphens (-) allowed" + "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)"+ + " 4–8 digits only "+"Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits "+ + "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" ); } } From e4edffc95a95e5f98d7e884038db8989d0967ef2 Mon Sep 17 00:00:00 2001 From: sherif-olaboye <123654949+sherif-olaboye@users.noreply.github.com> Date: Thu, 21 Aug 2025 12:05:49 +0100 Subject: [PATCH 29/60] TD-4624 Add regex validation of professional registration number field throughout the application --- ...RegisterDelegateByCentreControllerTests.cs | 2 +- .../Delegates/EditDelegateControllerTests.cs | 5 ++++- ...ofessionalRegistrationNumberHelperTests.cs | 19 ++++++++++++++----- .../ProfessionalRegistrationNumberHelper.cs | 4 ++-- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/DigitalLearningSolutions.Web.Tests/Controllers/Register/RegisterDelegateByCentreControllerTests.cs b/DigitalLearningSolutions.Web.Tests/Controllers/Register/RegisterDelegateByCentreControllerTests.cs index 0d4a77fc61..0040c2b514 100644 --- a/DigitalLearningSolutions.Web.Tests/Controllers/Register/RegisterDelegateByCentreControllerTests.cs +++ b/DigitalLearningSolutions.Web.Tests/Controllers/Register/RegisterDelegateByCentreControllerTests.cs @@ -176,7 +176,7 @@ public void LearnerInformationPost_updates_tempdata_correctly() const string answer4 = "answer4"; const string answer5 = "answer5"; const string answer6 = "answer6"; - const string professionalRegistrationNumber = "PRN1234"; + const string professionalRegistrationNumber = "PR123456"; var model = new LearnerInformationViewModel { JobGroup = jobGroupId, diff --git a/DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/EditDelegateControllerTests.cs b/DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/EditDelegateControllerTests.cs index 5c5df8ac44..5c0583b379 100644 --- a/DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/EditDelegateControllerTests.cs +++ b/DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/EditDelegateControllerTests.cs @@ -175,7 +175,10 @@ public void Index_post_returns_view_with_model_error_with_invalid_prn() result.As().Model.Should().BeOfType(); AssertModelStateErrorIsExpected( result, - "Invalid professional registration number format - Only alphanumeric characters (a-z, A-Z and 0-9) and hyphens (-) allowed" + "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)" + + " 4–8 digits only " + "Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits " + + "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" + ); A.CallTo(() => userService.GetDelegateById(A._)).MustNotHaveHappened(); } diff --git a/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs b/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs index 28e5f0004e..932c59a13e 100644 --- a/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs +++ b/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs @@ -106,19 +106,28 @@ public void ValidateProfessionalRegistrationNumber_sets_error_when_hasPrn_is_not [TestCase(null, "Enter a professional registration number")] [TestCase("", "Enter a professional registration number")] - [TestCase("123", "Professional registration number must be between 5 and 20 characters")] - [TestCase("0123456789-0123456789", "Professional registration number must be between 5 and 20 characters")] + [TestCase("1234", "Professional registration number must be between 5 and 20 characters")] + [TestCase("1234", "Professional registration number must be between 5 and 20 characters")] [TestCase( "01234_", - "Invalid professional registration number format - Only alphanumeric characters (a-z, A-Z and 0-9) and hyphens (-) allowed" + "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)" + + " 4–8 digits only " + "Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits " + + "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" + )] [TestCase( "01234 ", - "Invalid professional registration number format - Only alphanumeric characters (a-z, A-Z and 0-9) and hyphens (-) allowed" + "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)" + + " 4–8 digits only " + "Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits " + + "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" + )] [TestCase( "01234$", - "Invalid professional registration number format - Only alphanumeric characters (a-z, A-Z and 0-9) and hyphens (-) allowed" + "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)" + + " 4–8 digits only " + "Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits " + + "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" + )] public void ValidateProfessionalRegistrationNumber_sets_error_when_prn_is_invalid( string prn, diff --git a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs index abe2959b99..6458330c49 100644 --- a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs +++ b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs @@ -44,11 +44,11 @@ public static void ValidateProfessionalRegistrationNumber( return; } - if (prn.Length < 4 || prn.Length > 20) + if (prn.Length < 5 || prn.Length > 20) { modelState.AddModelError( "ProfessionalRegistrationNumber", - "Professional registration number must be between 4 and 20 characters" + "Professional registration number must be between 5 and 20 characters" ); } From fb99988c0fa24d3ed5d08e8e241f7075539ed1a2 Mon Sep 17 00:00:00 2001 From: sherif-olaboye <123654949+sherif-olaboye@users.noreply.github.com> Date: Thu, 21 Aug 2025 12:23:42 +0100 Subject: [PATCH 30/60] =?UTF-8?q?TD-4624=20error=20message=20to=20describe?= =?UTF-8?q?=20exactly=20what=E2=80=99s=20allowed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Delegates/EditDelegateControllerTests.cs | 8 ++++--- ...ofessionalRegistrationNumberHelperTests.cs | 24 ++++++++++++------- .../ProfessionalRegistrationNumberHelper.cs | 8 ++++--- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/EditDelegateControllerTests.cs b/DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/EditDelegateControllerTests.cs index 5c0583b379..676a2524b9 100644 --- a/DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/EditDelegateControllerTests.cs +++ b/DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/EditDelegateControllerTests.cs @@ -175,9 +175,11 @@ public void Index_post_returns_view_with_model_error_with_invalid_prn() result.As().Model.Should().BeOfType(); AssertModelStateErrorIsExpected( result, - "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)" + - " 4–8 digits only " + "Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits " + - "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" + "Invalid professional registration number format. " + + "Valid formats include: 7 digits (e.g., 1234567), 1–2 letters followed by 6 digits (e.g., AB123456), " + + "4–8 digits, an optional 'P' plus 5–6 digits, 'C' or 'P' plus 6 digits, " + + "an optional letter plus 5–6 digits, 'L' plus 4–6 digits, " + + "or 2 digits followed by a hyphen and 4–5 alphanumeric characters (e.g., 12-AB123)." ); A.CallTo(() => userService.GetDelegateById(A._)).MustNotHaveHappened(); diff --git a/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs b/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs index 932c59a13e..5113ffe45c 100644 --- a/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs +++ b/DigitalLearningSolutions.Web.Tests/Helpers/ProfessionalRegistrationNumberHelperTests.cs @@ -110,23 +110,29 @@ public void ValidateProfessionalRegistrationNumber_sets_error_when_hasPrn_is_not [TestCase("1234", "Professional registration number must be between 5 and 20 characters")] [TestCase( "01234_", - "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)" + - " 4–8 digits only " + "Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits " + - "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" + "Invalid professional registration number format. " + + "Valid formats include: 7 digits (e.g., 1234567), 1–2 letters followed by 6 digits (e.g., AB123456), " + + "4–8 digits, an optional 'P' plus 5–6 digits, 'C' or 'P' plus 6 digits, " + + "an optional letter plus 5–6 digits, 'L' plus 4–6 digits, " + + "or 2 digits followed by a hyphen and 4–5 alphanumeric characters (e.g., 12-AB123)." )] [TestCase( "01234 ", - "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)" + - " 4–8 digits only " + "Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits " + - "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" + "Invalid professional registration number format. " + + "Valid formats include: 7 digits (e.g., 1234567), 1–2 letters followed by 6 digits (e.g., AB123456), " + + "4–8 digits, an optional 'P' plus 5–6 digits, 'C' or 'P' plus 6 digits, " + + "an optional letter plus 5–6 digits, 'L' plus 4–6 digits, " + + "or 2 digits followed by a hyphen and 4–5 alphanumeric characters (e.g., 12-AB123)." )] [TestCase( "01234$", - "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)" + - " 4–8 digits only " + "Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits " + - "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" + "Invalid professional registration number format. " + + "Valid formats include: 7 digits (e.g., 1234567), 1–2 letters followed by 6 digits (e.g., AB123456), " + + "4–8 digits, an optional 'P' plus 5–6 digits, 'C' or 'P' plus 6 digits, " + + "an optional letter plus 5–6 digits, 'L' plus 4–6 digits, " + + "or 2 digits followed by a hyphen and 4–5 alphanumeric characters (e.g., 12-AB123)." )] public void ValidateProfessionalRegistrationNumber_sets_error_when_prn_is_invalid( diff --git a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs index 6458330c49..92d3d4dec3 100644 --- a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs +++ b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs @@ -58,9 +58,11 @@ public static void ValidateProfessionalRegistrationNumber( { modelState.AddModelError( "ProfessionalRegistrationNumber", - "Invalid professional registration number format. Accepted formats are: 1–2 letters followed by 6 digits (e.g., AB123456)"+ - " 4–8 digits only "+"Optional ‘P’ followed by 5–6 digits ‘C’ or ‘P’ followed by 6 digits "+ - "Optional letter followed by 5–6 digits ‘L’ followed by 4–6 digits 2 digits, hyphen, then 4–5 alphanumeric characters" + "Invalid professional registration number format. " + + "Valid formats include: 7 digits (e.g., 1234567), 1–2 letters followed by 6 digits (e.g., AB123456), " + + "4–8 digits, an optional 'P' plus 5–6 digits, 'C' or 'P' plus 6 digits, " + + "an optional letter plus 5–6 digits, 'L' plus 4–6 digits, " + + "or 2 digits followed by a hyphen and 4–5 alphanumeric characters (e.g., 12-AB123)." ); } } From 3d516df7aa0c8aa22b2f1140d8d57490f98ad6a5 Mon Sep 17 00:00:00 2001 From: sherif-olaboye <123654949+sherif-olaboye@users.noreply.github.com> Date: Thu, 21 Aug 2025 14:31:27 +0100 Subject: [PATCH 31/60] TD-4624 removing unnecessary namespace --- .../Helpers/ProfessionalRegistrationNumberHelper.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs index 92d3d4dec3..130c8d52b6 100644 --- a/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs +++ b/DigitalLearningSolutions.Web/Helpers/ProfessionalRegistrationNumberHelper.cs @@ -1,10 +1,6 @@ namespace DigitalLearningSolutions.Web.Helpers { - using DocumentFormat.OpenXml.ExtendedProperties; - using DocumentFormat.OpenXml.Spreadsheet; using Microsoft.AspNetCore.Mvc.ModelBinding; - using Microsoft.CodeAnalysis; - using System.Diagnostics.Metrics; using System.Text.RegularExpressions; public class ProfessionalRegistrationNumberHelper From 53c87842927a1b031fdf3d0f5318f79d67d0789c Mon Sep 17 00:00:00 2001 From: Auldrin-Possa Date: Tue, 2 Sep 2025 15:29:37 +0100 Subject: [PATCH 32/60] TD-5552-Email format updated --- .../TD-5552-SendRetiringNotification.sql | Bin 15236 -> 14726 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5552-SendRetiringNotification.sql b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5552-SendRetiringNotification.sql index dac12e78400b072add6ae5b4eb560d731335f642..a2574a85c5f519ff092aff3bb619335fe85ba628 100644 GIT binary patch delta 422 zcmYjNyH3ME5L{D4fsRKJCqi09QE!PAMQW{WBp4fIxKAZK^9z{TJfsV=KAy^DvLMrkpK!wpiKz;+2 z6grG7#r-!cLvI3|b@t_Xb@N~s)rBI{wRWLi#Tsdi@$Zxfc}PQ<+NQLej?}G+d^gu* zR;`%IdjK8fx35`h!;k`*R%=&F)l4fUn9kbq1f3!LsvQ>m3`iI89&{qTYmT1?fh;|m zJVDN=sr}UN#qzSVU3k`4xoFvmQJl2j4S8})!iOE%cQ0h_mJ07ETKNwabN9{o0rLE0 AA^-pY delta 705 zcmb_aJxc>Y5Ph+TUtkfm(Po1=u23|_gNTHPB3P&(c9xgqVh-XdmrH`Aun~LNK0iT( zMX_zIikAW_E8{*WLTwoGz@*>*J}6?t5wdl1uBIoM%4r z8!7$h%(~mCBSC-|ihBbgTC{5LExJ5J1HF~aUMY0xZ}L-!aL%>KHNxpIzQSEGvcq3^ zJ}O)VtCJ@c+RPqch1QYv`1Y)bMYP)F2wQYWeT7TLwXum3R&k*poZ?}X$QdqdwCI+4 z5qZio6J|*)QlkP6jcJGEMm8U_m}mEM zVqBqz1Ng?|dvb%BrAfH>!!7Rp(=D3C!c%IbM&B0a^!s{6m%YZcJQ{bPlDH#p&-A@y P?6+h-)EV Date: Wed, 3 Sep 2025 15:49:07 +0100 Subject: [PATCH 33/60] TD-6130-The Download certificate button on learning portal is shown for all vocabularies except 'ProfileAssessment' --- .../CompetencySelfAssessmentCertificate.cshtml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/CompetencySelfAssessmentCertificate.cshtml b/DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/CompetencySelfAssessmentCertificate.cshtml index 67fde6c257..7a8371ca4c 100644 --- a/DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/CompetencySelfAssessmentCertificate.cshtml +++ b/DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/CompetencySelfAssessmentCertificate.cshtml @@ -76,20 +76,21 @@

Certificate

@Model.CompetencySelfAssessmentCertificates.SelfAssessment - @Model.CompetencySelfAssessmentCertificates.LearnerName

- @if (Model.Vocabulary == "Proficiencies") + + @if (Model.Vocabulary == "ProfileAssessment") { Download certificate } - @if (Model.Vocabulary == "ProfileAssessment") + else { From b2715530eb14197b7dfe7777f4abdffdaaf0d348 Mon Sep 17 00:00:00 2001 From: rshrirohit <126668828+rshrirohit@users.noreply.github.com> Date: Fri, 5 Sep 2025 10:11:17 +0100 Subject: [PATCH 34/60] Revert "TD-3237 Trimming of contact number on Edit centre manager details" --- .../Controllers/SuperAdmin/Centres/CentresController.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs b/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs index dd1a06b23e..8781d525bf 100644 --- a/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs +++ b/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs @@ -21,7 +21,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text.RegularExpressions; namespace DigitalLearningSolutions.Web.Controllers.SuperAdmin.Centres { @@ -331,8 +330,7 @@ public IActionResult ManageCentreManager(EditCentreManagerDetailsViewModel editC { editCentreManagerDetailsViewModel.FirstName = editCentreManagerDetailsViewModel.FirstName == null ? string.Empty : editCentreManagerDetailsViewModel.FirstName.Trim(); editCentreManagerDetailsViewModel.LastName = editCentreManagerDetailsViewModel.LastName == null ? string.Empty : editCentreManagerDetailsViewModel.LastName.Trim(); - editCentreManagerDetailsViewModel.Telephone = editCentreManagerDetailsViewModel.Telephone != null ? Regex.Replace(editCentreManagerDetailsViewModel.Telephone, @"\s+", "") - : string.Empty; ; + editCentreManagerDetailsViewModel.Telephone = editCentreManagerDetailsViewModel.Telephone?.Trim() ?? string.Empty; if (!ModelState.IsValid) { return View(editCentreManagerDetailsViewModel); From cf727ed54e08b65773aa36f2df453a92ad3bd34d Mon Sep 17 00:00:00 2001 From: Auldrin-Possa Date: Mon, 8 Sep 2025 14:40:38 +0100 Subject: [PATCH 35/60] TD-5548- competency/proficiency groups that have any competencies/proficiencies, were selected for old/new group comparison. --- .../Services/ImportCompetenciesFromFileService.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/DigitalLearningSolutions.Web/Services/ImportCompetenciesFromFileService.cs b/DigitalLearningSolutions.Web/Services/ImportCompetenciesFromFileService.cs index 5ca64febc2..0b4b100db4 100644 --- a/DigitalLearningSolutions.Web/Services/ImportCompetenciesFromFileService.cs +++ b/DigitalLearningSolutions.Web/Services/ImportCompetenciesFromFileService.cs @@ -37,11 +37,13 @@ public ImportCompetenciesResult PreProcessCompetenciesTable(IXLWorkbook workbook var newCompetencyIds = competencyRows.Select(row => row.ID ?? 0).ToList(); var existingIds = frameworkService.GetFrameworkCompetencyOrder(frameworkId, newCompetencyIds); var existingGroups = frameworkService - .GetFrameworkCompetencyGroups(frameworkId) + .GetFrameworkCompetencyGroups(frameworkId).Where(x => x.FrameworkCompetencies.Any()).ToList() .Select(row => row.Name) .Distinct() .ToList(); - var newGroups = competencyRows.Select(row => row.CompetencyGroup ?? "").Distinct().ToList(); + var newGroups = competencyRows.Select(row => row.CompetencyGroup) + .Where(g => !string.IsNullOrEmpty(g)) + .Distinct().ToList(); foreach (var competencyRow in competencyRows) { PreProcessCompetencyRow(competencyRow, newCompetencyIds, existingIds, existingGroups, newGroups); From 766149fc102a23b5875c0f31e33ab0339fc814ba Mon Sep 17 00:00:00 2001 From: Auldrin-Possa Date: Wed, 10 Sep 2025 08:31:12 +0100 Subject: [PATCH 36/60] TD-5552-Moved general TEL team details to config table. --- ...endRetiringSelfAssessmentNotificationSP.cs | 15 +++++++++++++++ .../TD-5552-SendRetiringNotification.sql | Bin 14726 -> 15546 bytes 2 files changed, 15 insertions(+) diff --git a/DigitalLearningSolutions.Data.Migrations/202508191440_CreateSendRetiringSelfAssessmentNotificationSP.cs b/DigitalLearningSolutions.Data.Migrations/202508191440_CreateSendRetiringSelfAssessmentNotificationSP.cs index d6f109b420..e657f3d384 100644 --- a/DigitalLearningSolutions.Data.Migrations/202508191440_CreateSendRetiringSelfAssessmentNotificationSP.cs +++ b/DigitalLearningSolutions.Data.Migrations/202508191440_CreateSendRetiringSelfAssessmentNotificationSP.cs @@ -6,10 +6,25 @@ public class CreateSendRetiringSelfAssessmentNotificationSP : Migration { public override void Up() { + string generalTELTeam = + @"[ + { ""FirstName"":"""", ""LastName"":"""", ""Email"":""Support@dls.nhs.uk"" }, + { ""FirstName"":""Anna"", ""LastName"":""Athanasopoulou"", ""Email"":""anna.athanasopoulou@nhs.net"" }, + { ""FirstName"":""Benjamin"", ""LastName"":""Witton"", ""Email"":""Benjamin.witton1@nhs.net"" } + ]"; + + Execute.Sql(@$"IF NOT EXISTS (SELECT ConfigID FROM Config WHERE ConfigName = 'GeneralTELTeam') + BEGIN + INSERT INTO Config VALUES ('GeneralTELTeam', '{generalTELTeam}', 0,GETDATE(), GETDATE()) + END" + ); + Execute.Sql(Properties.Resources.TD_5552_SendRetiringNotification); } public override void Down() { + Execute.Sql(@"DELETE FROM Config WHERE ConfigName = N'GeneralTELTeam'"); + Execute.Sql("DROP PROCEDURE [dbo].[SendRetiringSelfAssessmentNotification]"); } } diff --git a/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5552-SendRetiringNotification.sql b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5552-SendRetiringNotification.sql index a2574a85c5f519ff092aff3bb619335fe85ba628..fd2515846341758b94712fbb45d4e1efaef26676 100644 GIT binary patch delta 1062 zcmcIjO-lk%6g@^!_Cb_HNG--nX2kNNkXAuzT8bZJ+6NI~Vv*PgX;6!B*D7f7{znAv z+Vuxow2J;k|Df~U7+Ec%Aci~4eQ)kN=bn4sRsH_rZhO`)}SGSGo0W6 zWt^hUJd6##4UzRvh(}jn)4)6e>hW+rhb(LNSyez95yZG+K<;F*sWR5`JBO8a7Qv1@ zkEh0vVnm56Q47pctdzBLj3C3pHu27qOvUcNfUAxRa`T}^o)t1Jp~3v)FOOKCsP$^9 zGrI_nIYq@kSV$5xOQd}=3lpnAbc3}%Mhzwoaf~CLRK_{qv&7digI&Hgco|W}C(jy_ zHKxT+Ty{H$E!OfM9eePJhbf0$SDml}apRx877g}U z&CfG5+r4Ytmor(V4kqK2>s9(qIxo*$Dx`N{S~_LuRSmy#i}4$~gnkk#p{`tpO?F(3 wmfJVhBc2?i`ZD5FRo>19yRxQixz(Dr)w3>&AxGS!CTs(&>Rzyq=XZR`;>LqDsHbtBM3q;8c%wKP9`43#*AFr zFo6uQUx$#5B_%gl@b%hv#Gl7-61h)S!#+XP>Be{KcI3m$3zJ?CxQvc&7}OuxliDbj VE42Toso}MC&-{fqr7+( Date: Wed, 10 Sep 2025 14:13:07 +0100 Subject: [PATCH 37/60] TD-5552- Removed 'While' loop and unused variables --- .../TD-5552-SendRetiringNotification.sql | Bin 15546 -> 14320 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5552-SendRetiringNotification.sql b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-5552-SendRetiringNotification.sql index fd2515846341758b94712fbb45d4e1efaef26676..a5c54373752ac2dec566e4a08c65a277281a87da 100644 GIT binary patch delta 1331 zcmd5*O>YuW6uq>H4oG7mDH#auqkzm%G;OdTq^U*Pq%pN>CDx76YQfZCF}5sNnYeJ# z#BR=iFfMIKT)0x##*dweJL5u=Ci)XRGZd=O)I=AWx0rb|_ucbx&wF0~UVR!JbStse zaV~|oJ-T1XimXams&Y^6$dascUzJtdH*|+WzX~=!4?S@7dc=jV*_i$O771cIb)s=S zdenjS*n%f66H=3kOo~Nb-ne6MIv6)!^lU7I35KifMW4bQdJJH%}O0LNzV&9P4?0S=ZlT_DP zwIDNcLFObc1-=EMl{4{b*y}S}Snb{#9EmaaE|!M#Za*rKL0r!Ep_uU6 zoXHno^drGMc_?iSR4?!-o_ZunI2|K6B^aE*e>NYO(8a+SEt>K+%v%K226< zT58Ga9DT4gwbeWv@nUqssg=n6E*-2R?9zkHL?|Ys#&0#Iqr`qSS(6e%$pWY8^zfZZ zo4zYN8V$u2UHxggJW=M!DmyDqhq>Z@MQ$|~llsA4in20=52@*fI$3sLW86xK^KVm< z?R2Z#*}YOykUa7kzk5+;ImdZ2Ht^o(!)7`c*XUg9>wakp=f?0X?Zsp!5YlA7%B@@m u!_h$A>`JSJJx%oH?Al4)nO#?I{-2ckI(`2qj%I)7=$^O1x)U8YV&ezlw)dg{ delta 2061 zcmdT^-Aj{U6hFhS&2(5g=QLm6<;-`@O*f}r_`#MMN`6(Vgpe>@XiT?SQeFuWbeF{G zK81*&g3Ox;Lc59Rs{R8nx{9C-2@0Zq&$G>axQZZzczNFQyze>Bd4A{PcRq!m%|Es& zy-sqHN+&5wLCA5e)6_@(G(f%BhbW9Eg570ERa(u`Bz8fXf%P;jqNMT*rOMh(b94z$ zkY-`sPd%{ery&YJc4E1CO{s1f#Hp)Uv>KhjjpEjBd18?KG)kJZwDYE=me-a2d|&U$ z^TBGIAL*SAADxAL0!Kh19HLV=c^qE)q}0emE!4`-m73Mt$~7IoRLX0TheiN6Oy^}F zL4X~HyC8p5Obc#m!eftv&x9ACVHy!ZVVyz1@*Iuf%a1@*=(705|094lOoQ0XAaRp) zj$HB`hK$lYRy>>lVvD3Xu~R!0Q=wc2GNjeXhj@2pzeDEThwI`w=R4j;E^-uE4CDip zY50$#R`IX_s*_h7wPvA3j(6yW3r+mWQN*w7N(y4x?qsXe%pvU%zppSlVl@}F&W0xq zJukcJxJxbM9<_p>U`0%2ywRFppppaU>-nN;;rzx*UQ)k78u_lZ&m^L*rw&9KqOL?9 z_^Wj+XRkWW%Z5@89av|r_6={<+PKU%T5LdfI}u-)uAoc9wkqCgQn|$K;tg9Rf3ZE} z4Nq>J=$HX;pjVbo1NzLqYQX6qUUQC+{+3c*1K(1_+v0Us+Y?BDPCUK1uP5=3zaKPn zq&1h{*~&YGR@8J_GDKu4^Bz&(n3vc)#ai57^*cRqS$?VKMa5JQ*YcufaR~o{ae|%M zswL_mSxfD_;5G4*ruQeji<~AYl$;F_aDM{P2|7){Zva*UkaOsypy)L*C-SDyaWiZ+ znE9z<{C`0(*+$6%%cN6?*IY+e^BXVd{>+X&BANY|5=cM4EiKjg_<^UL@3~a|?AfQA z;^Jm^o=iI*YpqZDf1|k#wqcVAeAZi%g^6{vVVfD7ww2vv-@l1xIBkk;b2Wvh{~4=| I9BRA%6RMDa0ssI2 From 7c951adce76dd3aefebe0a3d2a3378dc8d24456f Mon Sep 17 00:00:00 2001 From: Auldrin-Possa Date: Wed, 10 Sep 2025 15:22:46 +0100 Subject: [PATCH 38/60] TD-6130-back link shown based on vocabulary on Learning portal and Supervise --- .../CompetencySelfAssessmentCertificate.cshtml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/CompetencySelfAssessmentCertificate.cshtml b/DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/CompetencySelfAssessmentCertificate.cshtml index 7a8371ca4c..5ef9742313 100644 --- a/DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/CompetencySelfAssessmentCertificate.cshtml +++ b/DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/CompetencySelfAssessmentCertificate.cshtml @@ -45,23 +45,23 @@