diff --git a/package-lock.json b/package-lock.json
index f9a43eb6..4fab6251 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,16 +1,16 @@
{
"name": "@cap-js-community/event-queue",
- "version": "1.11.0-beta.5",
+ "version": "1.11.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@cap-js-community/event-queue",
- "version": "1.11.0-beta.5",
+ "version": "1.11.0",
"license": "Apache-2.0",
"dependencies": {
- "@sap/xssec": "^4.6.0",
- "cron-parser": "^5.3.1",
+ "@sap/xssec": "^4.10.0",
+ "cron-parser": "^5.4.0",
"redis": "^4.7.0",
"verror": "^1.10.1",
"yaml": "^2.7.1"
@@ -18,17 +18,17 @@
"devDependencies": {
"@actions/core": "^1.11.1",
"@cap-js/cds-test": "^0.4.0",
- "@cap-js/hana": "^2.2.0",
- "@cap-js/sqlite": "^2.0.1",
+ "@cap-js/hana": "^2.3.3",
+ "@cap-js/sqlite": "^2.0.3",
"@opentelemetry/api": "^1.9.0",
- "@sap/cds": "^9.3.1",
- "@sap/cds-dk": "^9.3.1",
+ "@sap/cds": "^9.4.1",
+ "@sap/cds-dk": "^9.4.1",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-jest": "^28.6.0",
"eslint-plugin-node": "^11.1.0",
"express": "^4.21.2",
- "hdb": "^2.25.1",
+ "hdb": "^2.26.1",
"jest": "^29.7.0",
"prettier": "^2.8.8",
"sqlite3": "^5.1.7"
@@ -616,9 +616,9 @@
}
},
"node_modules/@cap-js/db-service": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/@cap-js/db-service/-/db-service-2.4.0.tgz",
- "integrity": "sha512-tWZUkgAPgZQIVu3xownD9cA9joXPI84KDstx3ZezOxXJuRsapgM2QEs0TXwQK5XLG43FUAsGO7wVJPoZ29ZH2Q==",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@cap-js/db-service/-/db-service-2.5.1.tgz",
+ "integrity": "sha512-dpz9lvOepcXOgE8uTs9abCotLcCt1odpwlrUT4AW2pnSrMB0EVMRbHKVIlufmrm8Kh/Y5c2d6ODald8eahsEDw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -629,13 +629,13 @@
}
},
"node_modules/@cap-js/hana": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@cap-js/hana/-/hana-2.2.0.tgz",
- "integrity": "sha512-UKAnj/KMyZZpYlbqna02E2KXJfz8pKsKLmhjDbExsGk/1Fh34VojxzD0wAYqV/CrTkx4Su25Ru3VarEurMP3kg==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@cap-js/hana/-/hana-2.3.3.tgz",
+ "integrity": "sha512-hGcN8xZYWt6opB8wl7mjsANR1v70/zuBK2XWxbAJj3mhuQAm0svT2PdSfru76X9NOq/nWIHCSFFHl+DDKAbZnw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@cap-js/db-service": "^2.1.1",
+ "@cap-js/db-service": "^2.5.1",
"hdb": "^0.19.5"
},
"peerDependencies": {
@@ -662,9 +662,9 @@
}
},
"node_modules/@cap-js/sqlite": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@cap-js/sqlite/-/sqlite-2.0.2.tgz",
- "integrity": "sha512-oNg2f56sfELshyp0eSmYYwG1lt4Zmc135sLIzS8iykHdRVxxJpTrPj0jx0Y4Hc6sfC9u25LRXVu/ZKqjm9Yu+Q==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@cap-js/sqlite/-/sqlite-2.0.3.tgz",
+ "integrity": "sha512-Zm2JLpPuddFkeqM47TX7V7IC6x3WOfn5lTRbaiVOMvRQoshCNXTkjv083ssfiwF/jF/46/PSVox+fTElozg6XA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -1395,13 +1395,13 @@
}
},
"node_modules/@sap/cds": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/@sap/cds/-/cds-9.3.1.tgz",
- "integrity": "sha512-xA9EN29X8HKaz83Aod1e3Bs6LRvqcCVoaTvCtyOup5rMYDQumcoZ7UOKH6NIUTeO0zOtafUiMHucMG+dBnq5XQ==",
+ "version": "9.4.3",
+ "resolved": "https://registry.npmjs.org/@sap/cds/-/cds-9.4.3.tgz",
+ "integrity": "sha512-X0EuuGjM9I8DAl3j2E7gYpDae804/votP3y0lbEsk8RbyE6dWFX3k8Bx0q5UyE2Lmw2ID/44TA+iCTQBhFjfFg==",
"dev": true,
"license": "SEE LICENSE IN LICENSE",
"dependencies": {
- "@sap/cds-compiler": "^6.1",
+ "@sap/cds-compiler": "^6.3",
"@sap/cds-fiori": "^2",
"js-yaml": "^4.1.0"
},
@@ -1427,9 +1427,9 @@
}
},
"node_modules/@sap/cds-compiler": {
- "version": "6.3.4",
- "resolved": "https://registry.npmjs.org/@sap/cds-compiler/-/cds-compiler-6.3.4.tgz",
- "integrity": "sha512-3Ip+PgK0yiZXftAC1Pc5euiz4L56t0vX/a4k8xJwTxD0Ccr6G3AvmEFLju5f96D18nr4lH1djC05BeK9yWUpGg==",
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/@sap/cds-compiler/-/cds-compiler-6.4.2.tgz",
+ "integrity": "sha512-kjhq8GxzCLIfsM4aln9saxkifPC26MYuAqT82QB7RGZDVFM5Pw09Dp6TcKCSp65hut0YgHkvHlVGWMZWWBJNdA==",
"dev": true,
"license": "SEE LICENSE IN LICENSE",
"bin": {
@@ -1442,9 +1442,9 @@
}
},
"node_modules/@sap/cds-dk": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/@sap/cds-dk/-/cds-dk-9.3.1.tgz",
- "integrity": "sha512-Afa7hg+YwPgSq+tGY7CX2ZOo0decIp0qEyLaDdeXViAVPYZGiUjWp9Zyb8PoNElC5UNkRMDRJ4ZGOKjzf+mM+A==",
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/@sap/cds-dk/-/cds-dk-9.4.1.tgz",
+ "integrity": "sha512-Mqx23EU99c9XNqBLtkusNl4Q2WEjT2fx2GgUJwtKFl2WbUPNX3YjlmdvJnPKOQQkJ5Bi/5S6BLjTAipKivKIzw==",
"dev": true,
"hasShrinkwrap": true,
"license": "SEE LICENSE IN LICENSE",
@@ -1483,8 +1483,8 @@
}
},
"node_modules/@sap/cds-dk/node_modules/@cap-js/db-service": {
- "version": "2.4.0",
- "integrity": "sha512-tWZUkgAPgZQIVu3xownD9cA9joXPI84KDstx3ZezOxXJuRsapgM2QEs0TXwQK5XLG43FUAsGO7wVJPoZ29ZH2Q==",
+ "version": "2.5.1",
+ "integrity": "sha512-dpz9lvOepcXOgE8uTs9abCotLcCt1odpwlrUT4AW2pnSrMB0EVMRbHKVIlufmrm8Kh/Y5c2d6ODald8eahsEDw==",
"dev": true,
"license": "Apache-2.0",
"optional": true,
@@ -1508,8 +1508,8 @@
}
},
"node_modules/@sap/cds-dk/node_modules/@cap-js/sqlite": {
- "version": "2.0.2",
- "integrity": "sha512-oNg2f56sfELshyp0eSmYYwG1lt4Zmc135sLIzS8iykHdRVxxJpTrPj0jx0Y4Hc6sfC9u25LRXVu/ZKqjm9Yu+Q==",
+ "version": "2.0.3",
+ "integrity": "sha512-Zm2JLpPuddFkeqM47TX7V7IC6x3WOfn5lTRbaiVOMvRQoshCNXTkjv083ssfiwF/jF/46/PSVox+fTElozg6XA==",
"dev": true,
"license": "Apache-2.0",
"optional": true,
@@ -1522,8 +1522,8 @@
}
},
"node_modules/@sap/cds-dk/node_modules/@eslint/js": {
- "version": "9.35.0",
- "integrity": "sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==",
+ "version": "9.37.0",
+ "integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==",
"extraneous": true,
"license": "MIT",
"engines": {
@@ -1534,8 +1534,8 @@
}
},
"node_modules/@sap/cds-dk/node_modules/@sap/cds": {
- "version": "9.3.1",
- "integrity": "sha512-xA9EN29X8HKaz83Aod1e3Bs6LRvqcCVoaTvCtyOup5rMYDQumcoZ7UOKH6NIUTeO0zOtafUiMHucMG+dBnq5XQ==",
+ "version": "9.4.2",
+ "integrity": "sha512-+MtNRviAgyZnPkSkT9sZ52rKRrNcTSpjIL88HfPtS5VzWX17Niu9PRANba/dd8aF4lxSQEEqb85zqJkga6MwKA==",
"dev": true,
"license": "SEE LICENSE IN LICENSE",
"dependencies": {
@@ -1565,8 +1565,8 @@
}
},
"node_modules/@sap/cds-dk/node_modules/@sap/cds-compiler": {
- "version": "6.3.0",
- "integrity": "sha512-4HhZuiKa8SztqtjfM9Iey7yb2U6xQGzUbjib3JXcSSP6AJ6Bz0gViliTwf8dASPTLRtv7HU82277m4uqxU2qjw==",
+ "version": "6.4.2",
+ "integrity": "sha512-kjhq8GxzCLIfsM4aln9saxkifPC26MYuAqT82QB7RGZDVFM5Pw09Dp6TcKCSp65hut0YgHkvHlVGWMZWWBJNdA==",
"dev": true,
"license": "SEE LICENSE IN LICENSE",
"bin": {
@@ -1579,13 +1579,13 @@
}
},
"node_modules/@sap/cds-dk/node_modules/@sap/cds-fiori": {
- "version": "2.0.1",
- "integrity": "sha512-KZVLWXndydgqdlao8OL1gtgd/XMgBdiKBmmgwGpBL1y4S21FOXglnWh6d3bnSZL/qwR3z50D+0PoGghjhayF0Q==",
+ "version": "2.1.0",
+ "integrity": "sha512-EoNtPT5aVurxwsqHQfW2FgnXA3Ysu9GvihR0jTQNUZ4pVlHHFkfFehH6G2DIHKyfTROWaahegJsMpiwpE8clkg==",
"dev": true,
"license": "SEE LICENSE IN LICENSE",
"peerDependencies": {
"@sap/cds": ">=8",
- "express": ">=4"
+ "express": "^4"
}
},
"node_modules/@sap/cds-dk/node_modules/@sap/cds-mtxs": {
@@ -1629,8 +1629,8 @@
}
},
"node_modules/@sap/cds-dk/node_modules/@sap/hdi-deploy": {
- "version": "5.5.0",
- "integrity": "sha512-nxamWIBz+D/4wcvgYgxGSJLsyJ1KNtU9X6gfMHiyi/IjozGN/3WdeT11++jy5qeZNkdinuND55RRlRcnsu3W5g==",
+ "version": "5.5.1",
+ "integrity": "sha512-5r9SIkXX7cO+MwRFF32O566sMx6LP1mLin0eT9F+Adqy+0SrdwkWv4JslQzYetiWLuNsfqQljcao62alaxts8A==",
"dev": true,
"license": "See LICENSE file",
"dependencies": {
@@ -1718,8 +1718,8 @@
"license": "MIT"
},
"node_modules/@sap/cds-dk/node_modules/axios": {
- "version": "1.11.0",
- "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
+ "version": "1.12.2",
+ "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1750,8 +1750,8 @@
"optional": true
},
"node_modules/@sap/cds-dk/node_modules/better-sqlite3": {
- "version": "12.2.0",
- "integrity": "sha512-eGbYq2CT+tos1fBwLQ/tkBt9J5M3JEHjku4hbvQUePCckkvVf14xWj+1m7dGoK81M/fOjFT7yM9UMeKT/+vFLQ==",
+ "version": "12.4.1",
+ "integrity": "sha512-3yVdyZhklTiNrtg+4WqHpJpFDd+WHTg2oM7UcR80GqL05AOV0xEJzc6qNvFYoEtE+hRp1n9MpN6/+4yhlGkDXQ==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -2042,8 +2042,8 @@
}
},
"node_modules/@sap/cds-dk/node_modules/detect-libc": {
- "version": "2.0.4",
- "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
+ "version": "2.1.2",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"dev": true,
"license": "Apache-2.0",
"optional": true,
@@ -2761,8 +2761,8 @@
"license": "MIT"
},
"node_modules/@sap/cds-dk/node_modules/node-abi": {
- "version": "3.77.0",
- "integrity": "sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==",
+ "version": "3.78.0",
+ "integrity": "sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -3012,8 +3012,8 @@
"license": "ISC"
},
"node_modules/@sap/cds-dk/node_modules/semver": {
- "version": "7.7.2",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"optional": true,
@@ -3251,8 +3251,8 @@
}
},
"node_modules/@sap/cds-dk/node_modules/tar-fs": {
- "version": "2.1.3",
- "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==",
+ "version": "2.1.4",
+ "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -3447,23 +3447,23 @@
}
},
"node_modules/@sap/cds-fiori": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@sap/cds-fiori/-/cds-fiori-2.0.1.tgz",
- "integrity": "sha512-KZVLWXndydgqdlao8OL1gtgd/XMgBdiKBmmgwGpBL1y4S21FOXglnWh6d3bnSZL/qwR3z50D+0PoGghjhayF0Q==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@sap/cds-fiori/-/cds-fiori-2.1.0.tgz",
+ "integrity": "sha512-EoNtPT5aVurxwsqHQfW2FgnXA3Ysu9GvihR0jTQNUZ4pVlHHFkfFehH6G2DIHKyfTROWaahegJsMpiwpE8clkg==",
"dev": true,
"license": "SEE LICENSE IN LICENSE",
"peerDependencies": {
"@sap/cds": ">=8",
- "express": ">=4"
+ "express": "^4"
}
},
"node_modules/@sap/xssec": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/@sap/xssec/-/xssec-4.9.1.tgz",
- "integrity": "sha512-DENmjd04ndQbNC8vP8PU1Ee4pRtaSDnDgHpcesEAokjsQVFG4rFtVuzObQHDrNT89gyBhyHtVEkV6+g1XFDNbw==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@sap/xssec/-/xssec-4.10.0.tgz",
+ "integrity": "sha512-6SxDorJpQRNjI0sCTwHoFkyECI5IrxnRZ3adoTY0XeGM8QcMoYmLnJIPXoa6AYSzMB89rjJ02j1PQVWACYt/Hg==",
"license": "SAP DEVELOPER LICENSE AGREEMENT",
"dependencies": {
- "debug": "^4.3.4",
+ "debug": "^4.4.3",
"jwt-decode": "^4"
},
"engines": {
@@ -3601,13 +3601,13 @@
}
},
"node_modules/@types/node": {
- "version": "24.3.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.3.tgz",
- "integrity": "sha512-GKBNHjoNw3Kra1Qg5UXttsY5kiWMEfoHq2TmXb+b1rcm6N7B3wTrFYIf/oSZ1xNQ+hVVijgLkiDZh7jRRsh+Gw==",
+ "version": "24.7.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.2.tgz",
+ "integrity": "sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "undici-types": "~7.10.0"
+ "undici-types": "~7.14.0"
}
},
"node_modules/@types/stack-utils": {
@@ -3635,14 +3635,14 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/project-service": {
- "version": "8.43.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.43.0.tgz",
- "integrity": "sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==",
+ "version": "8.46.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.1.tgz",
+ "integrity": "sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.43.0",
- "@typescript-eslint/types": "^8.43.0",
+ "@typescript-eslint/tsconfig-utils": "^8.46.1",
+ "@typescript-eslint/types": "^8.46.1",
"debug": "^4.3.4"
},
"engines": {
@@ -3657,14 +3657,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.43.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.43.0.tgz",
- "integrity": "sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==",
+ "version": "8.46.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.1.tgz",
+ "integrity": "sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.43.0",
- "@typescript-eslint/visitor-keys": "8.43.0"
+ "@typescript-eslint/types": "8.46.1",
+ "@typescript-eslint/visitor-keys": "8.46.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3675,9 +3675,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.43.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.43.0.tgz",
- "integrity": "sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==",
+ "version": "8.46.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.1.tgz",
+ "integrity": "sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3692,9 +3692,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.43.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.43.0.tgz",
- "integrity": "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==",
+ "version": "8.46.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.1.tgz",
+ "integrity": "sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3706,16 +3706,16 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.43.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.43.0.tgz",
- "integrity": "sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==",
+ "version": "8.46.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.1.tgz",
+ "integrity": "sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.43.0",
- "@typescript-eslint/tsconfig-utils": "8.43.0",
- "@typescript-eslint/types": "8.43.0",
- "@typescript-eslint/visitor-keys": "8.43.0",
+ "@typescript-eslint/project-service": "8.46.1",
+ "@typescript-eslint/tsconfig-utils": "8.46.1",
+ "@typescript-eslint/types": "8.46.1",
+ "@typescript-eslint/visitor-keys": "8.46.1",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -3761,16 +3761,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.43.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.43.0.tgz",
- "integrity": "sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==",
+ "version": "8.46.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.1.tgz",
+ "integrity": "sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.43.0",
- "@typescript-eslint/types": "8.43.0",
- "@typescript-eslint/typescript-estree": "8.43.0"
+ "@typescript-eslint/scope-manager": "8.46.1",
+ "@typescript-eslint/types": "8.46.1",
+ "@typescript-eslint/typescript-estree": "8.46.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3785,13 +3785,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.43.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.43.0.tgz",
- "integrity": "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==",
+ "version": "8.46.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.1.tgz",
+ "integrity": "sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.43.0",
+ "@typescript-eslint/types": "8.46.1",
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
@@ -4061,9 +4061,9 @@
"license": "MIT"
},
"node_modules/axios": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.1.tgz",
- "integrity": "sha512-Kn4kbSXpkFHCGE6rBFNwIv0GQs4AvDT80jlveJDKFxjbTYMUeB4QtsdPCv6H8Cm19Je7IU6VFtRl2zWZI0rudQ==",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
+ "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4227,9 +4227,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.2.tgz",
- "integrity": "sha512-NvcIedLxrs9llVpX7wI+Jz4Hn9vJQkCPKrTaHIE0sW/Rj1iq6Fzby4NbyTZjQJNoypBXNaG7tEHkTgONZpwgxQ==",
+ "version": "2.8.16",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.16.tgz",
+ "integrity": "sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -4237,9 +4237,9 @@
}
},
"node_modules/better-sqlite3": {
- "version": "12.2.0",
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.2.0.tgz",
- "integrity": "sha512-eGbYq2CT+tos1fBwLQ/tkBt9J5M3JEHjku4hbvQUePCckkvVf14xWj+1m7dGoK81M/fOjFT7yM9UMeKT/+vFLQ==",
+ "version": "12.4.1",
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.4.1.tgz",
+ "integrity": "sha512-3yVdyZhklTiNrtg+4WqHpJpFDd+WHTg2oM7UcR80GqL05AOV0xEJzc6qNvFYoEtE+hRp1n9MpN6/+4yhlGkDXQ==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -4340,9 +4340,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.26.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.0.tgz",
- "integrity": "sha512-P9go2WrP9FiPwLv3zqRD/Uoxo0RSHjzFCiQz7d4vbmwNqQFo9T9WCeP/Qn5EbcKQY6DBbkxEXNcpJOmncNrb7A==",
+ "version": "4.26.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz",
+ "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==",
"dev": true,
"funding": [
{
@@ -4360,9 +4360,9 @@
],
"license": "MIT",
"dependencies": {
- "baseline-browser-mapping": "^2.8.2",
- "caniuse-lite": "^1.0.30001741",
- "electron-to-chromium": "^1.5.218",
+ "baseline-browser-mapping": "^2.8.9",
+ "caniuse-lite": "^1.0.30001746",
+ "electron-to-chromium": "^1.5.227",
"node-releases": "^2.0.21",
"update-browserslist-db": "^1.1.3"
},
@@ -4530,9 +4530,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001741",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz",
- "integrity": "sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==",
+ "version": "1.0.30001750",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001750.tgz",
+ "integrity": "sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==",
"dev": true,
"funding": [
{
@@ -4713,9 +4713,9 @@
}
},
"node_modules/collect-v8-coverage": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
- "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz",
+ "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==",
"dev": true,
"license": "MIT"
},
@@ -4854,9 +4854,9 @@
}
},
"node_modules/cron-parser": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-5.3.1.tgz",
- "integrity": "sha512-Mu5Jk1b4cUfY8u34+thI9TZxvQiuhaMBS2Ag84rOSoHlU33xtIPkXwr6lWuw3XPmxSxq317B+hl0o4J+LdhwNg==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-5.4.0.tgz",
+ "integrity": "sha512-HxYB8vTvnQFx4dLsZpGRa0uHp6X3qIzS3ZJgJ9v6l/5TJMgeWQbLkR5yiJ5hOxGbc9+jCADDnydIe15ReLZnJA==",
"license": "MIT",
"dependencies": {
"luxon": "^3.7.1"
@@ -4881,9 +4881,9 @@
}
},
"node_modules/debug": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
@@ -5008,9 +5008,9 @@
}
},
"node_modules/detect-libc": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
- "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -5073,9 +5073,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.218",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.218.tgz",
- "integrity": "sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==",
+ "version": "1.5.237",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz",
+ "integrity": "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==",
"dev": true,
"license": "ISC"
},
@@ -5164,9 +5164,9 @@
"optional": true
},
"node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6234,9 +6234,9 @@
}
},
"node_modules/hdb": {
- "version": "2.25.1",
- "resolved": "https://registry.npmjs.org/hdb/-/hdb-2.25.1.tgz",
- "integrity": "sha512-/ojm+fki1r+sqMqQjwTLcF1VeL3tkNxMLS/CVKXuUbz6xDco3wdSR0wTh0FzMPUOHnptCErxV6YNUbvdALSFww==",
+ "version": "2.26.1",
+ "resolved": "https://registry.npmjs.org/hdb/-/hdb-2.26.1.tgz",
+ "integrity": "sha512-m8X1ugfxgbrUIB6o9Mpvm7IrgMBfChBoG1m6JxuJWjdg5g36eXInE4wbCYMRH8UPO2g0Y/Fswu42t3XA6tntLg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -6244,6 +6244,9 @@
},
"engines": {
"node": ">= 18"
+ },
+ "optionalDependencies": {
+ "lz4-wasm-nodejs": "^0.9.2"
}
},
"node_modules/html-escaper": {
@@ -7441,6 +7444,14 @@
"node": ">=12"
}
},
+ "node_modules/lz4-wasm-nodejs": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/lz4-wasm-nodejs/-/lz4-wasm-nodejs-0.9.2.tgz",
+ "integrity": "sha512-hSwgJPS98q/Oe/89Y1OxzeA/UdnASG8GvldRyKa7aZyoAFCC8VPRtViBSava7wWC66WocjUwBpWau2rEmyFPsw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
"node_modules/make-dir": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
@@ -7838,9 +7849,9 @@
}
},
"node_modules/node-abi": {
- "version": "3.77.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.77.0.tgz",
- "integrity": "sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==",
+ "version": "3.78.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.78.0.tgz",
+ "integrity": "sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7891,9 +7902,9 @@
"license": "MIT"
},
"node_modules/node-releases": {
- "version": "2.0.21",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz",
- "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==",
+ "version": "2.0.25",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.25.tgz",
+ "integrity": "sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA==",
"dev": true,
"license": "MIT"
},
@@ -8763,9 +8774,9 @@
"license": "MIT"
},
"node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
"license": "ISC",
"bin": {
@@ -9302,9 +9313,9 @@
}
},
"node_modules/tar-fs": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz",
- "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz",
+ "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9507,9 +9518,9 @@
}
},
"node_modules/undici-types": {
- "version": "7.10.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz",
- "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==",
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz",
+ "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==",
"dev": true,
"license": "MIT"
},
diff --git a/package.json b/package.json
index 747c7ae0..0df9dd6f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@cap-js-community/event-queue",
- "version": "1.11.0-beta.5",
+ "version": "1.11.0",
"description": "An event queue that enables secure transactional processing of asynchronous and periodic events, featuring instant event processing with Redis Pub/Sub and load distribution across all application instances.",
"main": "src/index.js",
"types": "src/index.d.ts",
@@ -47,24 +47,24 @@
"node": ">=18"
},
"dependencies": {
- "@sap/xssec": "^4.6.0",
- "cron-parser": "^5.3.1",
+ "@sap/xssec": "^4.10.0",
+ "cron-parser": "^5.4.0",
"redis": "^4.7.0",
"verror": "^1.10.1",
"yaml": "^2.7.1"
},
"devDependencies": {
"@cap-js/cds-test": "^0.4.0",
- "@cap-js/hana": "^2.2.0",
- "@cap-js/sqlite": "^2.0.1",
- "@sap/cds": "^9.3.1",
- "@sap/cds-dk": "^9.3.1",
+ "@cap-js/hana": "^2.3.3",
+ "@cap-js/sqlite": "^2.0.3",
+ "@sap/cds": "^9.4.1",
+ "@sap/cds-dk": "^9.4.1",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-jest": "^28.6.0",
"eslint-plugin-node": "^11.1.0",
"express": "^4.21.2",
- "hdb": "^2.25.1",
+ "hdb": "^2.26.1",
"jest": "^29.7.0",
"prettier": "^2.8.8",
"sqlite3": "^5.1.7",
diff --git a/src/redis/redisPub.js b/src/redis/redisPub.js
index a3144294..0751ad46 100644
--- a/src/redis/redisPub.js
+++ b/src/redis/redisPub.js
@@ -77,7 +77,7 @@ const broadcastEvent = async (tenantId, events, forceBroadcast = false) => {
for (let i = 0; i < TRIES_FOR_PUBLISH_PERIODIC_EVENT; i++) {
const result = eventConfig.multiInstanceProcessing
? false
- : await distributedLock.checkLockExistsAndReturnValue(context, [type, subType].join("##"));
+ : await distributedLock.checkLockExists(context, [type, subType].join("##"));
if (result) {
logger.debug("skip publish redis event as no lock is available", {
type,
diff --git a/src/runner/runner.js b/src/runner/runner.js
index c59839a6..f7cf77e1 100644
--- a/src/runner/runner.js
+++ b/src/runner/runner.js
@@ -405,7 +405,7 @@ const _acquireRunId = async (context) => {
overrideValue: true,
});
} else {
- runId = await distributedLock.checkLockExistsAndReturnValue(context, EVENT_QUEUE_RUN_ID, {
+ runId = await distributedLock.getValue(context, EVENT_QUEUE_RUN_ID, {
tenantScoped: false,
});
}
@@ -422,7 +422,7 @@ const _calculateOffsetForFirstRun = async () => {
try {
await trace(dummyContext, "calculateOffsetForFirstRun", async () => {
if (eventQueueConfig.redisEnabled) {
- let lastRunTs = await distributedLock.checkLockExistsAndReturnValue(dummyContext, EVENT_QUEUE_RUN_TS, {
+ let lastRunTs = await distributedLock.getValue(dummyContext, EVENT_QUEUE_RUN_TS, {
tenantScoped: false,
});
if (!lastRunTs) {
@@ -434,7 +434,7 @@ const _calculateOffsetForFirstRun = async () => {
if (couldSetValue) {
lastRunTs = ts;
} else {
- lastRunTs = await distributedLock.checkLockExistsAndReturnValue(dummyContext, EVENT_QUEUE_RUN_TS, {
+ lastRunTs = await distributedLock.getValue(dummyContext, EVENT_QUEUE_RUN_TS, {
tenantScoped: false,
});
}
diff --git a/src/shared/cdsHelper.js b/src/shared/cdsHelper.js
index 52797202..f736574d 100644
--- a/src/shared/cdsHelper.js
+++ b/src/shared/cdsHelper.js
@@ -165,38 +165,7 @@ const getAllTenantIds = async () => {
}, []);
};
-const TENANT_COLUMNS = ["subscribedSubdomain", "createdAt", "modifiedAt"];
-
-const getAllTenantWithMetadata = async () => {
- const response = await _getAllTenantBase();
- if (!response) {
- return null;
- }
-
- return response.reduce(async (result, row) => {
- const tenantId = row.subscribedTenantId ?? row.tenant;
- result = await result;
- if (await common.isTenantIdValidCb(TenantIdCheckTypes.eventProcessing, tenantId)) {
- const data = Object.entries(row).reduce(
- (result, [key, value]) => {
- if (TENANT_COLUMNS.includes(key)) {
- result[key] = value;
- } else {
- result.metadata[key] = value;
- }
- return result;
- },
- { metadata: {} }
- );
- data.metadata = JSON.stringify(data.metadata);
- result.push(data);
- }
- return result;
- }, []);
-};
-
module.exports = {
executeInNewTransaction,
getAllTenantIds,
- getAllTenantWithMetadata,
};
diff --git a/src/shared/common.js b/src/shared/common.js
index 2fb82789..dc58109b 100644
--- a/src/shared/common.js
+++ b/src/shared/common.js
@@ -92,7 +92,7 @@ const hashStringTo32Bit = (value) => crypto.createHash("sha256").update(String(v
const _getNewAuthContext = async (tenantId) => {
try {
if (!_getNewAuthContext._xsuaaService) {
- _getNewAuthContext._xsuaaService = new xssec.XsuaaService(cds.requires.auth.credentials);
+ _getNewAuthContext._xsuaaService = new xssec.XsuaaService(cds.requires["xsuaa-eventQueue"]?.credentials);
}
const authService = _getNewAuthContext._xsuaaService;
const token = await authService.fetchClientCredentialsToken({ zid: tenantId });
diff --git a/src/shared/distributedLock.js b/src/shared/distributedLock.js
index bea3ad6d..d4acb5c4 100644
--- a/src/shared/distributedLock.js
+++ b/src/shared/distributedLock.js
@@ -60,12 +60,21 @@ const releaseLock = async (context, key, { tenantScoped = true } = {}) => {
}
};
-const checkLockExistsAndReturnValue = async (context, key, { tenantScoped = true } = {}) => {
+const checkLockExists = async (context, key, { tenantScoped = true } = {}) => {
const fullKey = _generateKey(context, tenantScoped, key);
if (config.redisEnabled) {
- return await _checkLockExistsRedis(context, fullKey);
+ return !!(await _getLockValueRedis(context, fullKey));
} else {
- return await _checkLockExistsDb(context, fullKey);
+ return !!(await _getLockValueDb(context, fullKey));
+ }
+};
+
+const getValue = async (context, key, { tenantScoped = true } = {}) => {
+ const fullKey = _generateKey(context, tenantScoped, key);
+ if (config.redisEnabled) {
+ return await _getLockValueRedis(context, fullKey);
+ } else {
+ return await _getLockValueDb(context, fullKey);
}
};
@@ -106,12 +115,12 @@ const _renewLockRedis = async (context, fullKey, expiryTime, { value = "true" }
return result === REDIS_COMMAND_OK;
};
-const _checkLockExistsRedis = async (context, fullKey) => {
+const _getLockValueRedis = async (context, fullKey) => {
const client = await redis.createMainClientAndConnect(config.redisOptions);
- return await client.exists(fullKey);
+ return await client.get(fullKey);
};
-const _checkLockExistsDb = async (context, fullKey) => {
+const _getLockValueDb = async (context, fullKey) => {
let result;
await cdsHelper.executeInNewTransaction(context, "distributedLock-checkExists", async (tx) => {
result = await tx.run(SELECT.one.from(config.tableNameEventLock).where("code =", fullKey));
@@ -259,7 +268,8 @@ const shutdownHandler = async () => {
module.exports = {
acquireLock,
releaseLock,
- checkLockExistsAndReturnValue,
+ checkLockExists,
+ getValue,
setValueWithExpire,
shutdownHandler,
renewLock,
diff --git a/srv/service/admin-service.cds b/srv/service/admin-service.cds
index de64a0fb..748a0c6b 100644
--- a/srv/service/admin-service.cds
+++ b/srv/service/admin-service.cds
@@ -42,12 +42,4 @@ service EventQueueAdminService {
@mandatory
subType: String) returns Boolean;
}
-
- @readonly
- @cds.persistence.skip
- entity Tenant {
- Key ID: String;
- subdomain: String;
- metadata: String;
- }
}
diff --git a/srv/service/admin-service.js b/srv/service/admin-service.js
index 9ca90bf5..15e11919 100644
--- a/srv/service/admin-service.js
+++ b/srv/service/admin-service.js
@@ -1,7 +1,6 @@
"use strict";
const cds = require("@sap/cds");
-const cdsHelper = require("../../src/shared/cdsHelper");
const { EventProcessingStatus } = require("../../src");
const config = require("../../src/config");
const distributedLock = require("../../src/shared/distributedLock");
@@ -9,7 +8,7 @@ const redisPub = require("../../src/redis/redisPub");
module.exports = class AdminService extends cds.ApplicationService {
async init() {
- const { Event: EventService, Tenant, Lock: LockService } = this.entities();
+ const { Event: EventService, Lock: LockService } = this.entities();
const { Event: EventDb } = cds.db.entities("sap.eventqueue");
const { landscape, space } = this.getLandscapeAndSpace();
@@ -18,9 +17,6 @@ module.exports = class AdminService extends cds.ApplicationService {
req.reject(403, "Admin service is disabled by configuration");
}
- if (req.target.name === Tenant.name) {
- return;
- }
const headers = Object.assign({}, req.headers, req.req?.headers);
const tenant = headers["z-id"] ?? req.data.tenant;
@@ -61,11 +57,6 @@ module.exports = class AdminService extends cds.ApplicationService {
}));
});
- this.on("READ", Tenant, async () => {
- const tenants = await cdsHelper.getAllTenantWithMetadata();
- return tenants ?? [];
- });
-
this.on("setStatusAndAttempts", async (req) => {
const tenant = req.headers["z-id"];
cds.log("eventQueue").info("Restarting processing for event queue");
diff --git a/test-integration/runner.test.js b/test-integration/runner.test.js
index 4e73fb93..959f97c7 100644
--- a/test-integration/runner.test.js
+++ b/test-integration/runner.test.js
@@ -495,12 +495,12 @@ describe("runner", () => {
});
it("acquireRunId should set ts", async () => {
- let runTs = await distributedLock.checkLockExistsAndReturnValue({}, runner.__.EVENT_QUEUE_RUN_TS, {
+ let runTs = await distributedLock.getValue({}, runner.__.EVENT_QUEUE_RUN_TS, {
tenantScoped: false,
});
expect(runTs).toBeFalsy();
await runner.__._acquireRunId();
- runTs = await distributedLock.checkLockExistsAndReturnValue({}, runner.__.EVENT_QUEUE_RUN_TS, {
+ runTs = await distributedLock.getValue({}, runner.__.EVENT_QUEUE_RUN_TS, {
tenantScoped: false,
});
expect(runTs).toBeDefined();
@@ -512,7 +512,7 @@ describe("runner", () => {
jest.useFakeTimers();
const systemTime = Date.now();
jest.setSystemTime(systemTime);
- const runTs = await distributedLock.checkLockExistsAndReturnValue({}, runner.__.EVENT_QUEUE_RUN_TS, {
+ const runTs = await distributedLock.getValue({}, runner.__.EVENT_QUEUE_RUN_TS, {
tenantScoped: false,
});
const expectedTs = new Date(runTs).getTime() + configInstance.runInterval - systemTime;
@@ -528,7 +528,7 @@ describe("runner", () => {
jest.useFakeTimers();
const systemTime = Date.now();
jest.setSystemTime(systemTime);
- const runTs = await distributedLock.checkLockExistsAndReturnValue({}, runner.__.EVENT_QUEUE_RUN_TS, {
+ const runTs = await distributedLock.getValue({}, runner.__.EVENT_QUEUE_RUN_TS, {
tenantScoped: false,
});
const expectedTs = new Date(runTs).getTime() + configInstance.runInterval - systemTime;
diff --git a/test/__snapshots__/admin-service.test.js.snap b/test/__snapshots__/admin-service.test.js.snap
index 1cb3cfaa..69664ba7 100644
--- a/test/__snapshots__/admin-service.test.js.snap
+++ b/test/__snapshots__/admin-service.test.js.snap
@@ -28,7 +28,6 @@ exports[`admin-service-test metadata snapshot 1`] = `
-
@@ -65,14 +64,6 @@ exports[`admin-service-test metadata snapshot 1`] = `
-
-
-
-
-
-
-
-
@@ -212,23 +203,6 @@ exports[`admin-service-test metadata snapshot 1`] = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
"
@@ -249,10 +223,3 @@ exports[`admin-service-test read entities: Lock 1`] = `
"value": [],
}
`;
-
-exports[`admin-service-test read entities: Tenant 1`] = `
-{
- "@odata.context": "$metadata#Tenant",
- "value": [],
-}
-`;
diff --git a/test/redisPubSub.test.js b/test/redisPubSub.test.js
index d4206569..85255348 100644
--- a/test/redisPubSub.test.js
+++ b/test/redisPubSub.test.js
@@ -7,7 +7,7 @@ const setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((first
});
const distributedLock = require("../src/shared/distributedLock");
-const checkLockExistsSpy = jest.spyOn(distributedLock, "checkLockExistsAndReturnValue");
+const checkLockExistsSpy = jest.spyOn(distributedLock, "checkLockExists");
const config = require("../src/config");
const redisPub = require("../src/redis/redisPub");
const redisSub = require("../src/redis/redisSub");