@sap/cds-dk 9.9.6 → 9.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ This project adheres to [Semantic Versioning](https://semver.org/).
6
6
 
7
7
  The format is based on [Keep a Changelog](https://keepachangelog.com/).
8
8
 
9
+ ## Version 9.9.7 - 2026-10-21
10
+
11
+ ### Fixed
12
+
13
+ - `cds build --for hana` now correctly relocates generated _.hdbsynonymconfig_ files containing `*.configure` properties (e.g. `schema.configure`).
14
+
9
15
  ## Version 9.9.6 - 2026-09-11
10
16
 
11
17
  ### Changed
@@ -105,10 +105,11 @@ module.exports = class HanaBuildPlugin extends require('../internal') {
105
105
 
106
106
  // relocate .hdbsynonymconfig files containing *.configure properties to cfg/ folder
107
107
  // HDI's template mechanism for configuration files only works from the cfg/ folder
108
- if (this.isStagingBuild()) {
109
- const relocatedDirs = await this._relocateSynonymConfigsToCfg()
110
- await this._writeCfgHdiConfig(relocatedDirs)
111
- }
108
+ // For inplace builds (Java), restrict the scan to compileDest only to avoid moving user's
109
+ // hand-crafted src/ files; for staging builds scan all of src/ (everything there is generated).
110
+ const synonymConfigScanDir = this.isStagingBuild() ? undefined : this.task.options.compileDest
111
+ const relocatedDirs = await this._relocateSynonymConfigsToCfg(synonymConfigScanDir)
112
+ await this._writeCfgHdiConfig(relocatedDirs)
112
113
  }
113
114
  }
114
115
 
@@ -621,11 +622,14 @@ module.exports = class HanaBuildPlugin extends require('../internal') {
621
622
  * in the cfg/ folder. The HDI deployer scans cfg/ at startup, detects *.configure markers,
622
623
  * and applies runtime substitution from bound service credentials.
623
624
  */
624
- async _relocateSynonymConfigsToCfg() {
625
+ async _relocateSynonymConfigsToCfg(scanDir) {
625
626
  const destSrcDir = path.join(this.task.dest, 'src')
626
627
  const destCfgDir = path.join(this.task.dest, 'cfg')
628
+ // scanDir defaults to destSrcDir (staging builds); for inplace builds it is compileDest
629
+ // so that only generated files in src/gen are considered, not user's hand-crafted src/ files.
630
+ const effectiveScanDir = scanDir ?? destSrcDir
627
631
 
628
- const synonymConfigFiles = await find(destSrcDir, { filter: (entry) => {
632
+ const synonymConfigFiles = await find(effectiveScanDir, { filter: (entry) => {
629
633
  if (isdir(entry)) {
630
634
  return true
631
635
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sap/cds-dk",
3
- "version": "9.9.6",
3
+ "version": "9.9.7",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@sap/cds-dk",
9
- "version": "9.9.6",
9
+ "version": "9.9.7",
10
10
  "license": "SEE LICENSE IN LICENSE",
11
11
  "dependencies": {
12
12
  "@cap-js/asyncapi": "^1.0.0",
@@ -41,8 +41,8 @@
41
41
  }
42
42
  },
43
43
  "node_modules/@cap-js/db-service": {
44
- "version": "2.11.1",
45
- "integrity": "sha512-IifaMVCmOBKIwlqKnir/Di1gcHx7DjuqmyyWwVCbLH5bdcHO8y8bYozHYXvn4gUthxQFBa5pTrXUSzjheJad7g==",
44
+ "version": "2.11.3",
45
+ "integrity": "sha512-zYT9lGSDph2yYQJhEDkJ5tLnXSU+ynqARq8faWQIWDubXmB+GAS+b+3N7SZyEx9jikR4ECKsWxCFy/2b21RD5g==",
46
46
  "devOptional": true,
47
47
  "license": "Apache-2.0",
48
48
  "dependencies": {
@@ -53,8 +53,8 @@
53
53
  }
54
54
  },
55
55
  "node_modules/@cap-js/openapi": {
56
- "version": "1.6.0",
57
- "integrity": "sha512-1Knrn9dU3CBAlKRlhTzZTlzbg1IULbUV39mvhcuDZrgMhSWhJ3OuJVcNWtMClq+VkUeYTkMYpysbPqrMRoeEdw==",
56
+ "version": "1.7.0",
57
+ "integrity": "sha512-eUwqxMWM2I0CrSnr1/DGX48q7MaM8NYqCF1//ktz8RNnuvmp6+61HWlN6xoct4/0d7bmBvg4Fw+HAXv8HyEcIA==",
58
58
  "license": "Apache-2.0",
59
59
  "dependencies": {
60
60
  "pluralize": "^8.0.0"
@@ -64,12 +64,12 @@
64
64
  }
65
65
  },
66
66
  "node_modules/@cap-js/sqlite": {
67
- "version": "2.4.1",
68
- "integrity": "sha512-xJcMESlMcgD6u2O8tugGBb4lCX/YF707zkAuF95hPgBzLerdQGzR+3fDGXLyoWSSEB32Esz8SyhnFXoS5b6Svw==",
67
+ "version": "2.4.3",
68
+ "integrity": "sha512-C7sxGD9InnORg5/eFgsJMg0WjCoypBk7tyjSkHLYtDPATC3ZROCkPQdhOLOy/+xRaoPaeTJRrNSVGv5u6dLiLA==",
69
69
  "license": "Apache-2.0",
70
70
  "optional": true,
71
71
  "dependencies": {
72
- "@cap-js/db-service": "^2.11.1",
72
+ "@cap-js/db-service": "^2.11.3",
73
73
  "better-sqlite3": "^12.0.0"
74
74
  },
75
75
  "peerDependencies": {
@@ -130,8 +130,8 @@
130
130
  }
131
131
  },
132
132
  "node_modules/@sap/cds-compiler": {
133
- "version": "6.9.5",
134
- "integrity": "sha512-zce4nu9Q5ZasCKOsqLDEZ1u3047CT3gebM3ziMOftn4W8Ip6qddBXd8HVVrKxY/PZrhJOnhaYqGirQFD9zmFxg==",
133
+ "version": "6.9.6",
134
+ "integrity": "sha512-eapqluJx7jtbN+rcgC2H60q5gVbgM/PqsL/o+Rps6YbM2XM20P8mMhl7By8gdx87zDAH3FBaYKdKbi5Y0iaeFg==",
135
135
  "license": "SEE LICENSE IN LICENSE",
136
136
  "bin": {
137
137
  "cdsc": "bin/cdsc.js",
@@ -331,18 +331,6 @@
331
331
  "url": "https://opencollective.com/express"
332
332
  }
333
333
  },
334
- "node_modules/body-parser/node_modules/content-type": {
335
- "version": "2.1.0",
336
- "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
337
- "license": "MIT",
338
- "engines": {
339
- "node": ">=18"
340
- },
341
- "funding": {
342
- "type": "opencollective",
343
- "url": "https://opencollective.com/express"
344
- }
345
- },
346
334
  "node_modules/braces": {
347
335
  "version": "3.0.3",
348
336
  "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
@@ -428,8 +416,8 @@
428
416
  }
429
417
  },
430
418
  "node_modules/content-disposition": {
431
- "version": "1.1.0",
432
- "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==",
419
+ "version": "2.0.1",
420
+ "integrity": "sha512-e+H0ZXHSWYrENhQzw1LPuP4oF5MzVKmDU6d3hxlvaPEYLLg62MxtQNPRx4SYSuYJSBUgnQIG4HIN2tEtNv7Dog==",
433
421
  "license": "MIT",
434
422
  "engines": {
435
423
  "node": ">=18"
@@ -440,11 +428,15 @@
440
428
  }
441
429
  },
442
430
  "node_modules/content-type": {
443
- "version": "1.0.5",
444
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
431
+ "version": "2.1.0",
432
+ "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
445
433
  "license": "MIT",
446
434
  "engines": {
447
- "node": ">= 0.6"
435
+ "node": ">=18"
436
+ },
437
+ "funding": {
438
+ "type": "opencollective",
439
+ "url": "https://opencollective.com/express"
448
440
  }
449
441
  },
450
442
  "node_modules/cookie": {
@@ -621,14 +613,14 @@
621
613
  }
622
614
  },
623
615
  "node_modules/express": {
624
- "version": "5.2.1",
625
- "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
616
+ "version": "5.3.0",
617
+ "integrity": "sha512-qCqy1xSoaugxOD4IVHb1ZWdkvCF2W3aE2okKouWj8VwJ+ztskSiXoBnCSJqfKT+cVPJhuJqe9YLbY425+Zh00g==",
626
618
  "license": "MIT",
627
619
  "dependencies": {
628
620
  "accepts": "^2.0.0",
629
- "body-parser": "^2.2.1",
630
- "content-disposition": "^1.0.0",
631
- "content-type": "^1.0.5",
621
+ "body-parser": "^2.3.0",
622
+ "content-disposition": "^2.0.1",
623
+ "content-type": "^2.0.0",
632
624
  "cookie": "^0.7.1",
633
625
  "cookie-signature": "^1.2.1",
634
626
  "debug": "^4.4.0",
@@ -644,14 +636,14 @@
644
636
  "on-finished": "^2.4.1",
645
637
  "once": "^1.4.0",
646
638
  "parseurl": "^1.3.3",
647
- "proxy-addr": "^2.0.7",
648
- "qs": "^6.14.0",
639
+ "proxy-addr": "^2.0.8",
640
+ "qs": "^6.16.0",
649
641
  "range-parser": "^1.2.1",
650
642
  "router": "^2.2.0",
651
643
  "send": "^1.1.0",
652
644
  "serve-static": "^2.2.0",
653
645
  "statuses": "^2.0.1",
654
- "type-is": "^2.0.1",
646
+ "type-is": "^2.1.0",
655
647
  "vary": "^1.1.2"
656
648
  },
657
649
  "engines": {
@@ -799,11 +791,11 @@
799
791
  }
800
792
  },
801
793
  "node_modules/handlebars": {
802
- "version": "4.7.9",
803
- "integrity": "sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==",
794
+ "version": "4.7.10",
795
+ "integrity": "sha512-P5VJMVM7qgBn6vjXMw8WG9uVI+ncf2pi72j4de4yz5ZULLj2RGqLYaKOYGsgyrViQ0tePOVlN1tDCCXXtFqXKg==",
804
796
  "license": "MIT",
805
797
  "dependencies": {
806
- "minimist": "^1.2.5",
798
+ "minimist": "^1.2.8",
807
799
  "neo-async": "^2.6.2",
808
800
  "source-map": "^0.6.1",
809
801
  "wordwrap": "^1.0.0"
@@ -841,8 +833,8 @@
841
833
  }
842
834
  },
843
835
  "node_modules/hdb": {
844
- "version": "2.29.6",
845
- "integrity": "sha512-I9AQxpTn6OKm66rzzNWbJeKnxn1ylJinzSsq0J1O0HOwxv3VNuwQttKem2/DG/Sv/yRIU20dBiqZTqXjqs6Eog==",
836
+ "version": "2.30.1",
837
+ "integrity": "sha512-2DtLQmPv39HFMtUk315aRaNCJHci/Y62Uitr5/Me8373CYFnoz9BlssMd46mrzHXSK0cA5m/nW6sTrO2KF357w==",
846
838
  "license": "Apache-2.0",
847
839
  "dependencies": {
848
840
  "iconv-lite": "0.7.0"
@@ -956,8 +948,8 @@
956
948
  "license": "MIT"
957
949
  },
958
950
  "node_modules/livereload-js": {
959
- "version": "4.0.2",
960
- "integrity": "sha512-Fy7VwgQNiOkynYyNBTo3v9hQUhcW5pFAheJN148+DTgpShjsy/22pLHKKwDK5v0kOsZsJBK+6q1PMgLvRmrwFQ==",
951
+ "version": "4.0.3",
952
+ "integrity": "sha512-OSoXN1PP5ef8mnyP40I6MndrMJar5MIP2QGO3ZlzT3oOmiSrjkpHblixAcUFbxtIyakQuKckVLuCYiPXjhprvQ==",
961
953
  "license": "MIT"
962
954
  },
963
955
  "node_modules/lz4-wasm-nodejs": {
@@ -1103,26 +1095,14 @@
1103
1095
  "url": "https://opencollective.com/express"
1104
1096
  }
1105
1097
  },
1106
- "node_modules/negotiator/node_modules/content-type": {
1107
- "version": "2.1.0",
1108
- "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
1109
- "license": "MIT",
1110
- "engines": {
1111
- "node": ">=18"
1112
- },
1113
- "funding": {
1114
- "type": "opencollective",
1115
- "url": "https://opencollective.com/express"
1116
- }
1117
- },
1118
1098
  "node_modules/neo-async": {
1119
1099
  "version": "2.6.2",
1120
1100
  "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
1121
1101
  "license": "MIT"
1122
1102
  },
1123
1103
  "node_modules/node-abi": {
1124
- "version": "3.96.0",
1125
- "integrity": "sha512-rebQ/lz7i0EkoLzUVSrKRzA69zMkwLp95kKMWoMDkkM00Suxz0D7zEQPwRml5fQum24mj7bPvmlgLAmu2JCiYg==",
1104
+ "version": "3.99.0",
1105
+ "integrity": "sha512-lLdwkeg2XUVPTHqWjPltTxH81zbQNbUWC+AEb9ni50KjxkUzAAx1HGtMT21sbntzfUGfIphhcklvs3imJeqDXw==",
1126
1106
  "license": "MIT",
1127
1107
  "optional": true,
1128
1108
  "dependencies": {
@@ -1226,8 +1206,8 @@
1226
1206
  }
1227
1207
  },
1228
1208
  "node_modules/proxy-addr": {
1229
- "version": "2.0.7",
1230
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1209
+ "version": "2.0.8",
1210
+ "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==",
1231
1211
  "license": "MIT",
1232
1212
  "dependencies": {
1233
1213
  "forwarded": "0.2.0",
@@ -1235,6 +1215,10 @@
1235
1215
  },
1236
1216
  "engines": {
1237
1217
  "node": ">= 0.10"
1218
+ },
1219
+ "funding": {
1220
+ "type": "opencollective",
1221
+ "url": "https://opencollective.com/express"
1238
1222
  }
1239
1223
  },
1240
1224
  "node_modules/pump": {
@@ -1248,8 +1232,8 @@
1248
1232
  }
1249
1233
  },
1250
1234
  "node_modules/qs": {
1251
- "version": "6.16.0",
1252
- "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==",
1235
+ "version": "6.16.1",
1236
+ "integrity": "sha512-5Px6J7rfHBAGUhNQ3es4YzcOdBBw0SDcVtThJml4RdnKw4tKs2epA0kPZ+K8X+WiHktT93RHVcQ/3ym5aTCgtg==",
1253
1237
  "license": "BSD-3-Clause",
1254
1238
  "dependencies": {
1255
1239
  "es-define-property": "^1.0.1",
@@ -1648,18 +1632,6 @@
1648
1632
  "url": "https://opencollective.com/express"
1649
1633
  }
1650
1634
  },
1651
- "node_modules/type-is/node_modules/content-type": {
1652
- "version": "2.1.0",
1653
- "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
1654
- "license": "MIT",
1655
- "engines": {
1656
- "node": ">=18"
1657
- },
1658
- "funding": {
1659
- "type": "opencollective",
1660
- "url": "https://opencollective.com/express"
1661
- }
1662
- },
1663
1635
  "node_modules/uglify-js": {
1664
1636
  "version": "3.19.3",
1665
1637
  "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
@@ -1718,8 +1690,8 @@
1718
1690
  "license": "ISC"
1719
1691
  },
1720
1692
  "node_modules/ws": {
1721
- "version": "8.21.3",
1722
- "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==",
1693
+ "version": "8.22.0",
1694
+ "integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==",
1723
1695
  "license": "MIT",
1724
1696
  "engines": {
1725
1697
  "node": ">=10.0.0"
@@ -1749,8 +1721,8 @@
1749
1721
  }
1750
1722
  },
1751
1723
  "node_modules/yaml": {
1752
- "version": "2.9.0",
1753
- "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==",
1724
+ "version": "2.9.1",
1725
+ "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==",
1754
1726
  "license": "ISC",
1755
1727
  "bin": {
1756
1728
  "yaml": "bin.mjs"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap/cds-dk",
3
- "version": "9.9.6",
3
+ "version": "9.9.7",
4
4
  "description": "Command line client and development toolkit for the SAP Cloud Application Programming Model",
5
5
  "homepage": "https://cap.cloud.sap/",
6
6
  "keywords": [