From 45ff17f2bbb41c06139462094a5d168141dabd36 Mon Sep 17 00:00:00 2001 From: Marc Becker Date: Wed, 5 Mar 2025 17:33:08 +0100 Subject: [PATCH] Update CDS Services to 3.8.0 and enable Draft Messages --- .cdsrc.json | 8 +- app/addresses/webapp/manifest.json | 6 +- app/admin/webapp/manifest.json | 6 +- app/browse/webapp/manifest.json | 6 +- app/genres/webapp/manifest.json | 4 +- app/notes/webapp/manifest.json | 4 +- app/orders/webapp/manifest.json | 10 +- app/package-lock.json | 77 +++-- app/reviews/webapp/manifest.json | 6 +- db/package-lock.json | 10 +- mtx/sidecar/package-lock.json | 151 ++++++---- package-lock.json | 266 +++++++++++------- pom.xml | 8 +- srv/notes-mashup.cds | 2 +- .../main/java/my/bookshop/MessageKeys.java | 1 - .../handlers/AdminServiceHandler.java | 15 +- srv/src/main/resources/messages.properties | 3 +- srv/src/main/resources/messages_de.properties | 3 +- 18 files changed, 352 insertions(+), 234 deletions(-) diff --git a/.cdsrc.json b/.cdsrc.json index 751f9d85..8b1c3585 100644 --- a/.cdsrc.json +++ b/.cdsrc.json @@ -5,8 +5,14 @@ "toggles": true }, "profile": "with-mtx-sidecar", + "odata": { + "containment": true + }, "cdsc": { - "newParser": true + "newParser": true, + "beta": { + "draftMessages": true + } }, "sql": { "native_hana_associations": false diff --git a/app/addresses/webapp/manifest.json b/app/addresses/webapp/manifest.json index 5266df52..8a535985 100644 --- a/app/addresses/webapp/manifest.json +++ b/app/addresses/webapp/manifest.json @@ -86,7 +86,7 @@ "name": "sap.fe.templates.ListReport", "options": { "settings" : { - "entitySet" : "Addresses", + "contextPath" : "/Addresses", "navigation" : { "Addresses" : { "detail" : { @@ -103,7 +103,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet" : "Addresses", + "contextPath" : "/Addresses", "navigation" : { "notes" : { "detail" : { @@ -120,7 +120,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet": "Notes" + "contextPath": "/Addresses/notes" } } } diff --git a/app/admin/webapp/manifest.json b/app/admin/webapp/manifest.json index 4225597f..29ac7e46 100644 --- a/app/admin/webapp/manifest.json +++ b/app/admin/webapp/manifest.json @@ -86,7 +86,7 @@ "name": "sap.fe.templates.ListReport", "options": { "settings" : { - "entitySet" : "Books", + "contextPath" : "/Books", "navigation" : { "Books" : { "detail" : { @@ -113,7 +113,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet" : "Books", + "contextPath" : "/Books", "navigation" : { "Authors" : { "detail" : { @@ -130,7 +130,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet" : "Authors" + "contextPath" : "/Authors" } } } diff --git a/app/browse/webapp/manifest.json b/app/browse/webapp/manifest.json index ec7a8840..1b9f2d3f 100644 --- a/app/browse/webapp/manifest.json +++ b/app/browse/webapp/manifest.json @@ -86,7 +86,7 @@ "name": "sap.fe.templates.ListReport", "options": { "settings" : { - "entitySet" : "Books", + "contextPath" : "/Books", "navigation" : { "Books" : { "detail" : { @@ -103,7 +103,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet" : "Books", + "contextPath" : "/Books", "navigation" : { "Authors" : { "detail" : { @@ -120,7 +120,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet" : "Authors" + "contextPath" : "/Authors" } } } diff --git a/app/genres/webapp/manifest.json b/app/genres/webapp/manifest.json index ab4a7d46..68d48208 100644 --- a/app/genres/webapp/manifest.json +++ b/app/genres/webapp/manifest.json @@ -82,7 +82,7 @@ "name": "sap.fe.templates.ListReport", "options": { "settings" : { - "entitySet" : "GenreHierarchy", + "contextPath" : "/GenreHierarchy", "navigation" : { "GenreHierarchy" : { "detail" : { @@ -107,7 +107,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet": "GenreHierarchy" + "contextPath": "/GenreHierarchy" } } } diff --git a/app/notes/webapp/manifest.json b/app/notes/webapp/manifest.json index f75a99b2..1a87691c 100644 --- a/app/notes/webapp/manifest.json +++ b/app/notes/webapp/manifest.json @@ -81,7 +81,7 @@ "name": "sap.fe.templates.ListReport", "options": { "settings" : { - "entitySet" : "Notes", + "contextPath" : "/Notes", "navigation" : { "Notes" : { "detail" : { @@ -98,7 +98,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet" : "Notes" + "contextPath" : "/Notes" } } } diff --git a/app/orders/webapp/manifest.json b/app/orders/webapp/manifest.json index 758e31f2..02cf3bcf 100644 --- a/app/orders/webapp/manifest.json +++ b/app/orders/webapp/manifest.json @@ -91,7 +91,7 @@ "name": "sap.fe.templates.ListReport", "options": { "settings" : { - "entitySet" : "Orders", + "contextPath" : "/Orders", "navigation" : { "Orders" : { "detail" : { @@ -108,7 +108,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet": "Orders", + "contextPath": "/Orders", "navigation" : { "Items": { "detail": { @@ -135,7 +135,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet": "OrderItems" + "contextPath": "/Orders/Items" } } }, @@ -145,7 +145,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet": "Books", + "contextPath": "/Books", "navigation": { "author": { "detail": { @@ -162,7 +162,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet": "Authors" + "contextPath": "/Authors" } } } diff --git a/app/package-lock.json b/app/package-lock.json index 2fe4a66c..f8cf3891 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -497,9 +497,9 @@ } }, "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -510,13 +510,13 @@ } }, "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -879,6 +879,21 @@ "node": ">= 0.4" } }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -1072,13 +1087,14 @@ } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" }, "engines": { @@ -1104,17 +1120,17 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", + "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "get-proto": "^1.0.0", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", @@ -1170,6 +1186,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -1598,9 +1629,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -1899,9 +1930,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" diff --git a/app/reviews/webapp/manifest.json b/app/reviews/webapp/manifest.json index 78dd8f8c..ccf35060 100644 --- a/app/reviews/webapp/manifest.json +++ b/app/reviews/webapp/manifest.json @@ -86,7 +86,7 @@ "name": "sap.fe.templates.ListReport", "options": { "settings" : { - "entitySet" : "Reviews", + "contextPath" : "/Reviews", "navigation" : { "Reviews" : { "detail" : { @@ -103,7 +103,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet" : "Reviews", + "contextPath" : "/Reviews", "navigation" : { "Books" : { "detail" : { @@ -120,7 +120,7 @@ "name": "sap.fe.templates.ObjectPage", "options": { "settings" : { - "entitySet" : "Books" + "contextPath" : "/Books" } } } diff --git a/db/package-lock.json b/db/package-lock.json index ad277cf7..cc04938d 100644 --- a/db/package-lock.json +++ b/db/package-lock.json @@ -38,12 +38,12 @@ } }, "node_modules/@sap/hdi-deploy": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@sap/hdi-deploy/-/hdi-deploy-5.3.2.tgz", - "integrity": "sha512-1QvlrMdeVXCIc2DSLjR5ZIKFz9GVcuC8JvXtifU7bYetajc6mgU5FRR9zseZgrHVdCveeRIURmoPplUl4Hszag==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sap/hdi-deploy/-/hdi-deploy-5.4.1.tgz", + "integrity": "sha512-tTdbxFJadgf0cLjTe+O/CgNUOY6ZYUu/eFyALuR2w6V9JRUKSPaZcFM2uMiWbCM5OYJGUGfNRJYRYC6sVIDQRg==", "license": "See LICENSE file", "dependencies": { - "@sap/hdi": "^4.6.0", + "@sap/hdi": "^4.7.0", "@sap/xsenv": "^5.2.0", "async": "^3.2.6", "dotenv": "^16.4.5", @@ -51,7 +51,7 @@ "micromatch": "^4.0.8" }, "engines": { - "node": "^18.0.0 || ^20.0.0" + "node": ">=18.x" }, "peerDependencies": { "@sap/hana-client": "^2 >= 2.6", diff --git a/mtx/sidecar/package-lock.json b/mtx/sidecar/package-lock.json index 23cce481..0e8e11c2 100644 --- a/mtx/sidecar/package-lock.json +++ b/mtx/sidecar/package-lock.json @@ -19,9 +19,9 @@ } }, "node_modules/@cap-js/db-service": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@cap-js/db-service/-/db-service-1.17.0.tgz", - "integrity": "sha512-n2hna2hh2eg588KmXUvDj2n/1UnlaUcIKSRuQCVDoYnGex8fFP58nqZCJzJnLsr0UYqm5+yO2AK5hwHlvJ2hzA==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@cap-js/db-service/-/db-service-1.18.0.tgz", + "integrity": "sha512-Gv0X+GZx85Op8GZ+xbkt49Nrrha68jPfV5+Uo023Xqsbv7HhoFPkI1t1IVI+isZRz04dx4MW573b0KKGEFDAFg==", "license": "SEE LICENSE", "dependencies": { "generic-pool": "^3.9.0" @@ -31,12 +31,12 @@ } }, "node_modules/@cap-js/hana": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@cap-js/hana/-/hana-1.6.0.tgz", - "integrity": "sha512-z9TrqwX72yT1WeTsSIaaXD2CTJgVTlklPbvMzKoCaCpnAknKcBSuNyakrmlSRIs8E0ci/YJ2b0mBajQmkOSURg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@cap-js/hana/-/hana-1.7.0.tgz", + "integrity": "sha512-QaFQAKT6beFIC61I+3BSq4aSmVydzTziEUy/eb+hWZqfUaqZjujgnI9OPrnLaDeE4dZkOGYj/GAGy39t5vaagA==", "license": "SEE LICENSE", "dependencies": { - "@cap-js/db-service": "^1.17.0", + "@cap-js/db-service": "^1.18.0", "hdb": "^0.19.5" }, "peerDependencies": { @@ -50,13 +50,13 @@ } }, "node_modules/@cap-js/sqlite": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@cap-js/sqlite/-/sqlite-1.8.0.tgz", - "integrity": "sha512-Qd/IrSksT+NWUopwtKnKMSs4pPnzfXJiILycK5CkZH3dKju9xpUvHBYxJF5uXBnN6UOhFURXXyvJ0BArk40nvQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@cap-js/sqlite/-/sqlite-1.9.0.tgz", + "integrity": "sha512-0Ka6a7W7v5qyL8IiEjKg1oJH1AvLh/bmshHYxovmruKfyDEuEx+Kz8IARKq8oHwmzPCZVV/xXIKnpg/KWesXcA==", "dev": true, "license": "SEE LICENSE", "dependencies": { - "@cap-js/db-service": "^1.17.0", + "@cap-js/db-service": "^1.18.0", "better-sqlite3": "^11.0.0" }, "peerDependencies": { @@ -64,9 +64,9 @@ } }, "node_modules/@sap/cds": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@sap/cds/-/cds-8.7.0.tgz", - "integrity": "sha512-QL5xQIkID3sICYNIlpCfXjvDGKfO6WpuGWVD9x3T6zFzdz409dSOzq2wp7HSWWKsy0HZEPRgsRatYjFx3LMNTA==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@sap/cds/-/cds-8.8.0.tgz", + "integrity": "sha512-7IYV44HUR3BygEXv+yEa430yfJErT/5Iez0LMvCS1A9lkpYjFhC79p28tnwZjP9ezwiWKOav/qKcF/+gliaCiA==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "@sap/cds-compiler": ">=5.1", @@ -96,9 +96,9 @@ } }, "node_modules/@sap/cds-compiler": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@sap/cds-compiler/-/cds-compiler-5.7.0.tgz", - "integrity": "sha512-nmKEfYICdFlGaQ7DQz8Jb2KrYDajCYTB8yllcQGwq7nyYE01MM0/1c7N7BRbSOnX5HStZ/MUG9+NQweb9dEOEA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@sap/cds-compiler/-/cds-compiler-5.8.0.tgz", + "integrity": "sha512-cBf9N5g35A69S3n8HWmFDE6MUfogUn26wntF3CC1iQLEocth9Lo/ralerY9KHEd5OQ1nDC3FwDs+AMAA2BT+uA==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "antlr4": "4.9.3" @@ -113,9 +113,9 @@ } }, "node_modules/@sap/cds-fiori": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@sap/cds-fiori/-/cds-fiori-1.3.0.tgz", - "integrity": "sha512-PEppgJyc3SO0df5zP2OZG41UKLdsowQLwcsLUSFPzn56MlbFdzaRhO1qXaMhPlQ+bIo19aLOZcAZa9ewkSwS0w==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@sap/cds-fiori/-/cds-fiori-1.4.0.tgz", + "integrity": "sha512-Ge0Lwr2W1jUGepA4uABVB2szA/PBpmZDQt2CZdU1Ihc8LlgcdCoiulEYkiJvX3mTcQJEWCTEEsCNpQUqniEtTw==", "license": "SEE LICENSE IN LICENSE", "peerDependencies": { "@sap/cds": ">=7.6", @@ -138,9 +138,9 @@ } }, "node_modules/@sap/cds-mtxs": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@sap/cds-mtxs/-/cds-mtxs-2.5.0.tgz", - "integrity": "sha512-d3R0cBaBdqLWRniZ/vwi/3TtKBCpCFJx5m/4Tg24erufs9e76aeLw7VnNJL24paNWdtiqMXuKFsTuPr4oEu2Vg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@sap/cds-mtxs/-/cds-mtxs-2.6.0.tgz", + "integrity": "sha512-RCTnwXsbY+a3uHN5Kd3u43xz+a+948yXkJjmsdgjz9MtGIZELrZpkjqd1ps67eniTgkrKkBDymRMn8eBIIjyyQ==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "@sap/hdi-deploy": ">=4", @@ -176,12 +176,12 @@ } }, "node_modules/@sap/hdi-deploy": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@sap/hdi-deploy/-/hdi-deploy-5.3.2.tgz", - "integrity": "sha512-1QvlrMdeVXCIc2DSLjR5ZIKFz9GVcuC8JvXtifU7bYetajc6mgU5FRR9zseZgrHVdCveeRIURmoPplUl4Hszag==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sap/hdi-deploy/-/hdi-deploy-5.4.1.tgz", + "integrity": "sha512-tTdbxFJadgf0cLjTe+O/CgNUOY6ZYUu/eFyALuR2w6V9JRUKSPaZcFM2uMiWbCM5OYJGUGfNRJYRYC6sVIDQRg==", "license": "See LICENSE file", "dependencies": { - "@sap/hdi": "^4.6.0", + "@sap/hdi": "^4.7.0", "@sap/xsenv": "^5.2.0", "async": "^3.2.6", "dotenv": "^16.4.5", @@ -189,7 +189,7 @@ "micromatch": "^4.0.8" }, "engines": { - "node": "^18.0.0 || ^20.0.0" + "node": ">=18.x" }, "peerDependencies": { "@sap/hana-client": "^2 >= 2.6", @@ -219,9 +219,9 @@ } }, "node_modules/@sap/xssec": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@sap/xssec/-/xssec-4.2.8.tgz", - "integrity": "sha512-hTwupdCFdp3ElAF/e4qj6Akgf3N6/C7bq3qggbTeHEdaPVEehYPyxuTsdxb1TVI1vUGlHjB7RUW6aa6n30fP6Q==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@sap/xssec/-/xssec-4.4.0.tgz", + "integrity": "sha512-tVPyF6z6lWN2cucT38kkTu6GTmFXhqd/xa0SrExZ+j8K1cNePEIDHvx/zfibubLeb198vyoreW4QOpR9+Vaj4A==", "license": "SAP DEVELOPER LICENSE AGREEMENT", "dependencies": { "debug": "^4.3.4", @@ -281,9 +281,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.1.tgz", + "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -445,9 +445,9 @@ } }, "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -458,13 +458,13 @@ } }, "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -705,6 +705,21 @@ "node": ">= 0.4" } }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -873,13 +888,14 @@ } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" }, "engines": { @@ -930,17 +946,17 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", + "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "get-proto": "^1.0.0", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", @@ -1018,6 +1034,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -1271,9 +1302,9 @@ "license": "MIT" }, "node_modules/node-abi": { - "version": "3.73.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.73.0.tgz", - "integrity": "sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==", + "version": "3.74.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", + "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", "dev": true, "license": "MIT", "dependencies": { @@ -1296,9 +1327,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -1510,9 +1541,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "license": "ISC", "bin": { diff --git a/package-lock.json b/package-lock.json index 33197a22..40069c17 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,9 +30,9 @@ } }, "node_modules/@cap-js/db-service": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@cap-js/db-service/-/db-service-1.17.0.tgz", - "integrity": "sha512-n2hna2hh2eg588KmXUvDj2n/1UnlaUcIKSRuQCVDoYnGex8fFP58nqZCJzJnLsr0UYqm5+yO2AK5hwHlvJ2hzA==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@cap-js/db-service/-/db-service-1.18.0.tgz", + "integrity": "sha512-Gv0X+GZx85Op8GZ+xbkt49Nrrha68jPfV5+Uo023Xqsbv7HhoFPkI1t1IVI+isZRz04dx4MW573b0KKGEFDAFg==", "license": "SEE LICENSE", "dependencies": { "generic-pool": "^3.9.0" @@ -42,12 +42,12 @@ } }, "node_modules/@cap-js/hana": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@cap-js/hana/-/hana-1.6.0.tgz", - "integrity": "sha512-z9TrqwX72yT1WeTsSIaaXD2CTJgVTlklPbvMzKoCaCpnAknKcBSuNyakrmlSRIs8E0ci/YJ2b0mBajQmkOSURg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@cap-js/hana/-/hana-1.7.0.tgz", + "integrity": "sha512-QaFQAKT6beFIC61I+3BSq4aSmVydzTziEUy/eb+hWZqfUaqZjujgnI9OPrnLaDeE4dZkOGYj/GAGy39t5vaagA==", "license": "SEE LICENSE", "dependencies": { - "@cap-js/db-service": "^1.17.0", + "@cap-js/db-service": "^1.18.0", "hdb": "^0.19.5" }, "peerDependencies": { @@ -61,13 +61,13 @@ } }, "node_modules/@cap-js/sqlite": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@cap-js/sqlite/-/sqlite-1.8.0.tgz", - "integrity": "sha512-Qd/IrSksT+NWUopwtKnKMSs4pPnzfXJiILycK5CkZH3dKju9xpUvHBYxJF5uXBnN6UOhFURXXyvJ0BArk40nvQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@cap-js/sqlite/-/sqlite-1.9.0.tgz", + "integrity": "sha512-0Ka6a7W7v5qyL8IiEjKg1oJH1AvLh/bmshHYxovmruKfyDEuEx+Kz8IARKq8oHwmzPCZVV/xXIKnpg/KWesXcA==", "dev": true, "license": "SEE LICENSE", "dependencies": { - "@cap-js/db-service": "^1.17.0", + "@cap-js/db-service": "^1.18.0", "better-sqlite3": "^11.0.0" }, "peerDependencies": { @@ -75,9 +75,9 @@ } }, "node_modules/@sap/cds": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@sap/cds/-/cds-8.7.0.tgz", - "integrity": "sha512-QL5xQIkID3sICYNIlpCfXjvDGKfO6WpuGWVD9x3T6zFzdz409dSOzq2wp7HSWWKsy0HZEPRgsRatYjFx3LMNTA==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@sap/cds/-/cds-8.8.0.tgz", + "integrity": "sha512-7IYV44HUR3BygEXv+yEa430yfJErT/5Iez0LMvCS1A9lkpYjFhC79p28tnwZjP9ezwiWKOav/qKcF/+gliaCiA==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "@sap/cds-compiler": ">=5.1", @@ -107,9 +107,9 @@ } }, "node_modules/@sap/cds-compiler": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@sap/cds-compiler/-/cds-compiler-5.7.0.tgz", - "integrity": "sha512-nmKEfYICdFlGaQ7DQz8Jb2KrYDajCYTB8yllcQGwq7nyYE01MM0/1c7N7BRbSOnX5HStZ/MUG9+NQweb9dEOEA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@sap/cds-compiler/-/cds-compiler-5.8.0.tgz", + "integrity": "sha512-cBf9N5g35A69S3n8HWmFDE6MUfogUn26wntF3CC1iQLEocth9Lo/ralerY9KHEd5OQ1nDC3FwDs+AMAA2BT+uA==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "antlr4": "4.9.3" @@ -124,9 +124,9 @@ } }, "node_modules/@sap/cds-dk": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@sap/cds-dk/-/cds-dk-8.7.0.tgz", - "integrity": "sha512-RVJsyEX/9IgvbcAKO0d29jzKHzD8NA08fIkbopcAyPMyarc3UG4wAVSFlcsBx+F1WiLd+LVZgs0MdjPtG305lA==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@sap/cds-dk/-/cds-dk-8.8.0.tgz", + "integrity": "sha512-61KqUNAbNaaXz7LHfhTBhIryaUDIj1iW9f/XHCbtc+AV8G2O5JcvBUEwf2ROYtvbXlKlZsIe4QewyUP6S78/8w==", "dev": true, "hasShrinkwrap": true, "license": "SEE LICENSE IN LICENSE", @@ -166,7 +166,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@cap-js/db-service": { - "version": "1.17.0", + "version": "1.17.2", "dev": true, "license": "SEE LICENSE", "optional": true, @@ -178,7 +178,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@cap-js/openapi": { - "version": "1.1.2", + "version": "1.2.0", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -238,11 +238,11 @@ } }, "node_modules/@sap/cds-dk/node_modules/@eslint/config-array": { - "version": "0.19.1", + "version": "0.19.2", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.5", + "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -251,7 +251,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@eslint/core": { - "version": "0.10.0", + "version": "0.12.0", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -262,7 +262,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@eslint/eslintrc": { - "version": "3.2.0", + "version": "3.3.0", "dev": true, "license": "MIT", "dependencies": { @@ -284,7 +284,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@eslint/js": { - "version": "9.19.0", + "version": "9.21.0", "dev": true, "license": "MIT", "engines": { @@ -292,7 +292,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@eslint/object-schema": { - "version": "2.1.5", + "version": "2.1.6", "dev": true, "license": "Apache-2.0", "engines": { @@ -300,11 +300,11 @@ } }, "node_modules/@sap/cds-dk/node_modules/@eslint/plugin-kit": { - "version": "0.2.5", + "version": "0.2.7", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.10.0", + "@eslint/core": "^0.12.0", "levn": "^0.4.1" }, "engines": { @@ -356,7 +356,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@humanwhocodes/retry": { - "version": "0.4.1", + "version": "0.4.2", "dev": true, "license": "Apache-2.0", "engines": { @@ -368,7 +368,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@sap/cds": { - "version": "8.7.0", + "version": "8.8.0", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -399,7 +399,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@sap/cds-compiler": { - "version": "5.7.0", + "version": "5.8.0", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -415,7 +415,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@sap/cds-fiori": { - "version": "1.3.0", + "version": "1.4.0", "dev": true, "license": "SEE LICENSE IN LICENSE", "peerDependencies": { @@ -438,7 +438,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/@sap/cds-mtxs": { - "version": "2.5.0", + "version": "2.6.0", "dev": true, "license": "SEE LICENSE IN LICENSE", "dependencies": { @@ -451,12 +451,12 @@ } }, "node_modules/@sap/cds-dk/node_modules/@sap/eslint-plugin-cds": { - "version": "3.1.2", + "version": "3.2.0", "dev": true, "license": "See LICENSE file", "dependencies": { "@sap/cds": ">=7", - "semver": "^7.3.4" + "semver": "^7.7.1" }, "engines": { "node": ">=18" @@ -489,11 +489,11 @@ } }, "node_modules/@sap/cds-dk/node_modules/@sap/hdi-deploy": { - "version": "5.3.2", + "version": "5.4.1", "dev": true, "license": "See LICENSE file", "dependencies": { - "@sap/hdi": "^4.6.0", + "@sap/hdi": "^4.7.0", "@sap/xsenv": "^5.2.0", "async": "^3.2.6", "dotenv": "^16.4.5", @@ -501,7 +501,7 @@ "micromatch": "^4.0.8" }, "engines": { - "node": "^18.0.0 || ^20.0.0" + "node": ">=18.x" }, "peerDependencies": { "@sap/hana-client": "^2 >= 2.6", @@ -636,7 +636,7 @@ "license": "MIT" }, "node_modules/@sap/cds-dk/node_modules/axios": { - "version": "1.7.9", + "version": "1.8.1", "dev": true, "license": "MIT", "dependencies": { @@ -802,7 +802,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/call-bind-apply-helpers": { - "version": "1.0.1", + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { @@ -1099,6 +1099,20 @@ "node": ">= 0.4" } }, + "node_modules/@sap/cds-dk/node_modules/es-set-tostringtag": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/@sap/cds-dk/node_modules/escape-html": { "version": "1.0.3", "dev": true, @@ -1116,20 +1130,20 @@ } }, "node_modules/@sap/cds-dk/node_modules/eslint": { - "version": "9.19.0", + "version": "9.21.0", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.19.0", - "@eslint/plugin-kit": "^0.2.5", + "@eslint/config-array": "^0.19.2", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.21.0", + "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", + "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -1437,7 +1451,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/flatted": { - "version": "3.3.2", + "version": "3.3.3", "dev": true, "license": "ISC" }, @@ -1461,12 +1475,13 @@ } }, "node_modules/@sap/cds-dk/node_modules/form-data": { - "version": "4.0.1", + "version": "4.0.2", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" }, "engines": { @@ -1512,16 +1527,16 @@ } }, "node_modules/@sap/cds-dk/node_modules/get-intrinsic": { - "version": "1.2.7", + "version": "1.3.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", + "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "get-proto": "^1.0.0", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", @@ -1624,6 +1639,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/@sap/cds-dk/node_modules/has-tostringtag": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/@sap/cds-dk/node_modules/hasown": { "version": "2.0.2", "dev": true, @@ -1701,7 +1730,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/import-fresh": { - "version": "3.3.0", + "version": "3.3.1", "dev": true, "license": "MIT", "dependencies": { @@ -1993,7 +2022,7 @@ "license": "MIT" }, "node_modules/@sap/cds-dk/node_modules/node-abi": { - "version": "3.73.0", + "version": "3.74.0", "dev": true, "license": "MIT", "optional": true, @@ -2024,7 +2053,7 @@ } }, "node_modules/@sap/cds-dk/node_modules/object-inspect": { - "version": "1.13.3", + "version": "1.13.4", "dev": true, "license": "MIT", "engines": { @@ -2338,7 +2367,7 @@ "license": "ISC" }, "node_modules/@sap/cds-dk/node_modules/semver": { - "version": "7.6.3", + "version": "7.7.1", "dev": true, "license": "ISC", "bin": { @@ -2769,7 +2798,7 @@ "optional": true }, "node_modules/@sap/cds-dk/node_modules/ws": { - "version": "8.18.0", + "version": "8.18.1", "dev": true, "license": "MIT", "engines": { @@ -2830,9 +2859,9 @@ } }, "node_modules/@sap/cds-fiori": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@sap/cds-fiori/-/cds-fiori-1.3.0.tgz", - "integrity": "sha512-PEppgJyc3SO0df5zP2OZG41UKLdsowQLwcsLUSFPzn56MlbFdzaRhO1qXaMhPlQ+bIo19aLOZcAZa9ewkSwS0w==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@sap/cds-fiori/-/cds-fiori-1.4.0.tgz", + "integrity": "sha512-Ge0Lwr2W1jUGepA4uABVB2szA/PBpmZDQt2CZdU1Ihc8LlgcdCoiulEYkiJvX3mTcQJEWCTEEsCNpQUqniEtTw==", "license": "SEE LICENSE IN LICENSE", "peerDependencies": { "@sap/cds": ">=7.6", @@ -2855,9 +2884,9 @@ } }, "node_modules/@sap/cds-mtxs": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@sap/cds-mtxs/-/cds-mtxs-2.5.0.tgz", - "integrity": "sha512-d3R0cBaBdqLWRniZ/vwi/3TtKBCpCFJx5m/4Tg24erufs9e76aeLw7VnNJL24paNWdtiqMXuKFsTuPr4oEu2Vg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@sap/cds-mtxs/-/cds-mtxs-2.6.0.tgz", + "integrity": "sha512-RCTnwXsbY+a3uHN5Kd3u43xz+a+948yXkJjmsdgjz9MtGIZELrZpkjqd1ps67eniTgkrKkBDymRMn8eBIIjyyQ==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "@sap/hdi-deploy": ">=4", @@ -2893,12 +2922,12 @@ } }, "node_modules/@sap/hdi-deploy": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@sap/hdi-deploy/-/hdi-deploy-5.3.2.tgz", - "integrity": "sha512-1QvlrMdeVXCIc2DSLjR5ZIKFz9GVcuC8JvXtifU7bYetajc6mgU5FRR9zseZgrHVdCveeRIURmoPplUl4Hszag==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sap/hdi-deploy/-/hdi-deploy-5.4.1.tgz", + "integrity": "sha512-tTdbxFJadgf0cLjTe+O/CgNUOY6ZYUu/eFyALuR2w6V9JRUKSPaZcFM2uMiWbCM5OYJGUGfNRJYRYC6sVIDQRg==", "license": "See LICENSE file", "dependencies": { - "@sap/hdi": "^4.6.0", + "@sap/hdi": "^4.7.0", "@sap/xsenv": "^5.2.0", "async": "^3.2.6", "dotenv": "^16.4.5", @@ -2906,7 +2935,7 @@ "micromatch": "^4.0.8" }, "engines": { - "node": "^18.0.0 || ^20.0.0" + "node": ">=18.x" }, "peerDependencies": { "@sap/hana-client": "^2 >= 2.6", @@ -2936,9 +2965,9 @@ } }, "node_modules/@sap/xssec": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/@sap/xssec/-/xssec-4.2.8.tgz", - "integrity": "sha512-hTwupdCFdp3ElAF/e4qj6Akgf3N6/C7bq3qggbTeHEdaPVEehYPyxuTsdxb1TVI1vUGlHjB7RUW6aa6n30fP6Q==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@sap/xssec/-/xssec-4.4.0.tgz", + "integrity": "sha512-tVPyF6z6lWN2cucT38kkTu6GTmFXhqd/xa0SrExZ+j8K1cNePEIDHvx/zfibubLeb198vyoreW4QOpR9+Vaj4A==", "license": "SAP DEVELOPER LICENSE AGREEMENT", "dependencies": { "debug": "^4.3.4", @@ -2998,9 +3027,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.1.tgz", + "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -3162,9 +3191,9 @@ } }, "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -3175,13 +3204,13 @@ } }, "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -3422,6 +3451,21 @@ "node": ">= 0.4" } }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -3590,13 +3634,14 @@ } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" }, "engines": { @@ -3647,17 +3692,17 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", + "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "get-proto": "^1.0.0", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", @@ -3735,6 +3780,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -3988,9 +4048,9 @@ "license": "MIT" }, "node_modules/node-abi": { - "version": "3.73.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.73.0.tgz", - "integrity": "sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==", + "version": "3.74.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", + "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", "dev": true, "license": "MIT", "dependencies": { @@ -4013,9 +4073,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -4227,9 +4287,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "license": "ISC", "bin": { diff --git a/pom.xml b/pom.xml index 1d04fed4..d0cc5755 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0 + 3.4.3 @@ -23,9 +23,9 @@ 21 - 3.7.1 - 5.15.0 - 3.5.7 + 3.8.0 + 5.17.0 + 3.5.8 3.8.4 1.0.7 diff --git a/srv/notes-mashup.cds b/srv/notes-mashup.cds index 6dbea08b..e766f0ee 100644 --- a/srv/notes-mashup.cds +++ b/srv/notes-mashup.cds @@ -14,7 +14,7 @@ entity my.bookshop.NoteableAddresses as select from API_BUSINESS_PARTNER.A_Busin @readonly PostalCode as postalCode, @readonly StreetName as street, @readonly HouseNumber as houseNumber, - notes + notes @(odata.contained: false) }; /* diff --git a/srv/src/main/java/my/bookshop/MessageKeys.java b/srv/src/main/java/my/bookshop/MessageKeys.java index 9f217eb9..70e7de3d 100644 --- a/srv/src/main/java/my/bookshop/MessageKeys.java +++ b/srv/src/main/java/my/bookshop/MessageKeys.java @@ -2,7 +2,6 @@ public class MessageKeys { - public static final String QUANTITY_REQUIRE_MINIMUM = "quantity.require.minimum"; public static final String BOOK_REQUIRE_STOCK = "book.require.stock"; public static final String BOOK_ADDED_ORDER = "book.added.order"; public static final String BOOK_MISSING = "book.missing"; diff --git a/srv/src/main/java/my/bookshop/handlers/AdminServiceHandler.java b/srv/src/main/java/my/bookshop/handlers/AdminServiceHandler.java index 06ec29c6..ddf2b7fa 100644 --- a/srv/src/main/java/my/bookshop/handlers/AdminServiceHandler.java +++ b/srv/src/main/java/my/bookshop/handlers/AdminServiceHandler.java @@ -111,7 +111,7 @@ public void beforeCreateOrder(Stream orders, EventContext context) { if (book.getStock() < diffQuantity) { // Tip: you can have localized messages and use parameters in your messages messages.error(MessageKeys.BOOK_REQUIRE_STOCK, book.getStock()) - .target("in", ORDERS, o -> o.Items(i -> i.ID().eq(orderItem.getId()).and(i.IsActiveEntity().eq(orderItem.getIsActiveEntity()))).quantity()); + .target(ORDERS, o -> o.Items(i -> i.ID().eq(orderItem.getId()).and(i.IsActiveEntity().eq(orderItem.getIsActiveEntity()))).quantity()); return; // no need to update follow-up values with invalid quantity / stock } @@ -143,7 +143,7 @@ public void patchOrderItems(DraftPatchEventContext context, OrderItems orderItem Integer quantity = orderItem.getQuantity(); String bookId = orderItem.getBookId(); String orderItemId = orderItem.getId(); - BigDecimal amount = calculateAmountInDraft(orderItemId, quantity, bookId, true); + BigDecimal amount = calculateAmountInDraft(orderItemId, quantity, bookId); if (amount != null) { orderItem.setAmount(amount); } @@ -158,11 +158,11 @@ public void patchOrderItems(DraftPatchEventContext context, OrderItems orderItem public void cancelOrderItems(DraftCancelEventContext context) { String orderItemId = (String) analyzer.analyze(context.getCqn()).targetKeys().get(OrderItems.ID); if(orderItemId != null) { - calculateAmountInDraft(orderItemId, 0, null, false); + calculateAmountInDraft(orderItemId, 0, null); } } - private BigDecimal calculateAmountInDraft(String orderItemId, Integer newQuantity, String newBookId, boolean includeWarnings) { + private BigDecimal calculateAmountInDraft(String orderItemId, Integer newQuantity, String newBookId) { Integer quantity = newQuantity; String bookId = newBookId; if (quantity == null && bookId == null) { @@ -192,13 +192,6 @@ private BigDecimal calculateAmountInDraft(String orderItemId, Integer newQuantit return null; // not enough data available } - // only warn about invalid values as we are in draft mode - if(includeWarnings && quantity <= 0) { - // Tip: add additional messages with localized messages from property files - // these messages are transported in sap-messages and do not abort the request - messages.warn(MessageKeys.QUANTITY_REQUIRE_MINIMUM).target(ORDER_ITEMS, i -> i.quantity()); - } - // get the price of the updated book ID if(bookPrice == null) { result = db.run(Select.from(BOOKS).byId(bookId).columns(b -> b.price())); diff --git a/srv/src/main/resources/messages.properties b/srv/src/main/resources/messages.properties index b0e769b8..a65fa2b0 100644 --- a/srv/src/main/resources/messages.properties +++ b/srv/src/main/resources/messages.properties @@ -1,4 +1,3 @@ -quantity.require.minimum = The specified quantity is smaller than 1 book.require.stock = Not enough books on stock (only {0} left) book.added.order = Book successfully added to order book.missing = Book does not exist @@ -10,4 +9,4 @@ review.added = Review added order.exceeds.stock = {0} exceeds stock for book review.add.forbidden=User not allowed to add more than one review for a given book book.import.failed = Import of books failed -book.import.invalid.csv = Invalid CSV structure found - Please check its content \ No newline at end of file +book.import.invalid.csv = Invalid CSV structure found - Please check its content diff --git a/srv/src/main/resources/messages_de.properties b/srv/src/main/resources/messages_de.properties index f498bbe0..d6534814 100644 --- a/srv/src/main/resources/messages_de.properties +++ b/srv/src/main/resources/messages_de.properties @@ -1,4 +1,3 @@ -quantity.require.minimum = Die eingetragene Anzahl ist kleiner als 1 book.require.stock = Nicht genügend Bücher auf Vorrat (nur {0} übrig) book.added.order = Das Buch wurde der Bestellung erfolgreich hinzugefügt book.missing = Das Buch existiert nicht @@ -10,4 +9,4 @@ review.added = Bewertung hinzugefügt order.exceeds.stock = {0} ist mehr als für das Buch auf Vorrat übrig ist review.add.forbidden = Es ist nicht mehr als eine Bewertung pro Buch erlaubt book.import.failed = Bücher Import fehlgeschlagen -book.import.invalid.csv = Die CSV Datei enthält eine ungültige Struktur - Bitte überprüfen Sie den Inhalt \ No newline at end of file +book.import.invalid.csv = Die CSV Datei enthält eine ungültige Struktur - Bitte überprüfen Sie den Inhalt