@sap/cds-dk 10.0.6 → 10.1.0

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 (326) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/bin/add.js +7 -23
  3. package/bin/bind.js +10 -0
  4. package/bin/build.js +20 -34
  5. package/bin/cds.js +1 -1
  6. package/bin/compile/index.js +15 -41
  7. package/bin/completion/completionFs.js +11 -8
  8. package/bin/completion/index.js +592 -80
  9. package/bin/completion/scripts/cds.fish +568 -0
  10. package/bin/completion/scripts/cds.ps1 +329 -0
  11. package/bin/completion/scripts/cds.sh +261 -0
  12. package/bin/completion/scripts/cds.zsh +230 -0
  13. package/bin/completion/templates/cds-tmpl.fish +65 -0
  14. package/bin/completion/templates/cds-tmpl.ps1 +208 -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 +7 -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/export.js +35 -5
  25. package/bin/help/export.md +3 -0
  26. package/bin/help.js +1 -5
  27. package/bin/import.js +6 -0
  28. package/bin/init.js +5 -24
  29. package/bin/inspect.js +6 -0
  30. package/bin/login.js +26 -20
  31. package/bin/pull.js +19 -6
  32. package/bin/push.js +19 -6
  33. package/bin/up.js +14 -11
  34. package/{lib → bin}/upgrade/constants.js +1 -1
  35. package/bin/{upgrade.js → upgrade/index.js} +2 -2
  36. package/{lib → bin}/upgrade/preflight/consistency.js +1 -1
  37. package/{lib → bin}/upgrade/preflight/index.js +1 -1
  38. package/{lib → bin}/upgrade/steps/analyze/index.js +1 -1
  39. package/{lib → bin}/upgrade/steps/install.js +1 -1
  40. package/{lib → bin}/upgrade/steps/openrewrite.js +1 -1
  41. package/{lib → bin}/upgrade/steps/removals.js +1 -1
  42. package/{lib → bin}/upgrade/steps/rewrite.js +1 -1
  43. package/{lib → bin}/upgrade/steps/verify.js +1 -1
  44. package/{lib/upgrade/index.js → bin/upgrade/upgrade.js} +2 -2
  45. package/{lib → bin}/upgrade/util/pom.js +2 -2
  46. package/{lib → bin}/upgrade/util/prompt.js +1 -1
  47. package/bin/util/containerize.js +8 -4
  48. package/bin/version.js +10 -1
  49. package/{lib → bin}/watch/hot-reload.js +1 -1
  50. package/bin/{watch.js → watch/index.js} +17 -9
  51. package/{lib → bin}/watch/livereload-connect.js +1 -1
  52. package/{lib → bin}/watch/vite-watch.js +1 -1
  53. package/{lib → bin}/watch/watched.js +2 -2
  54. package/lib/build/constants.js +1 -1
  55. package/lib/build/plugins/fiori/index.js +31 -2
  56. package/lib/build/plugins/internal.js +4 -2
  57. package/lib/build/plugins/mtx-sidecar/index.js +7 -8
  58. package/lib/build/plugins/nodejs/index.js +64 -7
  59. package/lib/compile/to_asyncapi.js +1 -1
  60. package/lib/env/schema.js +16 -0
  61. package/lib/env/schemas/cds-rc.js +1 -76
  62. package/lib/import/importapi.js +2 -3
  63. package/lib/import/message.js +0 -2
  64. package/lib/init/constants.js +2 -1
  65. package/lib/init/index.js +2 -2
  66. package/lib/init/merge.js +123 -280
  67. package/lib/init/plugin.js +3 -1
  68. package/lib/init/projectReader.js +22 -6
  69. package/lib/init/registries/xs-app.js +3 -5
  70. package/lib/init/template/ai/files/mta.yaml.hbs +1 -1
  71. package/lib/init/template/ai/index.js +14 -2
  72. package/lib/init/template/ams/index.js +2 -2
  73. package/lib/init/template/app-frontend/files/containerize.yaml.hbs +2 -2
  74. package/lib/init/template/app-frontend/index.js +4 -4
  75. package/lib/init/template/application-logging/index.js +2 -2
  76. package/lib/init/template/approuter/files/package.json +1 -1
  77. package/lib/init/template/approuter/index.js +8 -3
  78. package/lib/init/template/attachments/files/package.json.hbs +1 -1
  79. package/lib/init/template/attachments/index.js +2 -2
  80. package/lib/init/template/audit-logging/index.js +2 -2
  81. package/lib/init/template/cloud-logging/files/package.json.hbs +4 -4
  82. package/lib/init/template/cloud-logging/index.js +2 -2
  83. package/lib/init/template/completion/completionSetup.js +36 -39
  84. package/lib/init/template/connectivity/index.js +2 -2
  85. package/lib/init/template/data/as-csv.js +15 -5
  86. package/lib/init/template/data/as-json.js +114 -42
  87. package/lib/init/template/data/index.js +16 -2
  88. package/lib/init/template/destination/index.js +2 -2
  89. package/lib/init/template/dynatrace/files/package.json.hbs +3 -3
  90. package/lib/init/template/dynatrace/index.js +2 -2
  91. package/lib/init/template/enterprise-messaging/index.js +2 -2
  92. package/lib/init/template/enterprise-messaging-shared/index.js +2 -2
  93. package/lib/init/template/extensibility/files/mta.yaml.hbs +11 -0
  94. package/lib/init/template/extensibility/files/xs-security.json.hbs +1 -1
  95. package/lib/init/template/extensibility/index.js +3 -3
  96. package/lib/init/template/github-actions/index.js +2 -2
  97. package/lib/init/template/hana/index.js +3 -2
  98. package/lib/init/template/hana-serverless/files/db/package.json +14 -0
  99. package/lib/init/template/hana-serverless/files/identity.values.yaml.hbs +10 -0
  100. package/lib/init/template/hana-serverless/files/mta.yaml.hbs +64 -0
  101. package/lib/init/template/hana-serverless/files/package.json.hbs +35 -0
  102. package/lib/init/template/hana-serverless/files/src/.hdiconfig +139 -0
  103. package/lib/init/template/hana-serverless/files/undeploy.json +7 -0
  104. package/lib/init/template/hana-serverless/files/values.yaml.hbs +18 -0
  105. package/lib/init/template/hana-serverless/index.js +184 -0
  106. package/lib/init/template/html5-repo/files/containerize.yaml.hbs +2 -2
  107. package/lib/init/template/html5-repo/files/mta.yaml.hbs +5 -0
  108. package/lib/init/template/html5-repo/index.js +18 -14
  109. package/lib/init/template/http/index.js +123 -26
  110. package/lib/init/template/ias/index.js +2 -2
  111. package/lib/init/template/kafka/index.js +2 -2
  112. package/lib/init/template/kyma/index.js +7 -5
  113. package/lib/init/template/malware-scanner/index.js +2 -2
  114. package/lib/init/template/mta/files/mta.yaml.hbs +1 -1
  115. package/lib/init/template/multitenancy/index.js +18 -3
  116. package/lib/init/template/nodejs/index.js +4 -2
  117. package/lib/init/template/notifications/index.js +2 -2
  118. package/lib/init/template/portal/files/mta.yaml.hbs +4 -0
  119. package/lib/init/template/portal/index.js +13 -8
  120. package/lib/init/template/postgres/index.js +2 -2
  121. package/lib/init/template/redis/index.js +2 -2
  122. package/lib/init/template/sample/files/db/currencies.cds +2 -0
  123. package/lib/init/template/sample/files/db/data/sap.capire.bookshop-Authors.csv +1 -1
  124. package/lib/init/template/tiny-sample/files/nodejs/db/data/CatalogService.Books.csv +2 -2
  125. package/lib/init/template/workzone-standard/index.js +5 -5
  126. package/lib/init/template/xsuaa/index.js +20 -2
  127. package/lib/lint/eslintHelp.json +1 -1
  128. package/lib/mtx/auth_manager.js +103 -37
  129. package/lib/mtx/params.js +3 -2
  130. package/lib/mtx/settings_manager.js +45 -28
  131. package/lib/mtx/tenant_action.js +0 -1
  132. package/lib/mtx/util/credentials.js +62 -0
  133. package/node_modules/@cap-js/openapi/lib/compile/csdl.js +3 -3
  134. package/node_modules/@cap-js/openapi/lib/compile/csdl2openapi.js +111 -103
  135. package/node_modules/@cap-js/openapi/lib/compile/diagram.js +4 -4
  136. package/node_modules/@cap-js/openapi/lib/compile/types.d.ts +3 -1
  137. package/node_modules/@cap-js/openapi/package.json +3 -3
  138. package/node_modules/@sap/cds/CHANGELOG.md +64 -0
  139. package/node_modules/@sap/cds/app/index.js +5 -4
  140. package/node_modules/@sap/cds/eslint.config.mjs +1 -0
  141. package/node_modules/@sap/cds/lib/compile/for/nodejs.js +1 -0
  142. package/node_modules/@sap/cds/lib/compile/minify.js +14 -10
  143. package/node_modules/@sap/cds/lib/env/cds-env.js +1 -1
  144. package/node_modules/@sap/cds/lib/env/cds-requires.js +22 -11
  145. package/node_modules/@sap/cds/lib/env/defaults.js +4 -1
  146. package/node_modules/@sap/cds/lib/env/schemas/cds-rc.js +5 -2
  147. package/node_modules/@sap/cds/lib/plugins.js +9 -5
  148. package/node_modules/@sap/cds/lib/req/spawn.js +1 -1
  149. package/node_modules/@sap/cds/lib/srv/srv-dispatch.js +1 -1
  150. package/node_modules/@sap/cds/lib/srv/srv-models.js +1 -1
  151. package/node_modules/@sap/cds/lib/utils/cds-utils.js +2 -1
  152. package/node_modules/@sap/cds/libx/_runtime/common/generic/assert.js +2 -3
  153. package/node_modules/@sap/cds/libx/_runtime/common/generic/auth/restrict.js +8 -1
  154. package/node_modules/@sap/cds/libx/_runtime/common/generic/crud.js +18 -8
  155. package/node_modules/@sap/cds/libx/_runtime/fiori/lean-draft.js +25 -17
  156. package/node_modules/@sap/cds/libx/_runtime/messaging/common-utils/authorizedRequest.js +3 -2
  157. package/node_modules/@sap/cds/libx/_runtime/messaging/enterprise-messaging-utils/registerEndpoints.js +9 -3
  158. package/node_modules/@sap/cds/libx/_runtime/remote/Service.js +4 -19
  159. package/node_modules/@sap/cds/libx/_runtime/remote/utils/LruCache.js +42 -0
  160. package/node_modules/@sap/cds/libx/_runtime/remote/utils/client.js +14 -4
  161. package/node_modules/@sap/cds/libx/_runtime/remote/utils/cloudSdkProvider.js +2 -9
  162. package/node_modules/@sap/cds/libx/_runtime/remote/utils/destinationClient.js +150 -0
  163. package/node_modules/@sap/cds/libx/_runtime/remote/utils/error.js +13 -0
  164. package/node_modules/@sap/cds/libx/_runtime/remote/utils/fetchClient.js +26 -18
  165. package/node_modules/@sap/cds/libx/_runtime/remote/utils/query.js +34 -23
  166. package/node_modules/@sap/cds/libx/_runtime/remote/utils/token.js +82 -0
  167. package/node_modules/@sap/cds/libx/_runtime/ucl/Service.js +36 -189
  168. package/node_modules/@sap/cds/libx/common/utils/streaming.js +16 -16
  169. package/node_modules/@sap/cds/libx/http/location.js +3 -3
  170. package/node_modules/@sap/cds/libx/odata/middleware/batch.js +16 -10
  171. package/node_modules/@sap/cds/libx/odata/middleware/metadata.js +9 -6
  172. package/node_modules/@sap/cds/libx/odata/middleware/service-document.js +1 -1
  173. package/node_modules/@sap/cds/libx/odata/parse/afterburner.js +19 -3
  174. package/node_modules/@sap/cds/libx/odata/parse/cqn2odata.js +83 -86
  175. package/node_modules/@sap/cds/libx/queue/SchedulingService.js +17 -2
  176. package/node_modules/@sap/cds/libx/queue/processing.js +1 -3
  177. package/node_modules/@sap/cds/libx/rest/RestAdapter.js +3 -7
  178. package/node_modules/@sap/cds/libx/rest/middleware/delete.js +3 -3
  179. package/node_modules/@sap/cds/libx/rest/middleware/parse.js +13 -8
  180. package/node_modules/@sap/cds/libx/rest/middleware/read.js +3 -3
  181. package/node_modules/@sap/cds/libx/rest/middleware/upsert.js +2 -2
  182. package/node_modules/@sap/cds/package.json +1 -1
  183. package/node_modules/@sap/cds-compiler/CHANGELOG.md +60 -8
  184. package/node_modules/@sap/cds-compiler/bin/cdsc.js +2 -2
  185. package/node_modules/@sap/cds-compiler/doc/IncompatibleChanges_v7.md +46 -19
  186. package/node_modules/@sap/cds-compiler/lib/api/main.js +10 -7
  187. package/node_modules/@sap/cds-compiler/lib/api/options.js +8 -2
  188. package/node_modules/@sap/cds-compiler/lib/base/csnRefs.js +5 -2
  189. package/node_modules/@sap/cds-compiler/lib/base/message-registry.js +4 -0
  190. package/node_modules/@sap/cds-compiler/lib/base/optionProcessor.js +12 -0
  191. package/node_modules/@sap/cds-compiler/lib/checks/enricher.js +1 -0
  192. package/node_modules/@sap/cds-compiler/lib/compiler/assert-consistency.js +8 -7
  193. package/node_modules/@sap/cds-compiler/lib/compiler/checks.js +3 -3
  194. package/node_modules/@sap/cds-compiler/lib/compiler/define.js +301 -75
  195. package/node_modules/@sap/cds-compiler/lib/compiler/dictionaries.js +2 -0
  196. package/node_modules/@sap/cds-compiler/lib/compiler/extend.js +40 -26
  197. package/node_modules/@sap/cds-compiler/lib/compiler/populate.js +45 -60
  198. package/node_modules/@sap/cds-compiler/lib/compiler/propagator.js +16 -7
  199. package/node_modules/@sap/cds-compiler/lib/compiler/resolve.js +41 -15
  200. package/node_modules/@sap/cds-compiler/lib/compiler/shared.js +7 -6
  201. package/node_modules/@sap/cds-compiler/lib/compiler/tweak-assocs.js +62 -50
  202. package/node_modules/@sap/cds-compiler/lib/compiler/utils.js +29 -14
  203. package/node_modules/@sap/cds-compiler/lib/edm/edmAnnoPreprocessor.js +6 -5
  204. package/node_modules/@sap/cds-compiler/lib/gen/CdlGrammar.checksum +1 -1
  205. package/node_modules/@sap/cds-compiler/lib/gen/CdlParser.js +1119 -1109
  206. package/node_modules/@sap/cds-compiler/lib/gen/Dictionary.json +19 -3
  207. package/node_modules/@sap/cds-compiler/lib/json/from-csn.js +10 -16
  208. package/node_modules/@sap/cds-compiler/lib/json/to-csn.js +58 -39
  209. package/node_modules/@sap/cds-compiler/lib/main.d.ts +8 -0
  210. package/node_modules/@sap/cds-compiler/lib/main.js +1 -0
  211. package/node_modules/@sap/cds-compiler/lib/model/csnUtils.js +2 -0
  212. package/node_modules/@sap/cds-compiler/lib/parsers/AstBuildingParser.js +2 -1
  213. package/node_modules/@sap/cds-compiler/lib/parsers/XprTree.js +8 -0
  214. package/node_modules/@sap/cds-compiler/lib/render/toCdl.js +22 -1
  215. package/node_modules/@sap/cds-compiler/lib/render/toSql.js +17 -2
  216. package/node_modules/@sap/cds-compiler/lib/render/utils/common.js +6 -1
  217. package/node_modules/@sap/cds-compiler/lib/render/utils/operators.js +27 -0
  218. package/node_modules/@sap/cds-compiler/lib/render/utils/standardDatabaseFunctions.js +125 -3
  219. package/node_modules/@sap/cds-compiler/lib/tool-lib/revealInternalProperties.js +2 -1
  220. package/node_modules/@sap/cds-compiler/lib/transform/db/applyTransformations.js +3 -0
  221. package/node_modules/@sap/cds-compiler/lib/transform/db/associations.js +8 -2
  222. package/node_modules/@sap/cds-compiler/lib/transform/db/backlinks.js +22 -6
  223. package/node_modules/@sap/cds-compiler/lib/transform/db/constraints.js +62 -1
  224. package/node_modules/@sap/cds-compiler/lib/transform/effective/annotations.js +40 -0
  225. package/node_modules/@sap/cds-compiler/lib/transform/effective/main.js +1 -0
  226. package/node_modules/@sap/cds-compiler/lib/transform/forRelationalDB.js +6 -1
  227. package/node_modules/@sap/cds-compiler/lib/transform/translateAssocsToJoins.js +19 -8
  228. package/node_modules/@sap/cds-compiler/package.json +1 -1
  229. package/node_modules/@sap/cds-mtxs/CHANGELOG.md +51 -0
  230. package/node_modules/@sap/cds-mtxs/bin/cds-mtx-migrate.js +32 -48
  231. package/node_modules/@sap/cds-mtxs/bin/cds-mtx.js +35 -16
  232. package/node_modules/@sap/cds-mtxs/cds-plugin.js +18 -0
  233. package/node_modules/@sap/cds-mtxs/lib/migration/migration.js +3 -408
  234. package/node_modules/@sap/cds-mtxs/lib/utils.js +19 -4
  235. package/node_modules/@sap/cds-mtxs/package.json +1 -1
  236. package/node_modules/@sap/cds-mtxs/srv/cf/abstract-provisioning-service.js +6 -7
  237. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/annotations.js +5 -2
  238. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/index.js +6 -5
  239. package/node_modules/@sap/cds-mtxs/srv/extensibility-service.cds +0 -11
  240. package/node_modules/@sap/cds-mtxs/srv/extensibility-service.js +34 -35
  241. package/node_modules/@sap/cds-mtxs/srv/jobs-service.js +30 -24
  242. package/node_modules/@sap/cds-mtxs/srv/model-provider.js +19 -4
  243. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/ctnr-mgr-base.js +6 -3
  244. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/hdi.js +5 -3
  245. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/srv-mgr.js +3 -2
  246. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/tms.js +17 -0
  247. package/node_modules/@sap/cds-mtxs/srv/plugins/hana.js +18 -21
  248. package/node_modules/@sap/xsenv/CHANGELOG.md +7 -0
  249. package/node_modules/@sap/xsenv/package.json +10 -7
  250. package/node_modules/body-parser/node_modules/content-type/README.md +2 -0
  251. package/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +20 -0
  252. package/node_modules/body-parser/node_modules/content-type/dist/index.js +20 -14
  253. package/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -1
  254. package/node_modules/body-parser/node_modules/content-type/package.json +1 -1
  255. package/node_modules/hdb/cfg/VERSION +1 -1
  256. package/node_modules/hdb/lib/protocol/ClientInfo.js +16 -3
  257. package/node_modules/hdb/lib/protocol/Connection.js +1 -0
  258. package/node_modules/hdb/package.json +3 -2
  259. package/node_modules/negotiator/lib/accept.js +54 -0
  260. package/node_modules/negotiator/lib/charset.js +10 -34
  261. package/node_modules/negotiator/lib/encoding.js +9 -30
  262. package/node_modules/negotiator/lib/language.js +15 -36
  263. package/node_modules/negotiator/lib/mediaType.js +16 -134
  264. package/node_modules/negotiator/node_modules/content-type/LICENSE +22 -0
  265. package/node_modules/negotiator/node_modules/content-type/README.md +71 -0
  266. package/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +46 -0
  267. package/node_modules/negotiator/node_modules/content-type/dist/index.js +176 -0
  268. package/node_modules/negotiator/node_modules/content-type/dist/index.js.map +1 -0
  269. package/node_modules/negotiator/node_modules/content-type/package.json +52 -0
  270. package/node_modules/negotiator/package.json +16 -10
  271. package/node_modules/qs/.github/THREAT_MODEL.md +3 -3
  272. package/node_modules/qs/CHANGELOG.md +15 -0
  273. package/node_modules/qs/README.md +19 -1
  274. package/node_modules/qs/dist/qs.js +21 -21
  275. package/node_modules/qs/eslint.config.mjs +1 -1
  276. package/node_modules/qs/lib/parse.js +3 -4
  277. package/node_modules/qs/lib/stringify.js +23 -8
  278. package/node_modules/qs/lib/utils.js +10 -3
  279. package/node_modules/qs/package.json +4 -4
  280. package/node_modules/qs/test/parse.js +192 -3
  281. package/node_modules/qs/test/stringify.js +317 -0
  282. package/node_modules/qs/test/utils.js +12 -0
  283. package/node_modules/sax/lib/sax.js +27 -9
  284. package/node_modules/sax/package.json +1 -1
  285. package/node_modules/type-is/node_modules/content-type/README.md +2 -0
  286. package/node_modules/type-is/node_modules/content-type/dist/index.d.ts +20 -0
  287. package/node_modules/type-is/node_modules/content-type/dist/index.js +20 -14
  288. package/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -1
  289. package/node_modules/type-is/node_modules/content-type/package.json +1 -1
  290. package/node_modules/ws/lib/permessage-deflate.js +3 -1
  291. package/node_modules/ws/package.json +1 -1
  292. package/package.json +5 -5
  293. package/bin/completion/scripts/cds-bash.sh +0 -20
  294. package/bin/completion/scripts/cds-fish.fish +0 -13
  295. package/bin/completion/scripts/cds-ps.ps1 +0 -19
  296. package/bin/completion/scripts/cds-zsh.sh +0 -13
  297. package/lib/deploy/index.js +0 -25
  298. package/lib/import/asyncapi/importAsyncAPI.js +0 -33
  299. package/lib/import/asyncapi/index.js +0 -18
  300. package/lib/import/asyncapi/parserContext.js +0 -372
  301. package/lib/import/asyncapi/utils.js +0 -49
  302. package/lib/init/template/nodejs/files/.gitignore.hbs +0 -34
  303. package/node_modules/@sap/cds/libx/_runtime/ucl/queries.js +0 -61
  304. package/node_modules/@sap/cds-mtxs/lib/migration/extension-project-builder.js +0 -129
  305. package/node_modules/@sap/cds-mtxs/lib/migration/extension-project.js +0 -89
  306. package/node_modules/@sap/cds-mtxs/lib/migration/mtx-adapter.js +0 -230
  307. package/node_modules/negotiator/HISTORY.md +0 -114
  308. /package/{lib → bin}/upgrade/context.js +0 -0
  309. /package/{lib → bin}/upgrade/migrations/cds10/migrations.json +0 -0
  310. /package/{lib → bin}/upgrade/preflight/cds-version.js +0 -0
  311. /package/{lib → bin}/upgrade/preflight/project-type.js +0 -0
  312. /package/{lib → bin}/upgrade/steps/analyze/classification.js +0 -0
  313. /package/{lib → bin}/upgrade/steps/analyze/detector.js +0 -0
  314. /package/{lib → bin}/upgrade/steps/analyze/evaluator.js +0 -0
  315. /package/{lib → bin}/upgrade/steps/analyze/reporter.js +0 -0
  316. /package/{lib → bin}/upgrade/steps/analyze/setup.js +0 -0
  317. /package/{lib → bin}/upgrade/steps/analyze/utils/detection.js +0 -0
  318. /package/{lib → bin}/upgrade/steps/analyze/utils/files.js +0 -0
  319. /package/{lib → bin}/upgrade/steps/analyze/utils/grep.js +0 -0
  320. /package/{lib → bin}/upgrade/steps/analyze/utils/yaml.js +0 -0
  321. /package/{lib → bin}/upgrade/util/workspaces.js +0 -0
  322. /package/{lib → bin}/watch/esm-resolve-registration.js +0 -0
  323. /package/{lib → bin}/watch/livereload-server.js +0 -0
  324. /package/{lib → bin}/watch/node-watch.js +0 -0
  325. /package/{lib → bin}/watch/open.js +0 -0
  326. /package/{lib → bin}/watch/watcher.js +0 -0
@@ -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}}
@@ -63,11 +63,16 @@ modules:
63
63
  type: html5
64
64
  path: {{& appPath}}{{app}}
65
65
  build-parameters:
66
+ {{#isStatic}}
67
+ build-result: .
68
+ {{/isStatic}}
69
+ {{^isStatic}}
66
70
  build-result: dist
67
71
  builder: custom
68
72
  commands:
69
73
  - npm ci
70
74
  - npm run build
75
+ {{/isStatic}}
71
76
  supported-platforms: []
72
77
  {{/apps}}
73
78
 
@@ -2,7 +2,7 @@ const { join } = require('path')
2
2
  const { readProject } = require('../../projectReader')
3
3
  const { merge } = require('../../merge')
4
4
  const { srv4, html5RepoHost, html5Runtime, xsuaa, appDeployer, approuter, mtxSidecar4 } = require('../../registries/mta')
5
- const { odataApi, html5RepoApi } = require('../../registries/xs-app')
5
+ const { srvApi, html5RepoApi } = require('../../registries/xs-app')
6
6
  const { exists, read } = require('../../../cds').utils
7
7
 
8
8
  module.exports = class Html5RepoTemplate extends require('../../plugin') {
@@ -22,18 +22,18 @@ module.exports = class Html5RepoTemplate extends require('../../plugin') {
22
22
 
23
23
  async run() {
24
24
  const project = readProject()
25
- const { appUIPaths, appPath, configFile } = project
25
+ const { apps, appPath, configFile } = project
26
26
  await merge(__dirname, 'files/package.json.hbs').into(configFile, { project })
27
27
 
28
- // app deployer requires a manifest.json
29
- await Promise.all(appUIPaths.map(p =>
28
+ // Fiori/UI5 apps deploy a manifest.json; static apps (plain index.html) don't
29
+ await Promise.all(apps.filter(a => !a.isStatic).map(({ app }) =>
30
30
  merge(__dirname, 'files/manifest.json')
31
- .into(join(appPath, p, 'webapp/manifest.json'), { project })
31
+ .into(join(appPath, app, 'webapp/manifest.json'), { project })
32
32
  ))
33
33
  }
34
34
 
35
- async combine() {
36
- const project = readProject()
35
+ async combine(facet) {
36
+ const project = readProject(facet)
37
37
  const {
38
38
  isJava, srv, appPath, apps,
39
39
  hasApprouter, hasMta, addMta, hasKyma, hasXsuaa, hasMultitenancy, hasUI5,
@@ -43,7 +43,7 @@ module.exports = class Html5RepoTemplate extends require('../../plugin') {
43
43
  await Promise.all(apps.map(async ({ app }) => {
44
44
  project.app = app
45
45
  project.hasIndexHtml = exists(join(appPath, app, 'webapp/index.html'))
46
- const additions = [odataApi, html5RepoApi]
46
+ const additions = [srvApi, html5RepoApi]
47
47
  await merge(__dirname, 'files/xs-app.json.hbs').into(join(appPath, app, 'xs-app.json'), { with: project, additions })
48
48
  const pJsonPath = join(appPath, app, 'package.json')
49
49
  const pJson = exists(pJsonPath) ? await read(pJsonPath) : {}
@@ -73,10 +73,14 @@ module.exports = class Html5RepoTemplate extends require('../../plugin') {
73
73
  if (addMta || affected && hasMta) {
74
74
  const srvModule = srv4(srv.path)
75
75
  project.apps = apps
76
- const relationships = [{
77
- insert: [html5RepoHost, 'name'],
78
- into: [appDeployer, 'requires', 'name'],
79
- }]
76
+ const hasApps = apps.length > 0
77
+ const relationships = []
78
+ if (hasApps) {
79
+ relationships.push({
80
+ insert: [html5RepoHost, 'name'],
81
+ into: [appDeployer, 'requires', 'name'],
82
+ })
83
+ }
80
84
  const appModules = []
81
85
  for (const { app } of project.apps) {
82
86
  const html5App = { in: 'modules', where: { type: 'html5', path: `${appPath}${app}` } }
@@ -101,7 +105,7 @@ module.exports = class Html5RepoTemplate extends require('../../plugin') {
101
105
  into: [isJava ? srvModule : mtxSidecar4('gen/mtx/sidecar'), 'requires', 'name']
102
106
  })
103
107
  }
104
- if (hasXsuaa) {
108
+ if (hasXsuaa && hasApps) {
105
109
  relationships.push({
106
110
  insert: [xsuaa, 'name'],
107
111
  into: [appDeployer, 'requires']
@@ -109,7 +113,7 @@ module.exports = class Html5RepoTemplate extends require('../../plugin') {
109
113
  }
110
114
  await merge(__dirname, 'files/mta.yaml.hbs').into('mta.yaml', {
111
115
  with: project,
112
- additions: [srvModule, appDeployer, html5RepoHost, ...appModules],
116
+ additions: [srvModule, ...(hasApps ? [appDeployer] : []), html5RepoHost, ...appModules],
113
117
  relationships
114
118
  })
115
119
  }