diff --git a/player/service/package-lock.json b/player/service/package-lock.json index 9a34395..7c0c368 100644 --- a/player/service/package-lock.json +++ b/player/service/package-lock.json @@ -28,7 +28,7 @@ "joi": "^17.12.1", "knex": "^3.1.0", "knex-stringcase": "^1.4.5", - "libxmljs": "^0.19.8", + "libxmljs": "^1.0.11", "make-dir": "^4.0.0", "mysql": "^2.18.1", "node-stream-zip": "^1.13.6", @@ -1732,14 +1732,15 @@ } }, "node_modules/libxmljs": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/libxmljs/-/libxmljs-0.19.10.tgz", - "integrity": "sha512-RY5/MD8Po8sGVocbODbYcdrbP6pJyA171LjFyd7Bp9wwxhmA8C5bm/VmXfpdED07fdW0FeC3lopxhG7UbwGx+g==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/libxmljs/-/libxmljs-1.0.11.tgz", + "integrity": "sha512-ChqXkhZuvhbjariwPakKs/h+dF5Pe7j+QJ/PmTidzx7mDiFa5chhy7806PQiO+VnBJZ5mVLVq4Dk+W7fZP6luw==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.9", "bindings": "~1.3.0", - "nan": "~2.14.0" + "nan": "^2.17.0" }, "engines": { "node": ">=0.8.0" @@ -2157,9 +2158,10 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.24.0.tgz", + "integrity": "sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg==", + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", @@ -2792,9 +2794,10 @@ } }, "node_modules/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", + "version": "13.15.23", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.23.tgz", + "integrity": "sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -3633,8 +3636,7 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "^1.9.0" @@ -4371,13 +4373,13 @@ } }, "libxmljs": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/libxmljs/-/libxmljs-0.19.10.tgz", - "integrity": "sha512-RY5/MD8Po8sGVocbODbYcdrbP6pJyA171LjFyd7Bp9wwxhmA8C5bm/VmXfpdED07fdW0FeC3lopxhG7UbwGx+g==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/libxmljs/-/libxmljs-1.0.11.tgz", + "integrity": "sha512-ChqXkhZuvhbjariwPakKs/h+dF5Pe7j+QJ/PmTidzx7mDiFa5chhy7806PQiO+VnBJZ5mVLVq4Dk+W7fZP6luw==", "requires": { "@mapbox/node-pre-gyp": "^1.0.9", "bindings": "~1.3.0", - "nan": "~2.14.0" + "nan": "^2.17.0" } }, "locate-path": { @@ -4672,9 +4674,9 @@ } }, "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.24.0.tgz", + "integrity": "sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg==" }, "neo-async": { "version": "2.6.2", @@ -5107,9 +5109,9 @@ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" }, "validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + "version": "13.15.23", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.23.tgz", + "integrity": "sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw==" }, "wait-port": { "version": "0.2.14", @@ -5315,7 +5317,7 @@ "commander": "^2.20.3", "lodash.get": "^4.4.2", "lodash.isequal": "^4.5.0", - "validator": "^13.7.0" + "validator": "^13.9.0" }, "dependencies": { "commander": { diff --git a/player/service/package.json b/player/service/package.json index 1572f33..86cd5af 100644 --- a/player/service/package.json +++ b/player/service/package.json @@ -41,7 +41,7 @@ "joi": "^17.12.1", "knex": "^3.1.0", "knex-stringcase": "^1.4.5", - "libxmljs": "^0.19.8", + "libxmljs": "^1.0.11", "make-dir": "^4.0.0", "mysql": "^2.18.1", "node-stream-zip": "^1.13.6", @@ -55,5 +55,10 @@ "chai": "^4", "dotenv": "^16.4.5", "mocha": "^11.7.5" + }, + "overrides": { + "z-schema": { + "validator": "^13.9.0" + } } } diff --git a/player/service/plugins/routes/v1/courses.js b/player/service/plugins/routes/v1/courses.js index 071e579..6fb342d 100644 --- a/player/service/plugins/routes/v1/courses.js +++ b/player/service/plugins/routes/v1/courses.js @@ -215,7 +215,10 @@ const validateAndReduceStructure = (document, lmsId) => { blocks: {} }; - result.course.id = course.attr("id").value(); + // result.course.id = course.attr("id").value(); + const attr = course.attr("id"); + result.course.id = attr && attr.value; // .value is now a property + validateIRI(result.course.id);