@sap/cds-dk 10.0.7 → 10.1.1

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.
Files changed (341) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/bin/add.js +7 -23
  3. package/bin/bind.js +14 -0
  4. package/bin/build.js +21 -34
  5. package/bin/cds.js +1 -1
  6. package/bin/compile/index.js +16 -41
  7. package/bin/completion/completionFs.js +11 -8
  8. package/bin/completion/index.js +603 -80
  9. package/bin/completion/scripts/cds.fish +620 -0
  10. package/bin/completion/scripts/cds.ps1 +403 -0
  11. package/bin/completion/scripts/cds.sh +327 -0
  12. package/bin/completion/scripts/cds.zsh +296 -0
  13. package/bin/completion/templates/cds-tmpl.fish +65 -0
  14. package/bin/completion/templates/cds-tmpl.ps1 +217 -0
  15. package/bin/completion/templates/cds-tmpl.sh +93 -0
  16. package/bin/completion/templates/cds-tmpl.zsh +74 -0
  17. package/bin/deploy/index.js +11 -1
  18. package/bin/deploy/options.js +25 -0
  19. package/{lib → bin}/deploy/to-hana/hana.js +8 -8
  20. package/{lib → bin}/deploy/to-hana/hdiDeployUtil.js +1 -1
  21. package/bin/deploy/{to-hana.js → to-hana/index.js} +1 -1
  22. package/{lib → bin}/deploy/to-hana/mtaUtil.js +1 -1
  23. package/bin/deploy/to-sql.js +0 -2
  24. package/bin/env.js +4 -1
  25. package/bin/export.js +44 -6
  26. package/bin/help/export.md +3 -0
  27. package/bin/help.js +1 -5
  28. package/bin/import.js +9 -0
  29. package/bin/init.js +6 -24
  30. package/bin/inspect.js +8 -0
  31. package/bin/lint.js +5 -3
  32. package/bin/login.js +26 -20
  33. package/bin/minify.js +6 -1
  34. package/bin/pull.js +19 -6
  35. package/bin/push.js +19 -6
  36. package/bin/repl.js +11 -2
  37. package/bin/run.js +12 -1
  38. package/bin/serve.js +13 -2
  39. package/bin/up.js +17 -11
  40. package/{lib → bin}/upgrade/constants.js +1 -1
  41. package/bin/{upgrade.js → upgrade/index.js} +2 -2
  42. package/{lib → bin}/upgrade/preflight/consistency.js +1 -1
  43. package/{lib → bin}/upgrade/preflight/index.js +1 -1
  44. package/{lib → bin}/upgrade/steps/analyze/index.js +1 -1
  45. package/{lib → bin}/upgrade/steps/install.js +1 -1
  46. package/{lib → bin}/upgrade/steps/openrewrite.js +1 -1
  47. package/{lib → bin}/upgrade/steps/removals.js +1 -1
  48. package/{lib → bin}/upgrade/steps/rewrite.js +1 -1
  49. package/{lib → bin}/upgrade/steps/verify.js +1 -1
  50. package/{lib/upgrade/index.js → bin/upgrade/upgrade.js} +2 -2
  51. package/{lib → bin}/upgrade/util/pom.js +2 -2
  52. package/{lib → bin}/upgrade/util/prompt.js +1 -1
  53. package/bin/util/containerize.js +10 -4
  54. package/bin/version.js +10 -1
  55. package/{lib → bin}/watch/hot-reload.js +1 -1
  56. package/bin/{watch.js → watch/index.js} +24 -9
  57. package/{lib → bin}/watch/livereload-connect.js +1 -1
  58. package/{lib → bin}/watch/vite-watch.js +1 -1
  59. package/{lib → bin}/watch/watched.js +2 -2
  60. package/lib/build/constants.js +1 -1
  61. package/lib/build/plugins/fiori/index.js +31 -2
  62. package/lib/build/plugins/internal.js +4 -2
  63. package/lib/build/plugins/mtx-sidecar/index.js +7 -8
  64. package/lib/build/plugins/nodejs/index.js +64 -7
  65. package/lib/build/util.js +2 -4
  66. package/lib/compile/to_asyncapi.js +1 -1
  67. package/lib/env/schema.js +16 -0
  68. package/lib/env/schemas/cds-rc.js +1 -76
  69. package/lib/import/importapi.js +2 -3
  70. package/lib/import/message.js +0 -2
  71. package/lib/init/constants.js +2 -1
  72. package/lib/init/index.js +2 -2
  73. package/lib/init/merge.js +123 -280
  74. package/lib/init/plugin.js +3 -1
  75. package/lib/init/projectReader.js +22 -6
  76. package/lib/init/registries/xs-app.js +3 -5
  77. package/lib/init/template/ai/files/mta.yaml.hbs +1 -1
  78. package/lib/init/template/ai/index.js +14 -2
  79. package/lib/init/template/ams/index.js +2 -2
  80. package/lib/init/template/app-frontend/files/containerize.yaml.hbs +2 -2
  81. package/lib/init/template/app-frontend/index.js +4 -4
  82. package/lib/init/template/application-logging/index.js +2 -2
  83. package/lib/init/template/approuter/files/package.json +1 -1
  84. package/lib/init/template/approuter/index.js +8 -3
  85. package/lib/init/template/attachments/files/package.json.hbs +1 -1
  86. package/lib/init/template/attachments/index.js +2 -2
  87. package/lib/init/template/audit-logging/index.js +2 -2
  88. package/lib/init/template/cloud-logging/files/package.json.hbs +4 -4
  89. package/lib/init/template/cloud-logging/index.js +2 -2
  90. package/lib/init/template/completion/completionSetup.js +36 -39
  91. package/lib/init/template/connectivity/index.js +2 -2
  92. package/lib/init/template/data/as-csv.js +15 -5
  93. package/lib/init/template/data/as-json.js +117 -42
  94. package/lib/init/template/data/index.js +16 -2
  95. package/lib/init/template/destination/index.js +2 -2
  96. package/lib/init/template/dynatrace/files/package.json.hbs +3 -3
  97. package/lib/init/template/dynatrace/index.js +2 -2
  98. package/lib/init/template/enterprise-messaging/index.js +2 -2
  99. package/lib/init/template/enterprise-messaging-shared/index.js +2 -2
  100. package/lib/init/template/extensibility/files/mta.yaml.hbs +11 -0
  101. package/lib/init/template/extensibility/files/xs-security.json.hbs +1 -1
  102. package/lib/init/template/extensibility/index.js +3 -3
  103. package/lib/init/template/github-actions/index.js +2 -2
  104. package/lib/init/template/hana/index.js +3 -2
  105. package/lib/init/template/hana-serverless/files/db/package.json +14 -0
  106. package/lib/init/template/hana-serverless/files/identity.values.yaml.hbs +10 -0
  107. package/lib/init/template/hana-serverless/files/mta.yaml.hbs +64 -0
  108. package/lib/init/template/hana-serverless/files/package.json.hbs +35 -0
  109. package/lib/init/template/hana-serverless/files/src/.hdiconfig +139 -0
  110. package/lib/init/template/hana-serverless/files/undeploy.json +7 -0
  111. package/lib/init/template/hana-serverless/files/values.yaml.hbs +18 -0
  112. package/lib/init/template/hana-serverless/index.js +184 -0
  113. package/lib/init/template/html5-repo/files/containerize.yaml.hbs +2 -2
  114. package/lib/init/template/html5-repo/files/mta.yaml.hbs +5 -0
  115. package/lib/init/template/html5-repo/index.js +18 -14
  116. package/lib/init/template/http/index.js +123 -26
  117. package/lib/init/template/ias/index.js +2 -2
  118. package/lib/init/template/kafka/index.js +2 -2
  119. package/lib/init/template/kyma/index.js +7 -5
  120. package/lib/init/template/malware-scanner/index.js +2 -2
  121. package/lib/init/template/mta/files/mta.yaml.hbs +1 -1
  122. package/lib/init/template/multitenancy/index.js +18 -3
  123. package/lib/init/template/notifications/index.js +2 -2
  124. package/lib/init/template/portal/files/mta.yaml.hbs +4 -0
  125. package/lib/init/template/portal/index.js +13 -8
  126. package/lib/init/template/postgres/index.js +2 -2
  127. package/lib/init/template/redis/index.js +2 -2
  128. package/lib/init/template/sample/files/db/currencies.cds +2 -0
  129. package/lib/init/template/sample/files/db/data/sap.capire.bookshop-Authors.csv +1 -1
  130. package/lib/init/template/tiny-sample/files/nodejs/db/data/CatalogService.Books.csv +2 -2
  131. package/lib/init/template/workzone-standard/index.js +5 -5
  132. package/lib/init/template/xsuaa/index.js +20 -2
  133. package/lib/lint/eslintHelp.json +1 -1
  134. package/lib/mtx/auth_manager.js +103 -37
  135. package/lib/mtx/params.js +3 -2
  136. package/lib/mtx/settings_manager.js +45 -28
  137. package/lib/mtx/tenant_action.js +0 -1
  138. package/lib/mtx/util/credentials.js +62 -0
  139. package/node_modules/@cap-js/db-service/CHANGELOG.md +17 -0
  140. package/node_modules/@cap-js/db-service/lib/common/generic-pool.js +4 -7
  141. package/node_modules/@cap-js/db-service/lib/cqn2pql.js +1 -1
  142. package/node_modules/@cap-js/db-service/lib/cqn2sql.js +15 -11
  143. package/node_modules/@cap-js/db-service/lib/cqn4sql.js +119 -19
  144. package/node_modules/@cap-js/db-service/lib/infer/index.js +27 -16
  145. package/node_modules/@cap-js/db-service/lib/recursion-guard.js +40 -0
  146. package/node_modules/@cap-js/db-service/lib/search.js +1 -1
  147. package/node_modules/@cap-js/db-service/package.json +1 -1
  148. package/node_modules/@cap-js/sqlite/CHANGELOG.md +19 -0
  149. package/node_modules/@cap-js/sqlite/lib/SQLiteService.js +110 -14
  150. package/node_modules/@cap-js/sqlite/package.json +3 -3
  151. package/node_modules/@sap/cds/CHANGELOG.md +57 -0
  152. package/node_modules/@sap/cds/app/index.js +5 -4
  153. package/node_modules/@sap/cds/eslint.config.mjs +1 -0
  154. package/node_modules/@sap/cds/lib/compile/minify.js +14 -10
  155. package/node_modules/@sap/cds/lib/env/cds-env.js +1 -1
  156. package/node_modules/@sap/cds/lib/env/cds-requires.js +22 -11
  157. package/node_modules/@sap/cds/lib/env/defaults.js +4 -1
  158. package/node_modules/@sap/cds/lib/env/schemas/cds-rc.js +5 -2
  159. package/node_modules/@sap/cds/lib/plugins.js +9 -5
  160. package/node_modules/@sap/cds/lib/req/spawn.js +1 -1
  161. package/node_modules/@sap/cds/lib/srv/srv-dispatch.js +1 -1
  162. package/node_modules/@sap/cds/lib/srv/srv-models.js +1 -1
  163. package/node_modules/@sap/cds/lib/utils/cds-utils.js +2 -1
  164. package/node_modules/@sap/cds/libx/_runtime/common/generic/assert.js +2 -3
  165. package/node_modules/@sap/cds/libx/_runtime/common/generic/auth/restrict.js +8 -1
  166. package/node_modules/@sap/cds/libx/_runtime/common/generic/crud.js +18 -8
  167. package/node_modules/@sap/cds/libx/_runtime/fiori/lean-draft.js +25 -17
  168. package/node_modules/@sap/cds/libx/_runtime/messaging/enterprise-messaging-utils/registerEndpoints.js +9 -3
  169. package/node_modules/@sap/cds/libx/_runtime/remote/Service.js +4 -19
  170. package/node_modules/@sap/cds/libx/_runtime/remote/utils/LruCache.js +42 -0
  171. package/node_modules/@sap/cds/libx/_runtime/remote/utils/client.js +14 -4
  172. package/node_modules/@sap/cds/libx/_runtime/remote/utils/cloudSdkProvider.js +2 -9
  173. package/node_modules/@sap/cds/libx/_runtime/remote/utils/destinationClient.js +150 -0
  174. package/node_modules/@sap/cds/libx/_runtime/remote/utils/error.js +13 -0
  175. package/node_modules/@sap/cds/libx/_runtime/remote/utils/fetchClient.js +26 -18
  176. package/node_modules/@sap/cds/libx/_runtime/remote/utils/query.js +34 -23
  177. package/node_modules/@sap/cds/libx/_runtime/remote/utils/token.js +82 -0
  178. package/node_modules/@sap/cds/libx/_runtime/ucl/Service.js +36 -189
  179. package/node_modules/@sap/cds/libx/common/utils/streaming.js +16 -16
  180. package/node_modules/@sap/cds/libx/http/location.js +3 -3
  181. package/node_modules/@sap/cds/libx/odata/middleware/batch.js +16 -10
  182. package/node_modules/@sap/cds/libx/odata/middleware/metadata.js +9 -6
  183. package/node_modules/@sap/cds/libx/odata/middleware/service-document.js +1 -1
  184. package/node_modules/@sap/cds/libx/odata/parse/afterburner.js +19 -3
  185. package/node_modules/@sap/cds/libx/odata/parse/cqn2odata.js +83 -86
  186. package/node_modules/@sap/cds/libx/queue/SchedulingService.js +17 -2
  187. package/node_modules/@sap/cds/libx/queue/processing.js +1 -3
  188. package/node_modules/@sap/cds/libx/rest/RestAdapter.js +3 -7
  189. package/node_modules/@sap/cds/libx/rest/middleware/delete.js +3 -3
  190. package/node_modules/@sap/cds/libx/rest/middleware/parse.js +13 -8
  191. package/node_modules/@sap/cds/libx/rest/middleware/read.js +3 -3
  192. package/node_modules/@sap/cds/libx/rest/middleware/upsert.js +2 -2
  193. package/node_modules/@sap/cds/package.json +1 -1
  194. package/node_modules/@sap/cds-compiler/CHANGELOG.md +75 -8
  195. package/node_modules/@sap/cds-compiler/bin/cdsc.js +2 -2
  196. package/node_modules/@sap/cds-compiler/doc/IncompatibleChanges_v7.md +46 -19
  197. package/node_modules/@sap/cds-compiler/lib/api/main.js +10 -7
  198. package/node_modules/@sap/cds-compiler/lib/api/options.js +8 -2
  199. package/node_modules/@sap/cds-compiler/lib/base/csnRefs.js +5 -2
  200. package/node_modules/@sap/cds-compiler/lib/base/message-registry.js +4 -0
  201. package/node_modules/@sap/cds-compiler/lib/base/optionProcessor.js +12 -0
  202. package/node_modules/@sap/cds-compiler/lib/checks/enricher.js +1 -0
  203. package/node_modules/@sap/cds-compiler/lib/compiler/assert-consistency.js +8 -7
  204. package/node_modules/@sap/cds-compiler/lib/compiler/checks.js +3 -3
  205. package/node_modules/@sap/cds-compiler/lib/compiler/define.js +301 -75
  206. package/node_modules/@sap/cds-compiler/lib/compiler/dictionaries.js +2 -0
  207. package/node_modules/@sap/cds-compiler/lib/compiler/extend.js +40 -26
  208. package/node_modules/@sap/cds-compiler/lib/compiler/populate.js +45 -60
  209. package/node_modules/@sap/cds-compiler/lib/compiler/propagator.js +16 -7
  210. package/node_modules/@sap/cds-compiler/lib/compiler/resolve.js +48 -18
  211. package/node_modules/@sap/cds-compiler/lib/compiler/shared.js +7 -6
  212. package/node_modules/@sap/cds-compiler/lib/compiler/tweak-assocs.js +62 -50
  213. package/node_modules/@sap/cds-compiler/lib/compiler/utils.js +29 -14
  214. package/node_modules/@sap/cds-compiler/lib/edm/edmAnnoPreprocessor.js +6 -5
  215. package/node_modules/@sap/cds-compiler/lib/gen/CdlGrammar.checksum +1 -1
  216. package/node_modules/@sap/cds-compiler/lib/gen/CdlParser.js +1119 -1109
  217. package/node_modules/@sap/cds-compiler/lib/gen/Dictionary.json +19 -3
  218. package/node_modules/@sap/cds-compiler/lib/json/from-csn.js +10 -16
  219. package/node_modules/@sap/cds-compiler/lib/json/to-csn.js +58 -39
  220. package/node_modules/@sap/cds-compiler/lib/main.d.ts +8 -0
  221. package/node_modules/@sap/cds-compiler/lib/main.js +1 -0
  222. package/node_modules/@sap/cds-compiler/lib/model/csnUtils.js +4 -0
  223. package/node_modules/@sap/cds-compiler/lib/parsers/AstBuildingParser.js +2 -1
  224. package/node_modules/@sap/cds-compiler/lib/parsers/XprTree.js +8 -0
  225. package/node_modules/@sap/cds-compiler/lib/render/toCdl.js +22 -1
  226. package/node_modules/@sap/cds-compiler/lib/render/toSql.js +17 -2
  227. package/node_modules/@sap/cds-compiler/lib/render/utils/common.js +6 -1
  228. package/node_modules/@sap/cds-compiler/lib/render/utils/operators.js +27 -0
  229. package/node_modules/@sap/cds-compiler/lib/render/utils/standardDatabaseFunctions.js +125 -3
  230. package/node_modules/@sap/cds-compiler/lib/tool-lib/revealInternalProperties.js +2 -1
  231. package/node_modules/@sap/cds-compiler/lib/transform/db/applyTransformations.js +15 -0
  232. package/node_modules/@sap/cds-compiler/lib/transform/db/associations.js +10 -2
  233. package/node_modules/@sap/cds-compiler/lib/transform/db/backlinks.js +22 -6
  234. package/node_modules/@sap/cds-compiler/lib/transform/db/constraints.js +62 -1
  235. package/node_modules/@sap/cds-compiler/lib/transform/db/flattening.js +4 -3
  236. package/node_modules/@sap/cds-compiler/lib/transform/effective/annotations.js +40 -0
  237. package/node_modules/@sap/cds-compiler/lib/transform/effective/flattening.js +17 -1
  238. package/node_modules/@sap/cds-compiler/lib/transform/effective/main.js +20 -0
  239. package/node_modules/@sap/cds-compiler/lib/transform/fioriTreeViews.js +12 -1
  240. package/node_modules/@sap/cds-compiler/lib/transform/forRelationalDB.js +7 -2
  241. package/node_modules/@sap/cds-compiler/lib/transform/odata/adaptAnnotationRefs.js +11 -5
  242. package/node_modules/@sap/cds-compiler/lib/transform/translateAssocsToJoins.js +48 -10
  243. package/node_modules/@sap/cds-compiler/package.json +1 -1
  244. package/node_modules/@sap/cds-mtxs/CHANGELOG.md +49 -0
  245. package/node_modules/@sap/cds-mtxs/bin/cds-mtx-migrate.js +26 -5
  246. package/node_modules/@sap/cds-mtxs/bin/cds-mtx.js +37 -16
  247. package/node_modules/@sap/cds-mtxs/lib/utils.js +23 -7
  248. package/node_modules/@sap/cds-mtxs/package.json +1 -1
  249. package/node_modules/@sap/cds-mtxs/srv/cf/abstract-provisioning-service.js +63 -8
  250. package/node_modules/@sap/cds-mtxs/srv/cf/saas-provisioning-service.js +1 -1
  251. package/node_modules/@sap/cds-mtxs/srv/cf/sms-provisioning-service.js +23 -3
  252. package/node_modules/@sap/cds-mtxs/srv/extensibility/compat/update.js +15 -0
  253. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/annotations.js +2 -2
  254. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/config.js +2 -0
  255. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/index.js +2 -0
  256. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/protected-namespace.js +45 -0
  257. package/node_modules/@sap/cds-mtxs/srv/extensibility-service.js +30 -16
  258. package/node_modules/@sap/cds-mtxs/srv/jobs-service.js +49 -10
  259. package/node_modules/@sap/cds-mtxs/srv/model-provider.js +28 -4
  260. package/node_modules/@sap/cds-mtxs/srv/plugins/common.js +19 -12
  261. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/ctnr-mgr-base.js +1 -1
  262. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/hdi-ctnr-mgr.js +6 -3
  263. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/serverless.js +271 -0
  264. package/node_modules/@sap/cds-mtxs/srv/plugins/hana.js +7 -10
  265. package/node_modules/@sap/cds-mtxs/srv/worker/job-worker-pool.js +212 -0
  266. package/node_modules/@sap/cds-mtxs/srv/worker/job-worker.js +61 -0
  267. package/node_modules/@sap/xsenv/CHANGELOG.md +7 -0
  268. package/node_modules/@sap/xsenv/package.json +10 -7
  269. package/node_modules/body-parser/node_modules/content-type/README.md +2 -0
  270. package/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +20 -0
  271. package/node_modules/body-parser/node_modules/content-type/dist/index.js +20 -14
  272. package/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -1
  273. package/node_modules/body-parser/node_modules/content-type/package.json +1 -1
  274. package/node_modules/hdb/cfg/VERSION +1 -1
  275. package/node_modules/hdb/lib/protocol/ClientInfo.js +16 -3
  276. package/node_modules/hdb/lib/protocol/Connection.js +1 -0
  277. package/node_modules/hdb/package.json +3 -2
  278. package/node_modules/negotiator/lib/accept.js +54 -0
  279. package/node_modules/negotiator/lib/charset.js +10 -34
  280. package/node_modules/negotiator/lib/encoding.js +9 -30
  281. package/node_modules/negotiator/lib/language.js +15 -36
  282. package/node_modules/negotiator/lib/mediaType.js +16 -134
  283. package/node_modules/negotiator/node_modules/content-type/LICENSE +22 -0
  284. package/node_modules/negotiator/node_modules/content-type/README.md +71 -0
  285. package/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +46 -0
  286. package/node_modules/negotiator/node_modules/content-type/dist/index.js +176 -0
  287. package/node_modules/negotiator/node_modules/content-type/dist/index.js.map +1 -0
  288. package/node_modules/negotiator/node_modules/content-type/package.json +52 -0
  289. package/node_modules/negotiator/package.json +16 -10
  290. package/node_modules/qs/.github/THREAT_MODEL.md +3 -3
  291. package/node_modules/qs/CHANGELOG.md +15 -0
  292. package/node_modules/qs/README.md +19 -1
  293. package/node_modules/qs/dist/qs.js +21 -21
  294. package/node_modules/qs/eslint.config.mjs +1 -1
  295. package/node_modules/qs/lib/parse.js +3 -4
  296. package/node_modules/qs/lib/stringify.js +23 -8
  297. package/node_modules/qs/lib/utils.js +10 -3
  298. package/node_modules/qs/package.json +4 -4
  299. package/node_modules/qs/test/parse.js +192 -3
  300. package/node_modules/qs/test/stringify.js +317 -0
  301. package/node_modules/qs/test/utils.js +12 -0
  302. package/node_modules/type-is/node_modules/content-type/README.md +2 -0
  303. package/node_modules/type-is/node_modules/content-type/dist/index.d.ts +20 -0
  304. package/node_modules/type-is/node_modules/content-type/dist/index.js +20 -14
  305. package/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -1
  306. package/node_modules/type-is/node_modules/content-type/package.json +1 -1
  307. package/node_modules/ws/lib/permessage-deflate.js +3 -1
  308. package/node_modules/ws/package.json +1 -1
  309. package/package.json +2 -2
  310. package/bin/completion/scripts/cds-bash.sh +0 -20
  311. package/bin/completion/scripts/cds-fish.fish +0 -13
  312. package/bin/completion/scripts/cds-ps.ps1 +0 -19
  313. package/bin/completion/scripts/cds-zsh.sh +0 -13
  314. package/lib/deploy/index.js +0 -25
  315. package/lib/import/asyncapi/importAsyncAPI.js +0 -33
  316. package/lib/import/asyncapi/index.js +0 -18
  317. package/lib/import/asyncapi/parserContext.js +0 -454
  318. package/lib/import/asyncapi/utils.js +0 -49
  319. package/node_modules/@sap/cds/libx/_runtime/ucl/queries.js +0 -61
  320. package/node_modules/negotiator/HISTORY.md +0 -114
  321. /package/{lib → bin}/upgrade/context.js +0 -0
  322. /package/{lib → bin}/upgrade/migrations/cds10/migrations.json +0 -0
  323. /package/{lib → bin}/upgrade/preflight/cds-version.js +0 -0
  324. /package/{lib → bin}/upgrade/preflight/project-type.js +0 -0
  325. /package/{lib → bin}/upgrade/steps/analyze/classification.js +0 -0
  326. /package/{lib → bin}/upgrade/steps/analyze/detector.js +0 -0
  327. /package/{lib → bin}/upgrade/steps/analyze/evaluator.js +0 -0
  328. /package/{lib → bin}/upgrade/steps/analyze/reporter.js +0 -0
  329. /package/{lib → bin}/upgrade/steps/analyze/setup.js +0 -0
  330. /package/{lib → bin}/upgrade/steps/analyze/utils/detection.js +0 -0
  331. /package/{lib → bin}/upgrade/steps/analyze/utils/files.js +0 -0
  332. /package/{lib → bin}/upgrade/steps/analyze/utils/grep.js +0 -0
  333. /package/{lib → bin}/upgrade/steps/analyze/utils/yaml.js +0 -0
  334. /package/{lib → bin}/upgrade/util/workspaces.js +0 -0
  335. /package/{lib → bin}/watch/esm-resolve-registration.js +0 -0
  336. /package/{lib → bin}/watch/livereload-server.js +0 -0
  337. /package/{lib → bin}/watch/node-watch.js +0 -0
  338. /package/{lib → bin}/watch/open.js +0 -0
  339. /package/{lib → bin}/watch/watcher.js +0 -0
  340. /package/node_modules/@sap/cds-mtxs/srv/worker/{pool.js → model-worker-pool.js} +0 -0
  341. /package/node_modules/@sap/cds-mtxs/srv/worker/{load.js → model-worker.js} +0 -0
@@ -32,11 +32,21 @@ module.exports = class DataTemplate extends require('../../plugin') {
32
32
  short: 'n',
33
33
  help: 'The number of records to be created for each entity.'
34
34
  },
35
+ 'composition-records': {
36
+ type: 'number',
37
+ help: 'The number of records to be created per to-many composition (default 2).'
38
+ },
35
39
  'content-type': {
36
40
  type: 'string',
37
41
  short: 'c',
38
42
  help: 'The content type of the data. One of "json" or "csv".'
39
43
  },
44
+ 'keys-only': {
45
+ type: 'boolean',
46
+ help: `Only fill key values into the generated CSV records, leaving all
47
+ other columns empty. Requires '--records'. Useful to generate placeholder
48
+ rows for an agent or human to fill in later.`
49
+ },
40
50
  'out': {
41
51
  type: 'string',
42
52
  short: 'o',
@@ -56,6 +66,8 @@ module.exports = class DataTemplate extends require('../../plugin') {
56
66
  } = cds.cli.options
57
67
  if (typeof records === 'string') records = parseInt(records)
58
68
  if (Number.isNaN(records) || records < 1) records = 1
69
+ let compositionRecords = cds.cli.options['composition-records']
70
+ if (typeof compositionRecords === 'string') compositionRecords = parseInt(compositionRecords)
59
71
 
60
72
  const [filterName, filterQueryStr] = (cds.cli.options['filter'] ?? cds.cli.options['data:for'] ?? '').split(':')
61
73
  const nameFilter = filterStringAsRegex(filterName)
@@ -78,12 +90,14 @@ module.exports = class DataTemplate extends require('../../plugin') {
78
90
  .filter (e => queries || !e.query) // remove all projection-like entities unless specified differently
79
91
  .reduce((all, e) => { all[e.name] = []; return all }, {})
80
92
 
81
- await asJson(data, csn, records, {contentType})
93
+ await asJson(data, csn, records, {contentType, compositionRecords})
82
94
 
83
95
  if (contentType === 'csv') {
84
96
  const headerOnly = !cds.cli.options['records'] // compat to old behavior which only creates headers
85
97
  if (headerOnly) console.log(`${dim('adding headers only, use --records to create random entries')}`)
86
- await asCsv(data, csn, Object.assign({ headerOnly }, dataForParams))
98
+ const keysOnly = !!cds.cli.options['keys-only']
99
+ if (keysOnly && headerOnly) console.log(`${dim('ignoring --keys-only, use --records to create entries')}`)
100
+ await asCsv(data, csn, Object.assign({ headerOnly, keysOnly }, dataForParams))
87
101
  }
88
102
 
89
103
  // write files
@@ -23,8 +23,8 @@ module.exports = class DestinationTemplate extends require('../../plugin') {
23
23
  await merge(__dirname, 'files', 'package.json.hbs').into(configFile, { with: project })
24
24
  }
25
25
 
26
- async combine() {
27
- const project = readProject()
26
+ async combine(facet) {
27
+ const project = readProject(facet)
28
28
  const { addApprouter, addMultitenancy, addKyma, addMta, hasMta, srv, isJava } = project
29
29
 
30
30
  if (addMta || (addApprouter || addMultitenancy) && hasMta) {
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "dependencies": {
3
- "@cap-js/telemetry": ">=0",
4
- "@opentelemetry/exporter-metrics-otlp-proto": "<0.200"{{#hasKyma}},
5
- "@opentelemetry/host-metrics": "<0.200"
3
+ "@cap-js/telemetry": "^2",
4
+ "@opentelemetry/exporter-metrics-otlp-proto": ">=0.200"{{#hasKyma}},
5
+ "@opentelemetry/instrumentation-host-metrics": ">=0.2"
6
6
  {{/hasKyma}}
7
7
  },
8
8
  "cds": {
@@ -23,8 +23,8 @@ module.exports = class extends require('../../plugin') {
23
23
  }
24
24
  }
25
25
 
26
- async combine() {
27
- const project = readProject()
26
+ async combine(facet) {
27
+ const project = readProject(facet)
28
28
  const { appName, addMta, addKyma, isJava, addMultitenancy, srv } = project
29
29
 
30
30
  if (addMta || addMultitenancy) {
@@ -50,8 +50,8 @@ module.exports = class EnterpriseMessagingTemplate extends require('../../plugin
50
50
  }
51
51
  }
52
52
 
53
- async combine() {
54
- const project = readProject()
53
+ async combine(facet) {
54
+ const project = readProject(facet)
55
55
  const { addXsuaa, hasXsuaa, addKyma, addMta, srv, appName } = project
56
56
 
57
57
  if (addMta) {
@@ -17,8 +17,8 @@ module.exports = class EnterpriseMessagingSharedTemplate extends require('../ent
17
17
  return 'messaging via shared SAP Event Mesh'
18
18
  }
19
19
 
20
- async combine() {
21
- const project = readProject()
20
+ async combine(facet) {
21
+ const project = readProject(facet)
22
22
  const { addMta, addKyma, srv } = project
23
23
 
24
24
  if (addMta) {
@@ -0,0 +1,11 @@
1
+ ---
2
+ resources:
3
+ - name: {{appName}}-auth
4
+ type: org.cloudfoundry.managed-service
5
+ parameters:
6
+ service: xsuaa
7
+ config:
8
+ role-collections:
9
+ - name: 'ExtensionDeveloper ({{appName}} ${org}-${space})'
10
+ description: 'generated'
11
+ role-template-references: ['$XSAPPNAME.ExtensionDeveloper']
@@ -8,7 +8,7 @@
8
8
  "role-templates": [
9
9
  {
10
10
  "name": "ExtensionDeveloper",
11
- "description": "Extension development including UIFlex extensibility",
11
+ "description": "Extend CAP applications via extension projects",
12
12
  "scope-references": [
13
13
  "$XSAPPNAME.cds.ExtensionDeveloper"
14
14
  ]
@@ -24,14 +24,14 @@ module.exports = class ExtensibilityTemplate extends require('../../plugin') {
24
24
  await merge(__dirname, 'files/package.json.hbs').into(configFile, { project })
25
25
  }
26
26
 
27
- async combine() {
28
- const project = readProject()
27
+ async combine(facet) {
28
+ const project = readProject(facet)
29
29
  const { addXsuaa } = project
30
30
  if (addXsuaa) {
31
31
  await merge(__dirname, 'files', 'xs-security.json.hbs').into('xs-security.json', {
32
32
  project,
33
33
  additions: [
34
- { in: 'scopes', where: { name: '$XSAPPNAME.cds.ExtensionDeveloper' }},
34
+ { in: 'scopes', where: { name: '$XSAPPNAME.cds.ExtensionDeveloper' }},
35
35
  { in: 'role-templates', where: { name: 'ExtensionDeveloper' }}
36
36
  ]
37
37
  })
@@ -49,8 +49,8 @@ module.exports = class GitHubActionTemplate extends require('../../plugin') {
49
49
  }
50
50
  }
51
51
 
52
- async combine() {
53
- const project = readProject()
52
+ async combine(facet) {
53
+ const project = readProject(facet)
54
54
  const { addMta, addKyma } = project, { force } = cds.cli.options
55
55
  project.sap = cds.cli.options.sap
56
56
  if (addMta) {
@@ -15,6 +15,7 @@ module.exports = class HanaTemplate extends require('../../plugin') {
15
15
 
16
16
  static hasInProduction(env) {
17
17
  const { dependencies, isJava } = readProject()
18
+ if (cds.cli.options?.add?.has('hana-serverless') || env.requires?.db?.kind === 'hana-serverless' || env.requires?.db?.serverless) return false
18
19
  return dependencies?.['@cap-js/hana'] || isJava && env.requires?.db?.kind === 'hana'
19
20
  }
20
21
 
@@ -38,8 +39,8 @@ module.exports = class HanaTemplate extends require('../../plugin') {
38
39
  await sort('package.json', 'dependencies')
39
40
  }
40
41
 
41
- async combine() {
42
- const project = readProject()
42
+ async combine(facet) {
43
+ const project = readProject(facet)
43
44
  const { addMta, hasMta, addMultitenancy, addKyma, isJava, hasKyma, hasMultitenancy, srv } = project
44
45
 
45
46
  if (addMta || addMultitenancy && hasMta) {
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "deploy",
3
+ "dependencies": {
4
+ "hdb": "^2.0.0",
5
+ "@sap/hdi-deploy": "^5"
6
+ },
7
+ "engines": {
8
+ "node": "^24.0.0"
9
+ },
10
+ "scripts": {
11
+ "start": "node node_modules/@sap/hdi-deploy/deploy.js --use-hdb --parameter com.sap.hana.di.table/try_fast_table_migration=true",
12
+ "build": "npm i && npx cds build .. --for hana --production"
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ identity:
2
+ serviceOfferingName: identity
3
+ servicePlanName: application
4
+ parameters:
5
+ display-name: {{appName}}
6
+ consumed-services:
7
+ - service-instance-name: {{appName}}-db
8
+ {{#hasMultitenancy}}
9
+ multi-tenant: true
10
+ {{/hasMultitenancy}}
@@ -0,0 +1,64 @@
1
+ ---
2
+ modules:
3
+ - name: {{appName}}-srv
4
+ type: {{language}}
5
+ path: {{& srv.path}}
6
+ requires:
7
+ - name: {{appName}}-db
8
+ - name: {{appName}}-hana-auth
9
+ parameters:
10
+ config:
11
+ credential-type: X509_GENERATED
12
+ app-identifier: srv
13
+
14
+ - name: {{appName}}-db-deployer
15
+ type: hdb
16
+ path: {{& db.path}}
17
+ parameters:
18
+ buildpack: nodejs_buildpack
19
+ {{#isJava}}
20
+ build-parameters:
21
+ builder: custom
22
+ commands:
23
+ - npm run build
24
+ {{/isJava}}
25
+ requires:
26
+ - name: {{appName}}-db
27
+ - name: {{appName}}-hana-auth
28
+ parameters:
29
+ config:
30
+ credential-type: X509_GENERATED
31
+ app-identifier: db-deployer
32
+
33
+ - name: {{appName}}-mtx
34
+ type: nodejs
35
+ path: {{#isNodejs}}gen/{{/isNodejs}}mtx/sidecar
36
+ requires:
37
+ - name: {{appName}}-db
38
+ - name: {{appName}}-hana-auth
39
+ parameters:
40
+ config:
41
+ credential-type: X509_GENERATED
42
+ app-identifier: mtx
43
+
44
+ resources:
45
+ - name: {{appName}}-db
46
+ type: org.cloudfoundry.managed-service
47
+ parameters:
48
+ service: hana-cloud
49
+ service-plan: serverless
50
+ config:
51
+ auto_subscription:
52
+ type: subscription-manager
53
+ subscribe_with_consuming_app: true
54
+
55
+ - name: {{appName}}-hana-auth
56
+ type: org.cloudfoundry.managed-service
57
+ processed-after:
58
+ - {{appName}}-db
59
+ parameters:
60
+ service: identity
61
+ service-plan: application
62
+ config:
63
+ consumed-services:
64
+ - service-instance-name: {{appName}}-db
@@ -0,0 +1,35 @@
1
+ {
2
+ {{#isNodejs}}
3
+ "dependencies": {
4
+ "@cap-js/hana": "^3"
5
+ },
6
+ "cds": {
7
+ "requires": {
8
+ "[production]": {
9
+ {{#shortcut}}
10
+ "db": "hana-serverless"
11
+ {{/shortcut}}
12
+ {{^shortcut}}
13
+ "db": {
14
+ "kind": "hana-serverless"
15
+ }
16
+ {{/shortcut}}
17
+ }
18
+ }
19
+ }
20
+ {{/isNodejs}}
21
+ {{#isJava}}
22
+ "requires": {
23
+ "[production]": {
24
+ {{#shortcut}}
25
+ "db": "hana-serverless"
26
+ {{/shortcut}}
27
+ {{^shortcut}}
28
+ "db": {
29
+ "kind": "hana-serverless"
30
+ }
31
+ {{/shortcut}}
32
+ }
33
+ }
34
+ {{/isJava}}
35
+ }
@@ -0,0 +1,139 @@
1
+ {
2
+ "file_suffixes": {
3
+ "csv": {
4
+ "plugin_name": "com.sap.hana.di.tabledata.source"
5
+ },
6
+ "hdbafllangprocedure": {
7
+ "plugin_name": "com.sap.hana.di.afllangprocedure"
8
+ },
9
+ "hdbanalyticprivilege": {
10
+ "plugin_name": "com.sap.hana.di.analyticprivilege"
11
+ },
12
+ "hdbcalculationview": {
13
+ "plugin_name": "com.sap.hana.di.calculationview"
14
+ },
15
+ "hdbcollection": {
16
+ "plugin_name": "com.sap.hana.di.collection"
17
+ },
18
+ "hdbconstraint": {
19
+ "plugin_name": "com.sap.hana.di.constraint"
20
+ },
21
+ "hdbdropcreatetable": {
22
+ "plugin_name": "com.sap.hana.di.dropcreatetable"
23
+ },
24
+ "hdbflowgraph": {
25
+ "plugin_name": "com.sap.hana.di.flowgraph"
26
+ },
27
+ "hdbfunction": {
28
+ "plugin_name": "com.sap.hana.di.function"
29
+ },
30
+ "hdbgraphworkspace": {
31
+ "plugin_name": "com.sap.hana.di.graphworkspace"
32
+ },
33
+ "hdbhadoopmrjob": {
34
+ "plugin_name": "com.sap.hana.di.virtualfunctionpackage.hadoop"
35
+ },
36
+ "hdbindex": {
37
+ "plugin_name": "com.sap.hana.di.index"
38
+ },
39
+ "hdblibrary": {
40
+ "plugin_name": "com.sap.hana.di.library"
41
+ },
42
+ "hdbmigrationtable": {
43
+ "plugin_name": "com.sap.hana.di.table.migration"
44
+ },
45
+ "hdbprocedure": {
46
+ "plugin_name": "com.sap.hana.di.procedure"
47
+ },
48
+ "hdbprojectionview": {
49
+ "plugin_name": "com.sap.hana.di.projectionview"
50
+ },
51
+ "hdbprojectionviewconfig": {
52
+ "plugin_name": "com.sap.hana.di.projectionview.config"
53
+ },
54
+ "hdbreptask": {
55
+ "plugin_name": "com.sap.hana.di.reptask"
56
+ },
57
+ "hdbresultcache": {
58
+ "plugin_name": "com.sap.hana.di.resultcache"
59
+ },
60
+ "hdbrole": {
61
+ "plugin_name": "com.sap.hana.di.role"
62
+ },
63
+ "hdbroleconfig": {
64
+ "plugin_name": "com.sap.hana.di.role.config"
65
+ },
66
+ "hdbsearchruleset": {
67
+ "plugin_name": "com.sap.hana.di.searchruleset"
68
+ },
69
+ "hdbsequence": {
70
+ "plugin_name": "com.sap.hana.di.sequence"
71
+ },
72
+ "hdbstatistics": {
73
+ "plugin_name": "com.sap.hana.di.statistics"
74
+ },
75
+ "hdbstructuredprivilege": {
76
+ "plugin_name": "com.sap.hana.di.structuredprivilege"
77
+ },
78
+ "hdbsynonym": {
79
+ "plugin_name": "com.sap.hana.di.synonym"
80
+ },
81
+ "hdbsynonymconfig": {
82
+ "plugin_name": "com.sap.hana.di.synonym.config"
83
+ },
84
+ "hdbsystemversioning": {
85
+ "plugin_name": "com.sap.hana.di.systemversioning"
86
+ },
87
+ "hdbtable": {
88
+ "plugin_name": "com.sap.hana.di.table"
89
+ },
90
+ "hdbtabledata": {
91
+ "plugin_name": "com.sap.hana.di.tabledata"
92
+ },
93
+ "hdbtabletype": {
94
+ "plugin_name": "com.sap.hana.di.tabletype"
95
+ },
96
+ "hdbtrigger": {
97
+ "plugin_name": "com.sap.hana.di.trigger"
98
+ },
99
+ "hdbview": {
100
+ "plugin_name": "com.sap.hana.di.view"
101
+ },
102
+ "hdbvirtualfunction": {
103
+ "plugin_name": "com.sap.hana.di.virtualfunction"
104
+ },
105
+ "hdbvirtualfunctionconfig": {
106
+ "plugin_name": "com.sap.hana.di.virtualfunction.config"
107
+ },
108
+ "hdbvirtualpackagehadoop": {
109
+ "plugin_name": "com.sap.hana.di.virtualpackage.hadoop"
110
+ },
111
+ "hdbvirtualpackagesparksql": {
112
+ "plugin_name": "com.sap.hana.di.virtualpackage.sparksql"
113
+ },
114
+ "hdbvirtualprocedure": {
115
+ "plugin_name": "com.sap.hana.di.virtualprocedure"
116
+ },
117
+ "hdbvirtualprocedureconfig": {
118
+ "plugin_name": "com.sap.hana.di.virtualprocedure.config"
119
+ },
120
+ "hdbvirtualtable": {
121
+ "plugin_name": "com.sap.hana.di.virtualtable"
122
+ },
123
+ "hdbvirtualtableconfig": {
124
+ "plugin_name": "com.sap.hana.di.virtualtable.config"
125
+ },
126
+ "properties": {
127
+ "plugin_name": "com.sap.hana.di.tabledata.properties"
128
+ },
129
+ "tags": {
130
+ "plugin_name": "com.sap.hana.di.tabledata.properties"
131
+ },
132
+ "txt": {
133
+ "plugin_name": "com.sap.hana.di.copyonly"
134
+ },
135
+ "hdbeshconfig": {
136
+ "plugin_name": "com.sap.hana.di.eshconfig"
137
+ }
138
+ }
139
+ }
@@ -0,0 +1,7 @@
1
+ [
2
+ "src/gen/**/*.hdbview",
3
+ "src/gen/**/*.hdbindex",
4
+ "src/gen/**/*.hdbconstraint",
5
+ "src/gen/**/*_drafts.hdbtable",
6
+ "src/gen/**/*.hdbcalculationview"
7
+ ]
@@ -0,0 +1,18 @@
1
+ ---
2
+ srv:
3
+ bindings:
4
+ db:
5
+ serviceInstanceName: db
6
+ {{#hasMultitenancy}}
7
+ sidecar:
8
+ bindings:
9
+ db:
10
+ serviceInstanceName: db
11
+ {{/hasMultitenancy}}
12
+ db:
13
+ serviceOfferingName: hana-cloud
14
+ servicePlanName: serverless
15
+ parameters:
16
+ auto_subscription:
17
+ type: subscription-manager
18
+ subscribe_with_consuming_app: true
@@ -0,0 +1,184 @@
1
+ const { join } = require('path')
2
+ const cds = require('../../../cds')
3
+ const { read, write, exists, copy } = cds.utils
4
+ const { readProject } = require('../../projectReader')
5
+ const { merge, sort } = require('../../merge')
6
+ const mvn = require('../../mvn')
7
+
8
+ const { srv4, hdbDeployer, mtxSidecar4 } = require('../../registries/mta')
9
+
10
+ const serverlessDb = {
11
+ in: 'resources',
12
+ where: { type: 'org.cloudfoundry.managed-service', 'parameters.service': 'hana-cloud', 'parameters.service-plan': 'serverless' }
13
+ }
14
+
15
+ const identity = {
16
+ in: 'resources',
17
+ where: { type: 'org.cloudfoundry.managed-service', 'parameters.service': 'identity' }
18
+ }
19
+
20
+ module.exports = class HanaServerlessTemplate extends require('../../plugin') {
21
+
22
+ static help() {
23
+ return 'database support for SAP HANA Cloud serverless'
24
+ }
25
+
26
+ static hasInProduction(env) {
27
+ return cds.cli.options?.add?.has('hana-serverless')
28
+ || env.requires?.db?.kind === 'hana-serverless'
29
+ || env.requires?.db?.serverless
30
+ }
31
+
32
+ async run() {
33
+ const project = readProject()
34
+ const { isJava, configFile, db } = project
35
+ project.shortcut = !exists(configFile) || typeof (await read(configFile)).cds?.requires?.db !== 'object'
36
+
37
+ if (isJava) {
38
+ await copy(join(__dirname, 'files', 'db')).to(db.folder)
39
+ await mvn.add('hana')
40
+ }
41
+
42
+ await merge(__dirname, 'files/package.json.hbs').into(configFile, { with: project, forceOverwrite: true })
43
+
44
+ const packageJson = exists('package.json') ? await read('package.json') : null
45
+ if (packageJson?.dependencies) {
46
+ delete packageJson.dependencies['@sap/hana-client']
47
+ await write('package.json', packageJson, { spaces: 2 })
48
+ }
49
+ await sort('package.json', 'dependencies')
50
+ }
51
+
52
+ async combine(facet) {
53
+ const project = readProject(facet)
54
+ const { addMta, hasMta, addMultitenancy, addKyma, isJava, hasMultitenancy, srv } = project
55
+
56
+ if (addMta || addMultitenancy && hasMta) {
57
+ const existingIdentity = await this._existingIdentityName()
58
+ const srvModule = srv4(srv.path)
59
+
60
+ const relationships = [{
61
+ insert: [serverlessDb, 'name'],
62
+ into: [srvModule, 'requires', 'name']
63
+ }]
64
+ if (!existingIdentity) relationships.push({
65
+ insert: [identity, 'name'],
66
+ into: [srvModule, 'requires', 'name']
67
+ })
68
+
69
+ if (hasMultitenancy) {
70
+ const sidecar = mtxSidecar4(isJava ? 'mtx/sidecar' : 'gen/mtx/sidecar')
71
+ relationships.push({
72
+ insert: [serverlessDb, 'name'],
73
+ into: [sidecar, 'requires', 'name']
74
+ })
75
+ if (!existingIdentity) relationships.push({
76
+ insert: [identity, 'name'],
77
+ into: [sidecar, 'requires', 'name']
78
+ })
79
+ } else {
80
+ relationships.push({
81
+ insert: [serverlessDb, 'name'],
82
+ into: [hdbDeployer, 'requires', 'name']
83
+ })
84
+ if (!existingIdentity) relationships.push({
85
+ insert: [identity, 'name'],
86
+ into: [hdbDeployer, 'requires', 'name']
87
+ })
88
+ }
89
+
90
+ const modules = hasMultitenancy ? [srvModule] : [srvModule, hdbDeployer]
91
+ const additions = [...modules, serverlessDb]
92
+ if (!existingIdentity) additions.push(identity)
93
+ await merge(__dirname, 'files/mta.yaml.hbs').into('mta.yaml', {
94
+ with: project, additions, relationships
95
+ })
96
+
97
+ if (existingIdentity) await this._consumeServerlessFrom(existingIdentity)
98
+
99
+ if (hasMultitenancy) await this._alignSidecarDbKind()
100
+ }
101
+
102
+ if (addKyma) {
103
+ const KymaTemplate = require('../kyma')
104
+ const existingIdentity = await this._existingIdentityInChart()
105
+
106
+ await merge(__dirname, 'files/values.yaml.hbs').into('chart/values.yaml', { with: project })
107
+
108
+ if (existingIdentity) {
109
+ await this._consumeServerlessInChart(existingIdentity)
110
+ } else {
111
+ await merge(__dirname, 'files/identity.values.yaml.hbs').into('chart/values.yaml', { with: project })
112
+ await KymaTemplate.mergeDependency('service-instance', 'identity')
113
+ }
114
+
115
+ if (hasMultitenancy) await this._alignSidecarDbKind()
116
+ }
117
+ }
118
+
119
+ async _existingIdentityInChart() {
120
+ const { readYAML } = require('../../../util/fs')
121
+ const doc = await readYAML('chart/values.yaml')
122
+ if (!doc) return undefined
123
+ const js = doc.toJS?.() ?? doc
124
+ const identity = js?.identity
125
+ if (identity && identity.serviceOfferingName === 'identity') return 'identity'
126
+ return undefined
127
+ }
128
+
129
+ async _consumeServerlessInChart(identityKey) {
130
+ const { readYAML, writeYAML } = require('../../../util/fs')
131
+ const doc = await readYAML('chart/values.yaml')
132
+ if (!doc) return
133
+ const js = doc.toJS()
134
+ const identity = js[identityKey]
135
+ if (!identity) return
136
+ const parameters = (identity.parameters ??= {})
137
+ const consumed = (parameters['consumed-services'] ??= [])
138
+ const dbName = `${readProject().appName}-db`
139
+ if (!consumed.some(c => c?.['service-instance-name'] === dbName)) {
140
+ consumed.push({ 'service-instance-name': dbName })
141
+ }
142
+ await writeYAML('chart/values.yaml', js)
143
+ }
144
+
145
+ async _existingIdentityName() {
146
+ const { readYAML } = require('../../../util/fs')
147
+ const doc = await readYAML('mta.yaml')
148
+ if (!doc) return undefined
149
+ const js = doc.toJS?.() ?? doc
150
+ const resources = js?.resources || []
151
+ const found = resources.find(r => r?.parameters?.service === 'identity')
152
+ return found?.name
153
+ }
154
+
155
+ async _consumeServerlessFrom(identityName) {
156
+ const { readYAML, writeYAML } = require('../../../util/fs')
157
+ const doc = await readYAML('mta.yaml')
158
+ if (!doc) return
159
+ const js = doc.toJS()
160
+ const resource = (js.resources || []).find(r => r.name === identityName)
161
+ if (!resource) return
162
+ const config = ((resource.parameters ??= {}).config ??= {})
163
+ const consumed = (config['consumed-services'] ??= [])
164
+ const dbName = `${readProject().appName}-db`
165
+ if (!consumed.some(c => c?.['service-instance-name'] === dbName)) {
166
+ consumed.push({ 'service-instance-name': dbName })
167
+ }
168
+ const after = (resource['processed-after'] ??= [])
169
+ if (!after.includes(dbName)) after.push(dbName)
170
+ await writeYAML('mta.yaml', js)
171
+ }
172
+
173
+ async _alignSidecarDbKind() {
174
+ const sidecarPackageJson = join('mtx', 'sidecar', 'package.json')
175
+ if (!exists(sidecarPackageJson)) return
176
+ const packageJson = await read(sidecarPackageJson)
177
+ const requires = ((packageJson.cds ??= {}).requires ??= {})
178
+ const profile = (requires['[production]'] ??= {})
179
+ profile.db = 'hana-serverless'
180
+ const mt = (requires.multitenancy ??= {})
181
+ mt.serverless = { ...mt.serverless, autoSubscription: true }
182
+ await write(sidecarPackageJson, packageJson, { spaces: 2 })
183
+ }
184
+ }
@@ -7,7 +7,7 @@ modules:
7
7
  builder: proxy-unified-runtime-dmz.int.repositories.cloud.sap/builder/noble
8
8
  {{/hasKymaUnifiedRuntime}}
9
9
  {{^hasKymaUnifiedRuntime}}
10
- type: sapse/application-content-deployer-buildpack:1.4.0
10
+ type: sapse/application-content-deployer-buildpack:1.5.0
11
11
  builder: builder-jammy-base
12
12
  {{/hasKymaUnifiedRuntime}}
13
- path: app/html5-deployer
13
+ path: {{& html5DeployerPath}}