diff --git a/common/cds-plugin.js b/common/cds-plugin.js new file mode 100644 index 000000000..f69b9be3f --- /dev/null +++ b/common/cds-plugin.js @@ -0,0 +1 @@ +// dummy to auto-load the plugin \ No newline at end of file diff --git a/common/package.json b/common/package.json index 35e537aa7..894a98246 100644 --- a/common/package.json +++ b/common/package.json @@ -4,5 +4,12 @@ "version": "1.0.0", "dependencies": { "@sap/cds": "*" + }, + "cds": { + "requires": { + "@capire/common/data": { + "model": "@capire/common" + } + } } } diff --git a/media/srv/media-service.cds b/media/srv/media-service.cds index 094418977..811dd741e 100644 --- a/media/srv/media-service.cds +++ b/media/srv/media-service.cds @@ -1,6 +1,7 @@ using { sap.capire.media as db } from '../db/data-model'; namespace sap.capire.media; +@path: '/media-server' service MediaServer { entity Media as projection on db.Media ; } diff --git a/media/srv/media-service.js b/media/srv/media-service.js index b656f03ca..ed9d480c5 100644 --- a/media/srv/media-service.js +++ b/media/srv/media-service.js @@ -10,7 +10,7 @@ module.exports = srv => { }) srv.on('UPDATE', 'Media', (req, next) => { - const url = req._.req.path + const url = req.path if (url.includes('content')) { const id = req.data.id const obj = mediaDB.get(id) @@ -32,7 +32,7 @@ module.exports = srv => { }) srv.on('READ', 'Media', (req, next) => { - const url = req._.req.path + const url = req.path if (url.includes('content')) { const id = req.data.id const mediaObj = mediaDB.get(id) diff --git a/package-lock.json b/package-lock.json index 709422b2e..c4cf05812 100644 --- a/package-lock.json +++ b/package-lock.json @@ -108,9 +108,10 @@ } }, "node_modules/@cap-js-community/odata-v2-adapter": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/@cap-js-community/odata-v2-adapter/-/odata-v2-adapter-1.13.7.tgz", - "integrity": "sha512-rmW1a1EycRJsEpR5lRFo/U37EeHcB7R3z7gSo7DseCzPjbA7D5lsqFaAfGG9IseYdTVAd+X1HH1MMT4fz4NVow==", + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/@cap-js-community/odata-v2-adapter/-/odata-v2-adapter-1.13.8.tgz", + "integrity": "sha512-IYkUUJLMS8sNL+6H8NOT17pMKweItjEUqV9EctuHw8+pWsFLcK3GehztZrtPS9DfEBOD9tC/aPNU5+b5unmZrQ==", + "license": "Apache-2.0", "dependencies": { "body-parser": "^1.20.3", "body-parser-xml": "^2.0.5", @@ -124,11 +125,12 @@ } }, "node_modules/@cap-js/cds-types": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cap-js/cds-types/-/cds-types-0.7.0.tgz", - "integrity": "sha512-zprkz3csN7z7v+0V78UlCfg2psm7Q3DJwvBjQB5BxVhlBcmuzoXn5EKKvzIXjflgWP1hUsDUhjVU5Hg9Quvq0g==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cap-js/cds-types/-/cds-types-0.8.0.tgz", + "integrity": "sha512-iy+Rc4C6tnFuBwTIREcrFBVp0vKVN+iB5WoZFcBX7b5y7rUvK9Pz/5YHplacyQpwzxUc8Iv+CXG6LeWH/b7Qqw==", "dev": true, "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@types/express": "^4.17.21" }, @@ -137,9 +139,9 @@ } }, "node_modules/@cap-js/db-service": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@cap-js/db-service/-/db-service-1.12.1.tgz", - "integrity": "sha512-0sIyXK/osLIywIVdGj8CSVjSqGh1tjqImU9NPeAIfUxAtx7lBbuhwZdNpolxw6YfmCyWeIogJEzh0Nb3LWF8tQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@cap-js/db-service/-/db-service-1.16.0.tgz", + "integrity": "sha512-+64G3UZJypXtqWjdm5rDAIhrXkg3gnCOcOguolXmdThPpq0HKF8pVSo/lRSQRWvttYoCLOfEXgLdY8I9KueqmA==", "dev": true, "license": "SEE LICENSE", "dependencies": { @@ -150,12 +152,13 @@ } }, "node_modules/@cap-js/sqlite": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@cap-js/sqlite/-/sqlite-1.7.5.tgz", - "integrity": "sha512-X8M83U5sL3eXjhxooGShR/jx4IhBuZ+MlZx28dgR+psu4uf/kJBf4Eb0Woihntl684xTaIniXwIGSw/OlHKY+w==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/@cap-js/sqlite/-/sqlite-1.7.7.tgz", + "integrity": "sha512-SOmFJMr6pjWOniFRkJsrI0BpQEQT5Q8o+IVZ/LXFj6+bAe0NQQztzxhMQx62V/Px3u58JJM3xkPMU+QC5PcJHw==", "dev": true, + "license": "SEE LICENSE", "dependencies": { - "@cap-js/db-service": "^1.9.0", + "@cap-js/db-service": "^1.14.1", "better-sqlite3": "^11.0.0" }, "peerDependencies": { @@ -241,9 +244,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", - "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -256,18 +259,19 @@ } }, "node_modules/@eslint/core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", - "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -289,10 +293,11 @@ } }, "node_modules/@eslint/js": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", - "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -308,10 +313,11 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", - "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "levn": "^0.4.1" }, @@ -369,10 +375,11 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.0.tgz", - "integrity": "sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -382,9 +389,10 @@ } }, "node_modules/@sap/cds": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@sap/cds/-/cds-8.4.0.tgz", - "integrity": "sha512-nJzDmoyZVcnACZ2gHL03LRNZCDMV6fEW4t0PFg6cdvRAIiKl0s9/0zKp8kVDJpm6a+k5yvDx8nW2O10KqpMIVQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@sap/cds/-/cds-8.5.0.tgz", + "integrity": "sha512-mRiLBPcY5vC1xi21pPqzMtp1HY9FOOFajkiuSArqnwtiyp2fxqWVombuVE9lTB2UyBl9bL8XXwrpjzDftIbnBg==", + "license": "SEE LICENSE IN LICENSE", "dependencies": { "@sap/cds-compiler": ">=5.1", "@sap/cds-fiori": "^1", @@ -595,6 +603,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -685,9 +694,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", + "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", "dev": true, "license": "MIT", "dependencies": { @@ -1095,9 +1104,9 @@ "license": "MIT" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -1294,26 +1303,27 @@ } }, "node_modules/eslint": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", - "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.18.0", - "@eslint/core": "^0.7.0", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.14.0", - "@eslint/plugin-kit": "^0.2.0", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.0", + "@humanwhocodes/retry": "^0.4.1", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.5", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.2.0", @@ -1332,8 +1342,7 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" @@ -1374,6 +1383,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -1386,6 +1396,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", @@ -2931,13 +2942,6 @@ "node": ">=6" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",