@sap/cds 8.9.4 → 9.0.2

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 (621) hide show
  1. package/CHANGELOG.md +113 -680
  2. package/LICENSE +15 -21
  3. package/README.md +1 -1
  4. package/_i18n/i18n_sl.properties +3 -3
  5. package/_i18n/messages.properties +1 -1
  6. package/app/index.js +1 -1
  7. package/bin/serve.js +17 -19
  8. package/eslint.config.mjs +7 -1
  9. package/lib/compile/etc/_localized.js +3 -24
  10. package/lib/compile/etc/yaml.js +6 -15
  11. package/lib/compile/for/odata.js +2 -2
  12. package/lib/compile/load.js +15 -4
  13. package/lib/compile/minify.js +1 -0
  14. package/lib/compile/to/edm-files.js +4 -33
  15. package/lib/compile/to/hdbtabledata.js +16 -3
  16. package/lib/compile/to/sql.js +1 -2
  17. package/lib/core/linked-csn.js +7 -8
  18. package/lib/dbs/cds-deploy.js +4 -3
  19. package/lib/env/cds-env.js +9 -9
  20. package/lib/env/cds-requires.js +23 -50
  21. package/lib/env/defaults.js +15 -44
  22. package/lib/env/schemas/cds-package.js +1 -1
  23. package/lib/i18n/index.js +1 -0
  24. package/lib/i18n/locale.js +41 -0
  25. package/lib/index.js +25 -15
  26. package/lib/log/cds-error.js +12 -3
  27. package/lib/log/cds-log.js +43 -18
  28. package/lib/log/format/aspects/als.js +2 -15
  29. package/lib/plugins.js +11 -11
  30. package/lib/ql/CREATE.js +1 -1
  31. package/lib/ql/DELETE.js +1 -1
  32. package/lib/ql/DROP.js +1 -1
  33. package/lib/ql/INSERT.js +9 -18
  34. package/lib/ql/SELECT.js +12 -19
  35. package/lib/ql/UPDATE.js +1 -1
  36. package/lib/ql/UPSERT.js +1 -0
  37. package/lib/ql/Whereable.js +7 -6
  38. package/lib/ql/cds-ql.js +0 -12
  39. package/lib/ql/cds.ql-Query.js +28 -68
  40. package/lib/ql/cds.ql-infer.js +97 -108
  41. package/lib/ql/resolve.js +1 -3
  42. package/lib/req/context.js +5 -4
  43. package/lib/req/request.js +46 -42
  44. package/lib/req/response.js +5 -9
  45. package/lib/req/spawn.js +38 -0
  46. package/lib/req/validate.js +9 -8
  47. package/lib/srv/bindings.js +2 -1
  48. package/lib/srv/cds-connect.js +5 -2
  49. package/lib/srv/cds-serve.js +0 -2
  50. package/lib/srv/cds.Service.js +146 -86
  51. package/lib/srv/middlewares/auth/ias-auth.js +99 -88
  52. package/lib/srv/middlewares/auth/jwt-auth.js +44 -57
  53. package/lib/srv/middlewares/cds-context.js +1 -1
  54. package/lib/srv/middlewares/ctx-model.js +1 -1
  55. package/lib/srv/middlewares/errors.js +34 -42
  56. package/lib/srv/protocols/hcql.js +35 -25
  57. package/lib/srv/protocols/index.js +0 -9
  58. package/lib/srv/protocols/odata-v4.js +1 -6
  59. package/lib/srv/srv-dispatch.js +29 -31
  60. package/lib/srv/srv-handlers.js +14 -46
  61. package/lib/srv/srv-methods.js +15 -37
  62. package/lib/srv/srv-tx.js +19 -25
  63. package/lib/test/cds-test.js +4 -263
  64. package/lib/utils/cds-utils.js +18 -2
  65. package/lib/utils/tar.js +6 -8
  66. package/lib/utils/unit.js +19 -0
  67. package/libx/_runtime/.eslintrc +1 -1
  68. package/libx/_runtime/cds-services/util/assert.js +2 -72
  69. package/libx/_runtime/cds.js +13 -6
  70. package/libx/_runtime/common/Service.js +33 -75
  71. package/libx/_runtime/common/aspects/any.js +0 -38
  72. package/libx/_runtime/common/constants/events.js +5 -13
  73. package/libx/_runtime/common/generic/auth/autoexpose.js +10 -24
  74. package/libx/_runtime/common/generic/auth/capabilities.js +23 -20
  75. package/libx/_runtime/common/generic/auth/expand.js +3 -3
  76. package/libx/_runtime/common/generic/auth/index.js +3 -3
  77. package/libx/_runtime/common/generic/auth/insertOnly.js +3 -3
  78. package/libx/_runtime/common/generic/auth/readOnly.js +4 -4
  79. package/libx/_runtime/common/generic/auth/requires.js +4 -4
  80. package/libx/_runtime/common/generic/auth/restrict.js +12 -29
  81. package/libx/_runtime/common/generic/auth/service.js +3 -3
  82. package/libx/_runtime/common/generic/auth/utils.js +2 -12
  83. package/libx/_runtime/common/generic/crud.js +22 -53
  84. package/libx/_runtime/common/generic/etag.js +18 -31
  85. package/libx/_runtime/common/generic/input.js +51 -123
  86. package/libx/_runtime/common/generic/paging.js +4 -4
  87. package/libx/_runtime/common/generic/sorting.js +8 -19
  88. package/libx/_runtime/common/generic/stream-only.js +26 -0
  89. package/libx/_runtime/common/generic/stream.js +16 -48
  90. package/libx/_runtime/common/generic/temporal.js +15 -6
  91. package/libx/_runtime/common/utils/binary.js +1 -26
  92. package/libx/_runtime/common/utils/compareJson.js +1 -2
  93. package/libx/_runtime/common/utils/cqn.js +15 -14
  94. package/libx/_runtime/common/utils/differ.js +121 -44
  95. package/libx/_runtime/common/utils/keys.js +4 -5
  96. package/libx/_runtime/common/utils/postProcess.js +2 -2
  97. package/libx/_runtime/common/utils/propagateForeignKeys.js +21 -36
  98. package/libx/_runtime/common/utils/resolveView.js +105 -141
  99. package/libx/_runtime/common/utils/rewriteAsterisks.js +45 -12
  100. package/libx/_runtime/common/utils/streamProp.js +3 -9
  101. package/libx/_runtime/common/utils/waitingTime.js +13 -1
  102. package/libx/_runtime/fiori/lean-draft.js +174 -196
  103. package/libx/_runtime/messaging/common-utils/connections.js +1 -1
  104. package/libx/_runtime/messaging/enterprise-messaging-utils/EMManagement.js +1 -0
  105. package/libx/_runtime/messaging/enterprise-messaging-utils/registerEndpoints.js +3 -3
  106. package/libx/_runtime/messaging/enterprise-messaging.js +2 -2
  107. package/libx/_runtime/messaging/file-based.js +2 -4
  108. package/libx/_runtime/messaging/redis-messaging.js +1 -1
  109. package/libx/_runtime/messaging/service.js +5 -19
  110. package/libx/_runtime/remote/Service.js +20 -33
  111. package/libx/_runtime/remote/utils/client.js +7 -25
  112. package/libx/_runtime/remote/utils/cloudSdkProvider.js +8 -13
  113. package/libx/_runtime/remote/utils/data.js +3 -34
  114. package/libx/_runtime/types/api.js +0 -8
  115. package/libx/_runtime/ucl/Service.js +1 -9
  116. package/libx/common/utils/path.js +2 -3
  117. package/libx/common/utils/streaming.js +2 -1
  118. package/libx/http/HttpRequest.js +13 -0
  119. package/libx/{odata/middleware → http}/body-parser.js +7 -5
  120. package/libx/http/location.js +41 -0
  121. package/libx/http/put.js +36 -0
  122. package/libx/odata/ODataAdapter.js +25 -59
  123. package/libx/odata/index.js +10 -23
  124. package/libx/odata/middleware/batch.js +29 -20
  125. package/libx/odata/middleware/create.js +6 -13
  126. package/libx/odata/middleware/delete.js +0 -4
  127. package/libx/odata/middleware/error.js +83 -27
  128. package/libx/odata/middleware/metadata.js +14 -25
  129. package/libx/odata/middleware/operation.js +10 -26
  130. package/libx/odata/middleware/read.js +10 -18
  131. package/libx/odata/middleware/stream.js +14 -34
  132. package/libx/odata/middleware/update.js +17 -26
  133. package/libx/odata/parse/afterburner.js +20 -16
  134. package/libx/odata/parse/cqn2odata.js +3 -1
  135. package/libx/odata/parse/grammar.peggy +221 -114
  136. package/libx/odata/parse/parser.js +1 -1
  137. package/libx/odata/utils/index.js +10 -38
  138. package/libx/odata/utils/metadata.js +1 -4
  139. package/libx/odata/utils/normalizeTimeData.js +4 -7
  140. package/libx/odata/utils/readAfterWrite.js +1 -1
  141. package/libx/{outbox/OutboxRunner.js → queue/TaskRunner.js} +17 -22
  142. package/libx/queue/index.js +530 -0
  143. package/libx/rest/RestAdapter.js +43 -82
  144. package/libx/rest/middleware/create.js +35 -33
  145. package/libx/rest/middleware/delete.js +9 -7
  146. package/libx/rest/middleware/error.js +11 -18
  147. package/libx/rest/middleware/operation.js +44 -137
  148. package/libx/rest/middleware/parse.js +114 -130
  149. package/libx/rest/middleware/read.js +23 -21
  150. package/libx/rest/middleware/update.js +20 -32
  151. package/libx/rest/middleware/upsert.js +31 -0
  152. package/libx/rest/pre-processing.js +8 -18
  153. package/package.json +6 -7
  154. package/srv/outbox.cds +1 -0
  155. package/bin/test.js +0 -125
  156. package/lib/env/plugins.js +0 -18
  157. package/lib/req/cds-context.js +0 -52
  158. package/lib/req/locale.js +0 -35
  159. package/lib/srv/cds.ServiceClient.js +0 -96
  160. package/lib/srv/cds.ServiceProvider.js +0 -20
  161. package/lib/srv/protocols/okra.js +0 -22
  162. package/lib/test/axios.js +0 -63
  163. package/lib/test/data.js +0 -52
  164. package/lib/test/expect.js +0 -343
  165. package/lib/test/reporter.js +0 -176
  166. package/libx/_runtime/cds-services/adapter/odata-v4/OData.js +0 -275
  167. package/libx/_runtime/cds-services/adapter/odata-v4/ODataRequest.js +0 -217
  168. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/action.js +0 -101
  169. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/create.js +0 -79
  170. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/debug.js +0 -6
  171. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/delete.js +0 -60
  172. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/error.js +0 -161
  173. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/language.js +0 -7
  174. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/metadata.js +0 -59
  175. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/read.js +0 -602
  176. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/request.js +0 -64
  177. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/update.js +0 -238
  178. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/ExpressionToCQN.js +0 -327
  179. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/applyToCQN.js +0 -243
  180. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/boundToCQN.js +0 -43
  181. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/createToCQN.js +0 -37
  182. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/deleteToCQN.js +0 -36
  183. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/expandToCQN.js +0 -250
  184. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/index.js +0 -81
  185. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/orderByToCQN.js +0 -51
  186. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/readToCQN.js +0 -389
  187. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/searchToCQN.js +0 -43
  188. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/selectToCQN.js +0 -35
  189. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/updateToCQN.js +0 -38
  190. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/utils.js +0 -217
  191. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/FeatureSupport.js +0 -70
  192. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/FullQualifiedName.js +0 -94
  193. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAction.js +0 -139
  194. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlActionImport.js +0 -82
  195. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAliasInfo.js +0 -44
  196. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAnnotation.js +0 -104
  197. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAnnotations.js +0 -71
  198. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlComplexType.js +0 -133
  199. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityContainer.js +0 -142
  200. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityContainerInfo.js +0 -37
  201. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntitySet.js +0 -107
  202. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityType.js +0 -177
  203. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEnumMember.js +0 -61
  204. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEnumType.js +0 -105
  205. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlFunction.js +0 -149
  206. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlFunctionImport.js +0 -105
  207. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlInclude.js +0 -68
  208. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlIncludeAnnotation.js +0 -71
  209. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlJsonProvider.js +0 -1365
  210. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlNavigationProperty.js +0 -190
  211. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlNavigationPropertyBinding.js +0 -37
  212. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlOnDelete.js +0 -70
  213. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlParameter.js +0 -227
  214. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlProperty.js +0 -250
  215. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlPropertyRef.js +0 -49
  216. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlProvider.js +0 -190
  217. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReference.js +0 -97
  218. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReferentialConstraint.js +0 -60
  219. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReturnType.js +0 -216
  220. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlSchema.js +0 -328
  221. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlSingleton.js +0 -84
  222. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlTerm.js +0 -320
  223. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlTypeDefinition.js +0 -193
  224. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlAnnotationExpression.js +0 -73
  225. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlAnnotationPathExpression.js +0 -33
  226. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlApplyExpression.js +0 -105
  227. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlArithmeticExpression.js +0 -72
  228. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlBinaryExpression.js +0 -110
  229. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlCastExpression.js +0 -188
  230. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlCollectionExpression.js +0 -48
  231. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlConstantExpression.js +0 -116
  232. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlIfExpression.js +0 -62
  233. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlIsOfExpression.js +0 -200
  234. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlLabeledElementExpression.js +0 -42
  235. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlLabeledElementReferenceExpression.js +0 -31
  236. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlModelElementPathExpression.js +0 -29
  237. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNavigationPropertyPathExpression.js +0 -31
  238. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNegationExpression.js +0 -27
  239. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNotExpression.js +0 -31
  240. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNullExpression.js +0 -18
  241. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPathExpression.js +0 -32
  242. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPropertyPathExpression.js +0 -32
  243. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPropertyValueExpression.js +0 -55
  244. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlRecordExpression.js +0 -54
  245. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlUnknownExpression.js +0 -44
  246. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlUrlRefExpression.js +0 -31
  247. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmBindingTarget.js +0 -163
  248. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmFaceted.js +0 -136
  249. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmOperation.js +0 -205
  250. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmOperationImport.js +0 -126
  251. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmStructuredType.js +0 -275
  252. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/Edm.js +0 -775
  253. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAction.js +0 -15
  254. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmActionImport.js +0 -39
  255. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAnnotation.js +0 -106
  256. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAnnotations.js +0 -57
  257. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmComplexType.js +0 -48
  258. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntityContainer.js +0 -455
  259. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntitySet.js +0 -43
  260. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntityType.js +0 -119
  261. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEnumMember.js +0 -69
  262. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEnumType.js +0 -117
  263. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmFunction.js +0 -39
  264. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmFunctionImport.js +0 -59
  265. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmInclude.js +0 -65
  266. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmIncludeAnnotation.js +0 -48
  267. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmKeyPropertyRef.js +0 -79
  268. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmNavigationProperty.js +0 -182
  269. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmNavigationPropertyBinding.js +0 -46
  270. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmOnDelete.js +0 -44
  271. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmParameter.js +0 -22
  272. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmPrimitiveType.js +0 -31
  273. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmPrimitiveTypeKind.js +0 -70
  274. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmProperty.js +0 -39
  275. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmProvider.js +0 -399
  276. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReference.js +0 -88
  277. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReferentialConstraint.js +0 -71
  278. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReturnType.js +0 -14
  279. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmSchema.js +0 -355
  280. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmSingleton.js +0 -15
  281. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTerm.js +0 -75
  282. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmType.js +0 -95
  283. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTypeDefinition.js +0 -121
  284. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTypeFactory.js +0 -28
  285. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmVocabularyTermType.js +0 -41
  286. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/KeyFactory.js +0 -67
  287. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/Target.js +0 -56
  288. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/TransientStructuredType.js +0 -244
  289. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/AnnotationExpressionFactory.js +0 -130
  290. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmAnnotationExpression.js +0 -28
  291. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmAnnotationPathExpression.js +0 -42
  292. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmApplyExpression.js +0 -85
  293. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmArithmeticExpression.js +0 -92
  294. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmBinaryExpression.js +0 -96
  295. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmCastExpression.js +0 -129
  296. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmCollectionExpression.js +0 -52
  297. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmConstantExpression.js +0 -83
  298. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmIfExpression.js +0 -103
  299. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmIsOfExpression.js +0 -125
  300. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmLabeledElementExpression.js +0 -83
  301. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmLabeledElementReferenceExpression.js +0 -41
  302. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmModelElementPathExpression.js +0 -35
  303. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNavigationPropertyPathExpression.js +0 -37
  304. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNegationExpression.js +0 -70
  305. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNotExpression.js +0 -75
  306. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNullExpression.js +0 -50
  307. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPathExpression.js +0 -38
  308. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPropertyPathExpression.js +0 -37
  309. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPropertyValueExpression.js +0 -72
  310. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmRecordExpression.js +0 -100
  311. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmUnknownExpression.js +0 -72
  312. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmUrlRefExpression.js +0 -73
  313. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/AbstractError.js +0 -82
  314. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/IllegalArgumentError.js +0 -58
  315. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/IllegalCallError.js +0 -21
  316. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/NotImplementedError.js +0 -19
  317. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriQueryOptionSemanticError.js +0 -49
  318. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriSemanticError.js +0 -48
  319. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriSyntaxError.js +0 -65
  320. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/ContentTypeInfo.js +0 -105
  321. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/JsonContentTypeInfo.js +0 -83
  322. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/JsonFormat.js +0 -141
  323. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/RepresentationKind.js +0 -251
  324. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpHeader.js +0 -42
  325. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpHeaderReader.js +0 -318
  326. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpMethod.js +0 -25
  327. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpStatusCode.js +0 -52
  328. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/Preferences.js +0 -32
  329. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/index.js +0 -69
  330. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/logging/LoggerFacade.js +0 -183
  331. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/AliasExpression.js +0 -47
  332. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ApplyParser.js +0 -946
  333. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/BinaryExpression.js +0 -124
  334. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpandItem.js +0 -76
  335. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpandParser.js +0 -384
  336. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/Expression.js +0 -46
  337. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpressionParser.js +0 -1988
  338. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/FilterParser.js +0 -34
  339. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/FunctionParameterParser.js +0 -106
  340. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/KeyPredicateParser.js +0 -155
  341. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/KeyValueParser.js +0 -213
  342. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/LiteralExpression.js +0 -43
  343. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/MemberExpression.js +0 -44
  344. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/MethodExpression.js +0 -146
  345. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/OrderByItem.js +0 -53
  346. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/OrderByParser.js +0 -69
  347. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ResourcePathParser.js +0 -848
  348. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SearchParser.js +0 -127
  349. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SelectItem.js +0 -80
  350. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SelectParser.js +0 -294
  351. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/TypeLiteralExpression.js +0 -28
  352. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UnaryExpression.js +0 -64
  353. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriHelper.js +0 -65
  354. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriInfo.js +0 -165
  355. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParameter.js +0 -107
  356. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParser.js +0 -350
  357. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriResource.js +0 -602
  358. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriTokenizer.js +0 -1156
  359. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/AggregateExpression.js +0 -164
  360. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/AggregateTransformation.js +0 -38
  361. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/BottomTopTransformation.js +0 -93
  362. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ComputeExpression.js +0 -52
  363. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ComputeTransformation.js +0 -38
  364. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ConcatTransformation.js +0 -38
  365. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/CustomFunctionTransformation.js +0 -59
  366. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ExpandTransformation.js +0 -37
  367. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/FilterTransformation.js +0 -37
  368. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/GroupByItem.js +0 -71
  369. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/GroupByTransformation.js +0 -58
  370. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/IdentityTransformation.js +0 -17
  371. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/OrderByTransformation.js +0 -37
  372. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/SearchTransformation.js +0 -37
  373. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/SkipTransformation.js +0 -37
  374. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/TopTransformation.js +0 -37
  375. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/Transformation.js +0 -53
  376. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/info.md +0 -116
  377. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/PrimitiveValueDecoder.js +0 -667
  378. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/PrimitiveValueEncoder.js +0 -349
  379. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/ValueConverter.js +0 -545
  380. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ParameterValidator.js +0 -124
  381. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ValueValidator.js +0 -743
  382. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/ServiceFactory.js +0 -234
  383. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchContext.js +0 -351
  384. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchErrorInfo.js +0 -61
  385. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchExitHandler.js +0 -239
  386. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchProcessor.js +0 -281
  387. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchValidator.js +0 -133
  388. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchedRequestExecutor.js +0 -92
  389. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ComponentManager.js +0 -63
  390. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Context.js +0 -96
  391. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Dispatcher.js +0 -147
  392. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataRequest.js +0 -458
  393. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataRequestInBatch.js +0 -147
  394. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataResponse.js +0 -314
  395. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataResponseInBatch.js +0 -83
  396. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/PlainHttpRequest.js +0 -175
  397. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/PlainHttpResponse.js +0 -106
  398. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/RequestContract.js +0 -111
  399. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseContract.js +0 -111
  400. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseHeaderSetter.js +0 -240
  401. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Service.js +0 -417
  402. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ServiceResolutions.js +0 -24
  403. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ApplicationHttpReader.js +0 -157
  404. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/BatchJsonDeserializer.js +0 -171
  405. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/BatchRequestListBuilder.js +0 -196
  406. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/Cache.js +0 -154
  407. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ContentDeserializer.js +0 -222
  408. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/DataReader.js +0 -220
  409. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/DeserializerFactory.js +0 -240
  410. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/HeaderReader.js +0 -133
  411. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/LineReader.js +0 -61
  412. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/MultipartReader.js +0 -419
  413. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/PartReader.js +0 -99
  414. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/Reader.js +0 -52
  415. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ResourceJsonDeserializer.js +0 -673
  416. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/ApplicationError.js +0 -108
  417. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/BadRequestError.js +0 -21
  418. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/ConflictError.js +0 -11
  419. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/DeserializationError.js +0 -19
  420. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/InternalServerError.js +0 -20
  421. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/MethodNotAllowedError.js +0 -17
  422. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/NotAcceptableError.js +0 -21
  423. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/NotFoundError.js +0 -33
  424. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/PreconditionFailedError.js +0 -11
  425. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/PreconditionRequiredError.js +0 -11
  426. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/SerializationError.js +0 -19
  427. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/UnauthorizedError.js +0 -17
  428. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/AcceptTypeInfo.js +0 -86
  429. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/CharsetInfo.js +0 -76
  430. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/FormatDescription.js +0 -43
  431. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/FormatManager.js +0 -91
  432. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/RequestContentNegotiator.js +0 -62
  433. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/ResponseContentNegotiator.js +0 -321
  434. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/BatchHandler.js +0 -36
  435. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/MetadataHandler.js +0 -21
  436. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/ServiceHandler.js +0 -25
  437. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/CustomPreference.js +0 -31
  438. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HeaderInfo.js +0 -79
  439. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpHeader.js +0 -59
  440. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpHeaderReader.js +0 -452
  441. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpStatusCode.js +0 -117
  442. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/Preferences.js +0 -222
  443. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/PreferencesApplied.js +0 -199
  444. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/index.js +0 -37
  445. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/Command.js +0 -31
  446. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/CommandExecutor.js +0 -94
  447. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/CommandFactory.js +0 -203
  448. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ConditionalRequestControlCommand.js +0 -52
  449. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ConditionalRequestPreValidationCommand.js +0 -59
  450. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ContentNegotiatorCommand.js +0 -70
  451. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugContentNegotiatorCommand.js +0 -59
  452. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugDeserializingCommand.js +0 -44
  453. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugSerializingCommand.js +0 -51
  454. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DeserializingCommand.js +0 -69
  455. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DispatcherCommand.js +0 -95
  456. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ErrorContentNegotiatorCommand.js +0 -44
  457. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ErrorSerializingCommand.js +0 -51
  458. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/EventListenerCommand.js +0 -59
  459. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/LocaleNegotiatorCommand.js +0 -56
  460. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/OdataVersionValidationCommand.js +0 -41
  461. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/OperationValidationCommand.js +0 -34
  462. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ParsePreferHeaderCommand.js +0 -47
  463. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/PresetResponseHeadersCommand.js +0 -47
  464. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/QueryOptionsParserCommand.js +0 -43
  465. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/QueryOptionsValidationCommand.js +0 -62
  466. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/RequestContentValidationCommand.js +0 -51
  467. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SendResponseCommand.js +0 -37
  468. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SerializingCommand.js +0 -159
  469. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetResponseHeadersCommand.js +0 -90
  470. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetStatuscodeCommand.js +0 -51
  471. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/UriParserCommand.js +0 -47
  472. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/logging/DebugLogger.js +0 -97
  473. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ApplicationHttpWriter.js +0 -65
  474. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/BatchJsonSerializer.js +0 -46
  475. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/BatchMultipartSerializer.js +0 -113
  476. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ContextURLFactory.js +0 -405
  477. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/DebugHtmlSerializer.js +0 -302
  478. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/DebugJsonSerializer.js +0 -515
  479. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorJsonSerializer.js +0 -47
  480. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorSerializer.js +0 -39
  481. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorXmlSerializer.js +0 -98
  482. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ExpressionTreeImage.js +0 -404
  483. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/MetadataXmlSerializer.js +0 -1416
  484. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/MultipartWriter.js +0 -202
  485. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/NextLinkSerializer.js +0 -330
  486. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ResourceJsonSerializer.js +0 -1220
  487. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/SerializerFactory.js +0 -484
  488. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ServiceJsonSerializer.js +0 -89
  489. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/TrustedResourceJsonSerializer.js +0 -612
  490. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/debugview.html +0 -157
  491. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/BufferedWriter.js +0 -59
  492. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/ExpandHelper.js +0 -96
  493. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/MetadataCache.js +0 -136
  494. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/PerformanceMonitor.js +0 -221
  495. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/UriHelper.js +0 -157
  496. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/ConditionalRequestValidator.js +0 -79
  497. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/OperationValidator.js +0 -199
  498. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/RequestValidator.js +0 -392
  499. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/VersionValidator.js +0 -62
  500. package/libx/_runtime/cds-services/adapter/odata-v4/to.js +0 -51
  501. package/libx/_runtime/cds-services/adapter/odata-v4/utils/data.js +0 -331
  502. package/libx/_runtime/cds-services/adapter/odata-v4/utils/handlerUtils.js +0 -159
  503. package/libx/_runtime/cds-services/adapter/odata-v4/utils/metaInfo.js +0 -404
  504. package/libx/_runtime/cds-services/adapter/odata-v4/utils/oDataConfiguration.js +0 -55
  505. package/libx/_runtime/cds-services/adapter/odata-v4/utils/omitValues.js +0 -86
  506. package/libx/_runtime/cds-services/adapter/odata-v4/utils/readAfterWrite.js +0 -107
  507. package/libx/_runtime/cds-services/adapter/odata-v4/utils/request.js +0 -64
  508. package/libx/_runtime/cds-services/adapter/odata-v4/utils/result.js +0 -385
  509. package/libx/_runtime/cds-services/adapter/odata-v4/utils/stream.js +0 -12
  510. package/libx/_runtime/cds-services/util/errors.js +0 -15
  511. package/libx/_runtime/common/aspects/relation.js +0 -40
  512. package/libx/_runtime/common/composition/data.js +0 -370
  513. package/libx/_runtime/common/composition/delete.js +0 -313
  514. package/libx/_runtime/common/composition/index.js +0 -22
  515. package/libx/_runtime/common/composition/insert.js +0 -108
  516. package/libx/_runtime/common/composition/tree.js +0 -275
  517. package/libx/_runtime/common/composition/update.js +0 -354
  518. package/libx/_runtime/common/composition/utils.js +0 -95
  519. package/libx/_runtime/common/error/constants.js +0 -20
  520. package/libx/_runtime/common/error/entry.js +0 -36
  521. package/libx/_runtime/common/error/frontend.js +0 -199
  522. package/libx/_runtime/common/error/index.js +0 -12
  523. package/libx/_runtime/common/error/log.js +0 -35
  524. package/libx/_runtime/common/error/standardError.js +0 -11
  525. package/libx/_runtime/common/error/utils.js +0 -18
  526. package/libx/_runtime/common/generic/auth/constants.js +0 -17
  527. package/libx/_runtime/common/generic/put.js +0 -85
  528. package/libx/_runtime/common/utils/columns.js +0 -177
  529. package/libx/_runtime/common/utils/compareJsonOLD.js +0 -280
  530. package/libx/_runtime/common/utils/cqn2cqn4sql.js +0 -1039
  531. package/libx/_runtime/common/utils/data.js +0 -16
  532. package/libx/_runtime/common/utils/dollar.js +0 -27
  533. package/libx/_runtime/common/utils/generateOnCond.js +0 -127
  534. package/libx/_runtime/common/utils/onlyKeysRemain.js +0 -10
  535. package/libx/_runtime/common/utils/path.js +0 -20
  536. package/libx/_runtime/common/utils/quotingStyles.js +0 -29
  537. package/libx/_runtime/common/utils/restrictions.js +0 -67
  538. package/libx/_runtime/common/utils/search2cqn4sql.js +0 -37
  539. package/libx/_runtime/common/utils/searchToLike.js +0 -56
  540. package/libx/_runtime/common/utils/stream.js +0 -103
  541. package/libx/_runtime/common/utils/ucsn.js +0 -119
  542. package/libx/_runtime/common/utils/union.js +0 -31
  543. package/libx/_runtime/common/utils/unionCqnTemplate.js +0 -174
  544. package/libx/_runtime/db/Service.js +0 -93
  545. package/libx/_runtime/db/data-conversion/post-processing.js +0 -175
  546. package/libx/_runtime/db/expand/expand-v2.js +0 -147
  547. package/libx/_runtime/db/expand/expandCQNToJoin.js +0 -1775
  548. package/libx/_runtime/db/expand/index.js +0 -13
  549. package/libx/_runtime/db/expand/rawToExpanded.js +0 -250
  550. package/libx/_runtime/db/generic/create.js +0 -30
  551. package/libx/_runtime/db/generic/delete.js +0 -18
  552. package/libx/_runtime/db/generic/index.js +0 -25
  553. package/libx/_runtime/db/generic/input.js +0 -227
  554. package/libx/_runtime/db/generic/read.js +0 -16
  555. package/libx/_runtime/db/generic/rewrite.js +0 -68
  556. package/libx/_runtime/db/generic/structured.js +0 -92
  557. package/libx/_runtime/db/generic/update.js +0 -97
  558. package/libx/_runtime/db/generic/virtual.js +0 -83
  559. package/libx/_runtime/db/query/delete.js +0 -39
  560. package/libx/_runtime/db/query/index.js +0 -13
  561. package/libx/_runtime/db/query/insert.js +0 -21
  562. package/libx/_runtime/db/query/read.js +0 -97
  563. package/libx/_runtime/db/query/run.js +0 -30
  564. package/libx/_runtime/db/query/update.js +0 -94
  565. package/libx/_runtime/db/result/InsertResult.js +0 -87
  566. package/libx/_runtime/db/sql-builder/BaseBuilder.js +0 -65
  567. package/libx/_runtime/db/sql-builder/CreateBuilder.js +0 -212
  568. package/libx/_runtime/db/sql-builder/DeleteBuilder.js +0 -87
  569. package/libx/_runtime/db/sql-builder/DropBuilder.js +0 -63
  570. package/libx/_runtime/db/sql-builder/ExpressionBuilder.js +0 -345
  571. package/libx/_runtime/db/sql-builder/FunctionBuilder.js +0 -232
  572. package/libx/_runtime/db/sql-builder/InsertBuilder.js +0 -494
  573. package/libx/_runtime/db/sql-builder/ReferenceBuilder.js +0 -135
  574. package/libx/_runtime/db/sql-builder/SelectBuilder.js +0 -482
  575. package/libx/_runtime/db/sql-builder/UpdateBuilder.js +0 -207
  576. package/libx/_runtime/db/sql-builder/UpsertBuilder.js +0 -25
  577. package/libx/_runtime/db/sql-builder/annotations.js +0 -50
  578. package/libx/_runtime/db/sql-builder/arrayed.js +0 -4
  579. package/libx/_runtime/db/sql-builder/dataTypes.js +0 -59
  580. package/libx/_runtime/db/sql-builder/dollar.js +0 -37
  581. package/libx/_runtime/db/sql-builder/index.js +0 -28
  582. package/libx/_runtime/db/sql-builder/sqlFactory.js +0 -104
  583. package/libx/_runtime/db/utils/coloredTxCommands.js +0 -7
  584. package/libx/_runtime/db/utils/columns.js +0 -41
  585. package/libx/_runtime/db/utils/deep.js +0 -71
  586. package/libx/_runtime/db/utils/generateAliases.js +0 -160
  587. package/libx/_runtime/db/utils/localized.js +0 -77
  588. package/libx/_runtime/db/utils/normalizeTimeData.js +0 -98
  589. package/libx/_runtime/db/utils/stream.js +0 -41
  590. package/libx/_runtime/hana/Service.js +0 -173
  591. package/libx/_runtime/hana/conversion.js +0 -73
  592. package/libx/_runtime/hana/customBuilder/CustomCreateBuilder.js +0 -11
  593. package/libx/_runtime/hana/customBuilder/CustomDeleteBuilder.js +0 -17
  594. package/libx/_runtime/hana/customBuilder/CustomDropBuilder.js +0 -12
  595. package/libx/_runtime/hana/customBuilder/CustomExpressionBuilder.js +0 -23
  596. package/libx/_runtime/hana/customBuilder/CustomFunctionBuilder.js +0 -34
  597. package/libx/_runtime/hana/customBuilder/CustomReferenceBuilder.js +0 -38
  598. package/libx/_runtime/hana/customBuilder/CustomSelectBuilder.js +0 -90
  599. package/libx/_runtime/hana/customBuilder/index.js +0 -11
  600. package/libx/_runtime/hana/driver.js +0 -205
  601. package/libx/_runtime/hana/dynatrace.js +0 -130
  602. package/libx/_runtime/hana/execute.js +0 -429
  603. package/libx/_runtime/hana/localized.js +0 -39
  604. package/libx/_runtime/hana/pool.js +0 -186
  605. package/libx/_runtime/hana/search.js +0 -20
  606. package/libx/_runtime/hana/search2Contains.js +0 -106
  607. package/libx/_runtime/hana/search2cqn4sql.js +0 -98
  608. package/libx/_runtime/hana/streaming.js +0 -248
  609. package/libx/_runtime/messaging/Outbox.js +0 -15
  610. package/libx/_runtime/sqlite/Service.js +0 -153
  611. package/libx/_runtime/sqlite/conversion.js +0 -47
  612. package/libx/_runtime/sqlite/convertAssocToOneManaged.js +0 -60
  613. package/libx/_runtime/sqlite/convertDraftAdminPathExpression.js +0 -74
  614. package/libx/_runtime/sqlite/customBuilder/CustomExpressionBuilder.js +0 -24
  615. package/libx/_runtime/sqlite/customBuilder/CustomFunctionBuilder.js +0 -102
  616. package/libx/_runtime/sqlite/customBuilder/CustomSelectBuilder.js +0 -16
  617. package/libx/_runtime/sqlite/customBuilder/CustomUpsertBuilder.js +0 -47
  618. package/libx/_runtime/sqlite/customBuilder/index.js +0 -49
  619. package/libx/_runtime/sqlite/execute.js +0 -345
  620. package/libx/_runtime/sqlite/localized.js +0 -49
  621. package/libx/outbox/index.js +0 -307
package/CHANGELOG.md CHANGED
@@ -4,6 +4,118 @@
4
4
  - The format is based on [Keep a Changelog](https://keepachangelog.com/).
5
5
  - This project adheres to [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## Version 9.0.2 - 2025-05-28
8
+
9
+ ### Changed
10
+
11
+ - REVERT: For drafts, read-only fields must be set in `CREATE` handlers (calculated values set in `NEW` handlers are cleansed). If children are added in draft `CREATE` handlers, the field `DraftAdministrativeData_DraftUUID` must be set.
12
+
13
+ ### Fixed
14
+
15
+ - `cds.load()` ignores the outbox model if it's the only model source, helping `watch` to suppress it as well.
16
+
17
+ ## Version 9.0.1 - 2025-05-26
18
+
19
+ ### Changed
20
+
21
+ - Lean draft handler is registered in a service only if a draft-enabled service entity exists
22
+
23
+ ### Fixed
24
+
25
+ - `cqn2odata`: value formatting in OData v4 lambda expressions
26
+ - Processing in `filed-based-messaging` must be async
27
+ - `Location` response header for REST protocol
28
+ - `cds.log` is unwired from `cds.env` now, which allows to use `cds.log` in plugins, without risk of loading `cds.env` too early.
29
+ - Elements from `mixin` are now being considered by `minify`
30
+ - Lean draft: Insert.entries on draft enabled entity
31
+ - Remote call of action/function always forwards passed headers
32
+ - `cds serve` no longer fails with an duplicate install error if the shell's working directory differs in case (like `C:` vs `c:` on Windows).
33
+ - Erroneously skipped input validation for local service calls
34
+
35
+ ## Version 9.0.0 - 2025-05-07
36
+
37
+ ### Added
38
+
39
+ - CAP-native task queues (beta; replacing generic outbox -- see section Changed for additional details)
40
+ + Events and requests to a "queued service" are written to the database in the current transaction (with default kind `persistent-queue`) and processed as asynchronous tasks
41
+ + Programmatically queue or unqueue any service via `cds.queued(srv)`/ `cds.unqueued(srv)`
42
+ + Statically queue instances of `cds.MessagingService` or `AuditLogService` via config `cds.requires.<srv>.queued = true`
43
+ + Disable the persistent task queue via `cds.requires.queue = false`
44
+ + Tasks are processed in dedicated transactions (except on SQLite, where there are no concurrent transactions)
45
+ + Tasks are retried until processed succesfully or the max. retry count is reached, i.e., adding resiliency to the respective service
46
+ + Tasks that cause unrecoverable or programming errors will remain in the database table but will not be retried
47
+ + Experimental task scheduling API `<srv>.schedule()` as variant of `<srv>.send()` with fluent API options `.after(<ms>)` and `.every(<ms>)`
48
+ + Experimental task callback API `<srv>.after('<event>/#succeeded', (results, req))`/ `<srv>.after('<event>/#failed', (error, req))`
49
+ + Experimental task trigger API `<srv>.flush()`
50
+ + Experimental application-level task status management to avoid long-lasting database locks
51
+ + Enable via `cds.requires.queue.legacyLocking = false`
52
+ + Caution: Application-level task status management only works if all active app deployments are on cds^9!
53
+ - Inbox: Inbound messages can be accepted as asynchronous tasks via config `cds.requires.messaging.inboxed = true`
54
+ - Not null validiations for actions and functions
55
+ - `cds.auth`: Provide custom configuration to `@sap/xssec`-based authentication via `cds.requires.auth.config`
56
+ - IAS: Token validation for requests to the app's "cert url" (with `.cert` segment in the domain)
57
+ - Support refs with longer path expressions like `ref: ['root', 'child', 'subchild', 'ID']` when resolving queries to the target entity
58
+ - `PATCH` as synonym for `UPDATE` during event handler registration
59
+ - `UPSERT` semantics for `PUT` requests can be deactivated via flag `cds.runtime.put_as_upsert=false`
60
+
61
+ ### Changed
62
+
63
+ - Evolution of the generic outbox to CAP-native task queues:
64
+ + `cds.queued()`/ `cds.unqueued()` replace `cds.outboxed()`/ `cds.unboxed()` (temporary compat in place)
65
+ + Global configuration `cds.requires.queue` replaces `cds.requires.outbox` (temporary compat in place)
66
+ + New default `cds.requires.queue = true`. This change requires a database deployment (for table `cds.outbox.Messages`) if `cds.requires.outbox` was not manually set to `true` before.
67
+ + Default `chunkSize` reduced from `100` to `10`. If parallel processing is disabled (`parallel = false`), the `chunkSize` config is ignored and the effective `chunkSize` is `1`.
68
+ - Support for `@sap/cds-mtxs` version 1 is dropped
69
+ - Service level restrictions for application service calls are enforced by default
70
+ + Opt out with `cds.features.service_level_restrictions=false` until next major version
71
+ - `req.diff` uses a deep expand to fetch data for deep update comparison. Previously, it read each composition layer sequentially.
72
+ - `cds.test` now requires module `@cap-js/cds-test` to be installed. Test dependencies like `axios`, `chai`, `chai-as-promised`, and `chai-subset` can be usually removed in favor of `@cap-js/cds-test`.
73
+ - `cds.context.locale` is only set if initiated from an HTTP client specifying a locale
74
+ - Only new major version 4 of SAP Cloud SDK is supported from now on . Please make sure to upgrade. Detailed changes are documented in the [migration guide](https://github.com/SAP/cloud-sdk-js/blob/main/V4-Upgrade-Guide.md).
75
+ - `cds-serve` now fails if `@sap/cds` would be loaded from different installation paths to prevent inconsistent server state. Such situations are always a setup issue, often caused by plugins that require diverging versions. Disable with `cds.server.exit_on_multi_install: false`.
76
+ - For drafts, read-only fields must be set in `CREATE` handlers (calculated values set in `NEW` handlers are cleansed). If children are added in draft `CREATE` handlers, the field `DraftAdministrativeData_DraftUUID` must be set.
77
+ - `hdbtabledata` files created by `cds compile/build` now instruct SAP HANA to decode base64 values in CSV files for `LargeBinary` elements. This aligns the behavior with SQLite and H2, avoiding manual base64 decoding. It can be disabled with `cds.hana.table_data.column_mapping.LargeBinary=false`.
78
+ - `PATCH` requests no longer create the target resource if it doesn't exist (`UPSERT` semantics)
79
+ + Re-enable via flag `cds.runtime.patch_as_upsert=true`
80
+ - `PUT` requests no longer set unprovided properties to their default values (`REPLACE` semantics)
81
+ + Re-enable via flag `cds.runtime.put_as_replace=true`
82
+ + If enabled, the defaulting is now done in the protocol adapter
83
+ - `req.params` is an array of objects (instead of plain values for single-keyed entities with key `ID`)
84
+ + Opt out with `cds.features.consistent_params=false` until next major version
85
+
86
+ ### Fixed
87
+
88
+ - Webhook creation in `enterprise-messaging` is more resilient in case of multiple instances
89
+ - `cdsjsonschema` protocol in lower case for cds json schema
90
+ - In `CREATE` handlers for drafts, the original path is preserved
91
+ - `@sap/cds-mtxs` is now loaded before other plugins so that they can register handlers for mtx services.
92
+ - The default index page respects now `cds.odata.containment`
93
+ - Remove incorrect `Type` suffix from `@odata.context` for views with parameters
94
+ - Support where clauses in refs
95
+
96
+ ### Removed
97
+
98
+ - Legacy OData adapter which was enabled with compat `cds.features.odata_new_adapter=false`
99
+ - Legacy Database services which were enabled with `@sap/cds-hana` or `sqlite3`
100
+ - `@cds.default.order` and `@odata.default.order` for implicit sorting
101
+ - `cds.auth`: Support for `@sap/xssec^3` (incl. compatibility mode of `@sap/xssec^4`)
102
+ - Undocumented compat flag `cds.features.odata_v2_result_conversion`
103
+ - Undocumented util `cds.utils.pool`
104
+ - Undocumented method `INSERT.as`. Use `INSERT.from` instead to insert sub `SELECT` queries.
105
+ - Undocumented method `req._queryOptions` of `cds.Request` belonging to the new OData adapter
106
+ - Undocumented method `_reset` of the `cds.ql` API
107
+ - Undocumented property `cmd` of the `cds.ql` `Query` class. Please use method `kind` instead.
108
+ - Undocumented method `protocol4` of the `Protocol` class. Please use property `def.protocols` instead.
109
+ - Undocumented methods `impl` and `with` of the `ApplicationService` class. Please use `prepend` instead.
110
+ - Undocumented compat flag `cds.features.rest_error_handler`
111
+ - Deprecated compat flags `cds.features.compat_restrict_bound` and `cds.env.features.compat_restrict_where`
112
+ - Deprecated compat flag `cds.features.stream_compat`
113
+ - Deprecated feature flag `cds.log.kibana_custom_fields`. Please use `cds.log.als_custom_fields` instead`.
114
+ - Deprecated compat flag `cds.features.keys_in_data_compat`
115
+ - Deprecated element-level annotation `@Search.defaultSearchElement`. Please use annotation `@cds.search` instead.
116
+ - Deprecated stripping of unnecessary topic prefix `topic:` in messaging
117
+ - Deprecated messaging `Outbox` class. Please use config or `cds.outboxed(srv)` to outbox your service.
118
+
7
119
  ## Version 8.9.4 - 2025-05-16
8
120
 
9
121
  ### Fixed
@@ -37,6 +149,7 @@
37
149
  - `cds.env` merging for `null` values
38
150
  - Best-effort mechanisms for lambda support on OData V2 remote services (usage of functions in lambda expressions)
39
151
  - Use extended model in `enterprise-messaging` inbound handlers
152
+ - Compat flag `cds.features.draft_compat` for handler registration in draft scenarios
40
153
 
41
154
  ## Version 8.9.0 - 2025-03-31
42
155
 
@@ -613,683 +726,3 @@
613
726
  - Deprecated csn entity proxy `<entity>_texts`. Use `<entity>.texts` instead.
614
727
  - Deprecated built-in `cds.compile.to.gql` and `cds.compile.to.graphql` compile targets. These are provided by `@cap-js/graphql` plugin versions >= 0.9.0.
615
728
  - Deprecated API `srv.stream`. Use `SELECT` with a single `cds.LargeBinary` column instead.
616
-
617
- ## Version 7.9.4 - 2024-07-18
618
-
619
- ### Fixed
620
-
621
- - View resolving for `cds.features.lean_draft`
622
- - Error in `enterprise-messaging` deploy script
623
- - Properly forward path expression infront of lamda functions for `odata-v2` remote services
624
- - OData queries selecting the same column with `$count=true`
625
- - Closed higher end of version range for dependency on `cds-types`
626
-
627
- ## Version 7.9.3 - 2024-06-27
628
-
629
- ### Fixed
630
-
631
- - `cds compile --to serviceinfo` returns the correct URL path for Java applications.
632
- - Prevent HANA deadlocks when processing outbox table
633
- - Invalid cache for `SiblingEntity` requests
634
- - `cds.test` recommends version 7 of `chai-as-promised`. Version 8 is ESM-only and does not work with `cds.test` at the moment.
635
- - Loading of `cds.plugins` now respects the (internal!) property `cds.env.plugins` again.
636
- - `req.data` and `req.INSERT.entries` were not pointing to same object if it contains more than one entry.
637
-
638
- ## Version 7.9.2 - 2024-05-22
639
-
640
- ### Fixed
641
-
642
- - Server crash in case of certain errors in Cloud SDK
643
- - Bug in restriction of entities modeled as composition of aspects
644
- - `$search`: resolve an exception accessing `req.query.elements`
645
- - Ignore flattened associations in projection on remote entities
646
- - Falsy keys in `cds.ql` were ignored in usage like `SELECT.from(Books, 0)`
647
-
648
- ## Version 7.9.1 - 2024-05-13
649
-
650
- ### Fixed
651
-
652
- - `cds.compile.to.sql` doesn't fail for older compiler versions if `postgres` keywords aren't defined
653
- - `cds compile --to serviceinfo` no longer detects a Java project if there is a pom.xml file in a subfolder of `app/`
654
- - `acquireTimeoutMillis` is ensured if custom pool config is provided
655
-
656
- ## Version 7.9.0 - 2024-04-30
657
-
658
- ### Added
659
-
660
- - Option `cds.env.sql.transitive_localized_views: false` to skip generating transitive localized views for entities which don't have own localized elements, but only associations to such. Supported for Java and new database services in Node.js (ignored for old ones).
661
- - Option `cds.env.sql.native_hana_associations: false` to skip generating native HANA associations.
662
- - Running `cds compile --to sql` with `@cap-js/sqlite` installed now uses `session_context('$user.locale')` in generated DDL statements instead of generating static localized views for 'en', 'fr', and 'de' (same for `cds.deploy`).
663
- - `api`: export reserved keywords for postgres via `cds.compiler.to.sql.keywords.postgres`
664
- - Kind `legacy-hana` and profile `better-hana` for local testing scenarios.
665
- - Support for PDF files (MIME type `application/pdf`) when the `cds.env.features.odata_new_adapter` flag is set to `true`
666
- - Lean draft: Support for filtered compositions (remain in the document)
667
- - Support for `COUNT_DISTINCT` as OData data aggregation default method
668
- - Better support for `profiles` in cds schema for `package.json` and `.cdsrc.json`
669
- - Performance improvement for generating `@odata.context` url if `cds.features.odata_new_parser` is enabled
670
- - Alpha support for SAP Event Broker-based messaging (kind `event-broker`)
671
-
672
- ### Changed
673
-
674
- - Deprecated *INSERT.into(...) **.as** (SELECT...)* → use *INSERT.into(...) **.entries** (SELECT...)* instead.
675
- - Default value of `cds.env.log.mask_headers` changed to `['/authorization/i', '/cookie/i', '/cert/i', '/ssl/i']` (adding `'/cert/i'` and `'/ssl/i'`)
676
- - Error messages for entities annotated with '@cds.autoexpose'
677
- - For Java apps `cds.sql.transitive_localized_views` now defaults to `false` to create less database views.
678
- - For Java apps `cdsc.betterSqliteSessionVariables` now defaults to `true` to enable session variables on H2 and SQLite by default.
679
-
680
- ### Fixed
681
-
682
- - `cds.compile.to.yaml` produced invalid YAML for compacted lines
683
- - Handling of If-None-Match header for non-existing entity
684
- - Revert json schema for cds schemas to `draft-07` to prevent VS Code warnings about unsupported schema features.
685
- - Remote services: JSON representation of error shall include `request` and `response`
686
- - Aliasing of associated entity column in case of expand by CQN build with joins.
687
- - `$apply` scenarios when used alongside `cds.env.features.odata_new_adapter = true` and the new database layer
688
- - ETag handling combined with where restrictions
689
- - `cds compile --to hdbtabledata` now correctly supports CSV files using format `.texts_<lang>.csv`. Before the `include_filter` wasn't set in the generated `.hdbtabledata` files.
690
- - `cds` commands no longer crash when executed in the `@sap/cds` installation dir.
691
- - `cds.infer`: exposed association of query is inferred as `cds.Association` and not as it's target
692
-
693
- ## Version 7.8.2 - 2024-04-22
694
-
695
- ### Fixed
696
-
697
- - `.find` and `.filter` in `linked.entities()` now returns values instead of names
698
- - `cds.app.serve.from(pkg,folder)` did not consider `pkg` for serving static resources
699
-
700
- ## Version 7.8.1 - 2024-04-11
701
-
702
- ### Fixed
703
-
704
- - In some cases, `<entity>.drafts` erroneously pointed to a CSN entity stub.
705
- - Feature vectors including falsy values like `{ ft1: true, ft2: true, ft3: false }`
706
-
707
- ## Version 7.8.0 - 2024-03-25
708
-
709
- ### Added
710
-
711
- - Health check endpoint `/health` in default server
712
- - Class `cds.service` now provides getters for `entities`, `types`, `events` and `operations`. These return iterable objects, which can be used in `for...of` loops.
713
- - Class `cds.entity` getters for `keys`, `associations`, `operations` also return `Iterable` objects now
714
- - Method `compile.to.serviceinfo()` now lists all Node.js service endpoints in cases where multiple protocols are configured. For Java, the list is still limited to the first endpoint. This will be fixed in a future release.
715
- - More warnings for deprecated features, functions and annotations.
716
-
717
- ### Fixed
718
-
719
- - Reverted `cds.Association` being derived from `cds.struct`; it's now derived from `cds.type` again.
720
- - Entity definitions using joins were erroneously marked as `_unresolved`
721
- - Consistent error messages for query options validation with new parser
722
- - Validation for mandatory associations which target entities with defaulted keys
723
- - Transaction handling for aborted streaming requests
724
- - Create/Update over filtered managed compositions
725
- - Templates are cached at the model (instead of the service)
726
- - Deprecation warnings use `cds.log()` in production
727
- - Single quote in a string in `.where` for remote service
728
- - Escaped characters in double quoted search term when using `odata_new_parser`
729
-
730
- ## Version 7.7.3 - 2024-03-18
731
-
732
- ### Fixed
733
-
734
- - `cds.log`: preserve message property of details through stringification (it's non-enumerable if the detail entry is an error)
735
- - Auto-exposed child entities with multiple restrictions
736
- - Calculation of read-only values in custom code during creation of new drafts
737
-
738
- ## Version 7.7.2 - 2024-03-11
739
-
740
- ### Fixed
741
-
742
- - Requests to actions/functions on entities in draft state via navigation.
743
- - PUT/PATCH with if-none-match: * forces insert
744
-
745
- ## Version 7.7.1 - 2024-03-06
746
-
747
- ### Fixed
748
-
749
- - JWT authentication for Event Mesh endpoints
750
- - `cds.log`'s json formatter: ensure `type` is set (required on kubernetes until CLS defaults this)
751
- - Erroneously generated foreign keys in `req.data` for UPDATE using path expressions
752
- - `INSERT.columns.rows` for multiple nested composition of aspects
753
- - Paths passed to `tar` on Windows are now normalized to use forward slashes.
754
-
755
- ## Version 7.7.0 - 2024-02-26
756
-
757
- ### Added
758
-
759
- - Improved trace output for bootstrap phase. For example try that:
760
- ```js
761
- DEBUG=trace cds w bookshop | grep trace
762
- ```
763
- - Support for `@odata.draft.bypass` to allow direct modifications of active instances.
764
- - `req.user.tokenInfo` for `@sap/xssec`-based authentication (`ias`, `jwt`, `xsuaa`)
765
- - `cds.fiori.draft_lock_timeout` as successor of `cds.drafts.cancellationTimeout`.
766
- + Possible values are `/^([0-9]+)(h|hrs|min)$/` or a number in milliseconds.
767
- - There is a new `sap.common.Timezones` entity with a basic time zone definition. There will be accompanying data in package `@sap/cds-common-content`.
768
- - Deprecation warnings for configuration options `cds.drafts.cancellationTimeout`, `cds.features.serve_on_root`, `cds.features.stream_compat`, `cds.fiori.lean_draft` and `cds.requires.middlewares`, as well as for the properties `req.user.locale` and `req.user.tenant`. The deprecation warnings can be turned off by setting `cds.features.deprecated` to `off`.
769
-
770
- ### Changed
771
-
772
- - The index page now lists all service endpoints, which is important for services that are exposed through multiple protocols.
773
- - `cds.deploy` improves error diagnostics with deeper `Query` object inspection.
774
- - Slightly changed the default export for ESM compatibility. This fixed failing ESM imports in Vitest tests.
775
-
776
- ### Fixed
777
-
778
- - Persistent outbox must not be used for `t0` tenant.
779
- - Second `await cds.connect.to('X')`, where initialization of `X` results in an error, did not return.
780
- - Support additional draft requests.
781
- - `cds.log` with `null` as argument.
782
-
783
- ## Version 7.6.4 - 2024-02-21
784
-
785
- ### Fixed
786
-
787
- - Emitting multiple message with an in-memory outbox
788
- - Occasional crash for invalid draft requests
789
- - On the index page, aditional links now show up again for non-OData services.
790
- - Handling of thenables for queries
791
-
792
- ## Version 7.6.3 - 2024-02-13
793
-
794
- ### Fixed
795
-
796
- - Event Mesh webhooks now add standard `before` middlewares in case of custom authorization
797
- - `compile.to.serviceinfo` no longer fails for services marked with `@protocol:'none'`. Such internal services are not shown in the output.
798
-
799
- ## Version 7.6.2 - 2024-02-09
800
-
801
- ### Fixed
802
-
803
- - Introduce i18n `BATCH_TOO_MANY_REQ` key for error message: "Batch request contains too many requests"
804
- - Properly handle `$orderby` in lean draft
805
- - View resolving in combination with `@cap-js/cds-db`
806
- - Allow `cds.requires.someService.outbox` to be a string
807
- - `cds.log`: errors, when not the first argument, were considered objects carrying custom fields
808
- - `accept` header parsing for OData requests if quality factor `q` is included
809
- - Broken links on index page if multiple protocols are configured
810
-
811
- ## Version 7.6.1 - 2024-01-30
812
-
813
- ### Fixed
814
-
815
- - Garbage collection of draft is configured with `cds.fiori.draft_deletion_timeout`
816
-
817
- ## Version 7.6.0 - 2024-01-29
818
-
819
- ### Added
820
-
821
- - `cds.upsert` as shortcut for `cds.db.upsert`
822
- - Automatic deletion of stale drafts. Feature is enabled if `cds.env.fiori.deletionTimeout` is set to a value of `true`; `true` uses the default timeout of `30d` (30 days).
823
- - Support for default exports (ESM/TS) in custom authentication
824
- - Support for executing SAP HANA procedures from SYS schema
825
- - Support for more complex on-conditions in case of READ requests
826
- - Best effort mechanism for supporting lambda expressions targeting remote odata-v2 services
827
- - Support for actions and functions which are bound to singletons
828
-
829
- ### Changed
830
-
831
- - Draft: Standard Sorting Behavior for SAP Fiori List Report Floorplan
832
- - Use new CDS schema for validation and code completion in `package.json` and `.cdsrc.json` files
833
- - Media Data Streaming
834
- + OData: Large binaries without `@Core.MediaType` annotation were previously returned as base64-encoded buffer. Starting from this `@sap/cds` version also not-annotated large binaries are ignored by OData. It is strongly recommended to annotate all large binary properties with `@Core.MediaType` and use it according to streaming scenarios.
835
- + Custom Handlers: `SELECT` with explicitly listed `SELECT.columns` of type `cds.LargeBinary` returns them as Readable streams. Large binary columns requested implicitly by `SELECT` (for example, with `.columns('*')`) are ignored.
836
- + Streaming API: `cds.stream()` and `srv.stream()` are deprecated and will be removed with the next major release. Use `SELECT` with a single `cds.LargeBinary` column instead. The resulting object will contain the name of the column and a stream value. For example, `SELECT.one.from(E).columns(['image']).where(...)` returns `{ image: <media stream> }`.
837
- + Backward Compatibility: To restore previous behavior use `stream_compat`.
838
-
839
- ### Fixed
840
-
841
- - `cds.minify` returned a shallow clone. When callers like 2sql `cds.linked` that subsequently, this left the passed-in csn in a broken, partially linked state. Now, `cds.minify` doesn't clone anymore, but modifies the passed in csn.
842
- - Handling of read-only fields in drafts
843
- - Event Mesh: Better error message for incoming messages without a topic
844
- - `cds build` now logs a better error message if an incompatible `@sap/cds` version is used.
845
- - Better error message for runtime requests to non-existing tenants in extensibility scenario.
846
- - Do not generate UUIDs for association key during `CREATE` operation.
847
- - OData aggregation with lean draft
848
- - Sorting in new odata parser with nested select statements. The default sort order is now added to the outer select statement.
849
- - Server crash in case of misformatted `groupby` transformation in `$apply`
850
- - Switched EM webhook endpoints to also use new authentication implementation
851
- - `odata_new_parser`: better error message and code for expand on non-existing elements
852
-
853
- ### Removed
854
-
855
- - Experimental `STREAM` CQN is removed and cannot be used anymore
856
-
857
- ## Version 7.5.3 - 2024-01-23
858
-
859
- ### Fixed
860
-
861
- - `cds.localize` and `cds build` produce `i18n.json` again with keys from all base languages
862
- - `cds.compile.to.serviceinfo` now correctly parses SpringBoot config with nested objects, e.g. for `cds.odata-v4.endpoint.path`
863
- - Recommend to use `chai` 4 for the time being, as `chai` 5 doesn't properly work yet (requires ESM, `chai-as-promised` not working)
864
- - View resolving for entities using property names that are identical to entity names
865
- - Direct modifications with `cds.fiori.bypass_draft` if `cds.fiori.draft_compat` is not enabled
866
- - Draft: Field validation error message does not display the name of the field
867
-
868
- ## Version 7.5.2 - 2024-01-05
869
-
870
- ### Fixed
871
-
872
- - Service-level ETag handling in legacy OData server
873
- - Only provide model to ModelProvider if extensibility or feature toggles are active
874
- - OData server driven paging when using feature flags `cds.env.features.odata_new_parser` and `cds.env.features.okra_skip_query_options`
875
-
876
- ## Version 7.5.1 - 2023-12-21
877
-
878
- ### Fixed
879
-
880
- - Resolving custom authentication implementation pointer
881
-
882
- ## Version 7.5.0 - 2023-12-14
883
-
884
- ### Added
885
-
886
- - Support for expressions in where clause of `@restrict` annotation.
887
- + Example: `@(restrict : [{ grant : ['*'], where : (NAME = $user) }])`
888
- - Function `cds.unboxed(srv)` to get the non-outboxed variant of the service
889
- - Service implementations can now be provided in .mjs modules.
890
- - Remote services: advanced configurable `CSRF` token fetching HTTP method and the URL.
891
- For example, in the configuration of your remote services, you can now configure the HTTP method and URL as follows:
892
- ```json
893
- "cds": {
894
- "requires": {
895
- "API_BUSINESS_PARTNER": {
896
- "kind": "odata",
897
- "model": "srv/external/API_BUSINESS_PARTNER",
898
- "csrf": { // this configuration implies `csrf: true`
899
- "method": "get",
900
- "url": "..."
901
- }
902
- }
903
- }
904
- }
905
- ```
906
- - `cds.log`'s built-in JSON formatter:
907
- + Extract custom fields (`cds.env.log.als_custom_fields`) and categories from args (not only error-like first objects)
908
- + Example: `LOG.info('foo', { query: 'SELECT * FROM DUMMY' }, 'bar', { categories: ['baz'] })`
909
- + `cds.env.log.mask_headers = [...]` allows to specify a list of matchers for which the header value shall be masked (i.e., printed as `***`)
910
- + Default: `['/authorization/i', '/cookie/i']`
911
- - `cds.env.fiori.bypass_draft` feature flag, designed to enable direct modifications via `POST` and `PATCH` of
912
- active instances in lean draft mode (`cds.env.fiori.lean_draft=true`). For example:
913
-
914
- ```http
915
- POST /Orders
916
- {
917
- "IsActiveEntity": true
918
- }
919
- ```
920
-
921
- - Auth kind `ias`: same SAML attr API as auth kind `xsuaa` for easier migration
922
-
923
- ### Changed
924
-
925
- - Removed and integrated former `ctx-auth` middleware into `cds.auth` middleware
926
- - `cds.log`:
927
- + `cds.env.log.format = 'plain'|'json'` allows to configure which built-in formatter is used. Defaults to `json` in production, `plain` otherwise.
928
- + If a built-in JSON formatter is used:
929
- + Field `tenant_subdomain` is filled if running on CF and information is available through authentication
930
- + Additional CF-related fields are filled if running on CF
931
- + Custom fields (`cds.env.log.als_custom_fields`) are filled if bound to an instance of Application Logging Service
932
- + Field `categories` is filled if bound to an instance of Application Logging Service
933
- + Config `cds.env.log.kibana_custom_fields` changed to `cds.env.log.als_custom_fields` (ALS = Application Logging Service) with compatibility until the next major
934
- - Package `passport` is no longer required (if `cds.env.requires.middlewares` is not set to `false`)
935
- - Type definitions for the APIs of this package are now maintained in package [`@cap-js/cds-types`](https://npmjs.com/package/@cap-js/cds-types).
936
- + If you used one of the types `CSN`, `Definitions`, `entity` of _@sap/cds/apis/reflect_, use the `Linked` counterparts instead.
937
- + If you used the type `CQNQuery` of _@sap/cds/apis/cqn_, use `SELECT` or a union type instead.
938
- + This also includes various fixes to Typings for
939
- + `req.subject` like `SELECT.from(req.subject)`
940
- + `SELECT.columns([...])`
941
- + `cds.db`
942
- + `cds.util`
943
- + `cds.context.features`
944
- - The number of files logged on `cds serve` is now limited to 30 by default. You can run with `DEBUG=serve` to show all files.
945
- - `express.static` is only mounted if the target folder (`cds.folders.app`) exists
946
- - `cds.outbox.Messages` no longer uses aspect `cuid` to reduce model size impact in case `@sap/cds/common` is not used otherwise
947
-
948
- ### Fixed
949
-
950
- - Messaging: Listen to `*`
951
- - Drafts of `@readonly` entities cannot be deleted
952
- - Made `srv.prepend()` robust by not allowing async callbacks and hence not being an async function itself anymore
953
- - Formatting for stringified number-literal value
954
- - Secrets are now masked with `DEBUG=cds.service.factory`
955
- - The timestamp of cds.context is not propagated to new root contexts
956
- - `cds.localize` uses less memory to create translation bundles
957
- - `UPSERT` operation failed to fill DateTime/Timestamp fields
958
- - Use original logic (based on `NODE_ENV`) to load cds plugins from `devDependencies`
959
- - Property `tenant` also available on express' `req` object with basic and mocked auth
960
- - Empty `req.data` in before `DELETE` handler in draft
961
- - Loading `cds-plugins` now offers a hook to add a more flexible plugin loader, e.g., for corrupt `package.json` files.
962
- - Ignore default values of associations for draft entities
963
- - OData: client-side errors (4xx) logged as warnings instead of errors
964
- - IAS authentication: use `tokenInfo.getClientId()` instead of `payload.azp` as it implements a fallback
965
- - Deep updates with binary keys
966
- - Allow `null` values in `cds.env` (example package.json excerpt: `{ "cds": { "features": { "foo": null } } }`)
967
- - Collection-bound actions/functions called via navigation
968
-
969
- ### Removed
970
-
971
- - Deprecated global configuration feature flag `cds.env.features.fetch_csrf`.
972
- Instead, please use `csrf` and `csrfInBatch` to configure your remote services.
973
- These options will allow to configure CSRF-token handling.
974
- - Compat for deprecated `cds.env.auth.passport`. Use `cds.env.requires.auth` instead.
975
-
976
- ## Version 7.4.2 - 2023-11-30
977
-
978
- ### Fixed
979
-
980
- - Typing for `DELETE.from(<e>.drafts)`
981
- - UUID keys must not be generated for associations
982
-
983
- ## Version 7.4.1 - 2023-11-23
984
-
985
- ### Fixed
986
-
987
- - Add dynamic properties to result when experimental feature `cds.env.features.okra_skip_query_options` is active
988
- - Allow negative integers in new parser
989
- - Allow deletion of instances outside the draft tree
990
- - Tenant lookup in OData metadata requests
991
- - `cds.parse.csv` and `cds deploy` correctly parse CSV files with Windows file endings (CRLF) and quoted values
992
- - Typescript Typings
993
-
994
- ## Version 7.4.0 - 2023-11-13
995
-
996
- ### Added
997
-
998
- - Any service is outboxable via `srv = cds.outboxed(srv)`
999
- - Draft: support `HasActiveEntity eq false` by read
1000
- - Check if OData function/action params exist for complex types
1001
- - Remote services: destination option `jwt` set to `null` instructs that an incoming request's JWT shall not be passed to SAP Cloud SDK, e.g., when it shall use a fresh client credentials flow token
1002
- + Example:
1003
- ```json
1004
- "requires": {
1005
- "API_BUSINESS_PARTNER": {
1006
- [...]
1007
- "destinationOptions": {
1008
- "jwt": null
1009
- }
1010
- }
1011
- }
1012
- ```
1013
- - Alpha feature flag `cds.env.fiori.wrap_multiple_errors` to toggle the following behaviour for OData errors meant to be consumed by SAP Fiori Elements:
1014
- In cases where multiple errors occur and the flag is set to `false`, the first error is presented as the top-level error (replacing the generic "multiple errors" wrapper).
1015
- The default value is `true`, but `false` will become the default value in cds^8.
1016
- - On CF, the default keep alive timeout of the server is set to 91s (to exceed the 90s of CF's gorouter)
1017
- - `cds deploy` now auto-fills the `ID_texts` field (which get created for entities marked with `@fiori.draft.enabled`) in csv and json data files with a stable UUID. This way, it does not need to be manually added to data files. Also, as the value is stable (a hash of the semantic key fields `ID` and `locale`), it works with `UPSERT` statements.
1018
-
1019
- ### Changed
1020
-
1021
- - Default outbox configuration (overridable via `cds.env.requires.outbox = { ... }`):
1022
- + `kind` changed to `persistent-outbox` (was `in-memory-outbox`)
1023
- + `parallel` changed to `true` (i.e., messages are not emitted in sequence)
1024
- - Internal class `OutboxService` is deprecated and will be removed
1025
-
1026
- ### Fixed
1027
-
1028
- - `req.subject` in lean-draft handlers
1029
- - `cds.odata.batch_limit` wasn't taken into account
1030
- - Enterprise-Messaging: Only set tenant information for multitenant apps
1031
- - Enterprise-Messaging: Race condition in `subscribe` event
1032
- - Draft: delete of active entity is forbidden, if draft exist
1033
- - Draft: sorting of draft entities in `list status: all`
1034
- - Draft: invalid delete draft request now rejects with error
1035
- - Draft: Enhance Draft Edit functionality with exclusive record lock
1036
- - Typings for `req.reject/error/info/warn`
1037
- - Deep delete with mixins on new db layer did not work
1038
- - Special strings like `'$now'`, `'$user'` and `'$uuid'` expanded automatically
1039
- - Only services that are served via OData are precompiled during startup
1040
- - Response status of not existing mocks returned 200 instead of 404
1041
- - Calculation of @Capabilities in case of complex $apply
1042
- - `test.data.reset()` did not delete drafts
1043
- - `resolveView` considers `list` for renamed columns
1044
- - `cds.schema` now loads lazily
1045
- - `odata_new_parser`: `$expand=` no longer throws an error with and is simply ignored
1046
- - `odata_new_parser`: Empty custom query params like `Foo?bar` are ignored
1047
- - `odata_new_parser`: generated wrong CQN for queries like `$filter=false or ref eq 5`
1048
-
1049
- ## Version 7.3.1 - 2023-10-23
1050
-
1051
- ### Fixed
1052
-
1053
- - `cds-ts` no longer fails if configured with an ESM loader. It tries loading files w/ `import()` in this case.
1054
- - `cds deploy` for draft enabled entities
1055
-
1056
- ## Version 7.3.0 - 2023-10-04
1057
-
1058
- ### Added
1059
-
1060
- - `cds.localized` now caches i18n bundles per locale and per model to speed up repeated usages of the same bundle at runtime, for example, in repeated calls to `cds.compile.for.edmx()`.
1061
- - Based on `cds.localized` with cached bundles, a new operation `cds.localized.lookup(i18n_key, locale)` is provided.
1062
- - If env variable `CDS_TEST_ENV_CHECK` is set, `cds.test.in()` detects if `cds.env` was loaded before from a different folder.
1063
- - `cds.test.log()` allows to capture and analyze any console log output. `cds.test.verbose()` is now deprecated.
1064
- - Typings for `cds.tx`
1065
- - Add method `cds.schema.default4(schemaId)` to retrieve json schema based on its id
1066
- - Support for pseudo role `internal-user` with authentication kind `ias`
1067
- - CSV files with multiline values, i.e. line breaks, are now supported with `cds deploy`
1068
-
1069
- ### Changed
1070
-
1071
- - If omitted in the accept header, `ExponentialDecimals` no longer gets defaulted (to `true`), which violated the OData 4.0 specification.
1072
- This change can _temporarily_ be overridden via `cds.env.odata.defaultExponentialDecimals = 'true/false'`.
1073
- - Make type signature of `extend.with` more general
1074
- - `cds.test.data.autoReset()` is deprecated in favor of explicit `cds.test.data.reset()` call, like `beforeEach (test.data.reset)`.
1075
- - `cds.utils.uuid()` now uses `randomUUID` function of node `crypto` module instead of `uuid` package
1076
- - `@Capabilities` restrictions defined on entity level are also applied if navigating to the entity. Restrictions defined directly on the navigation now override restrictions defined on the target entity.
1077
-
1078
- ### Fixed
1079
-
1080
- - Draft: activate managed fields were miscalculated in some cases
1081
- - Error with `exists` predicate in `@restrict.where` when calling compositions
1082
- - `IsActiveEntity` in error target for lean draft
1083
- - Remote Service: OData v2 compliant representation of Edm.Decimal, Edm.Double, and Edm.Int64 in URL
1084
- - In draft activate managed fields were calculated wrongly in some cases
1085
- - On draft save, missing entries in `req.headers`
1086
-
1087
- ## Version 7.2.1 - 2023-09-21
1088
-
1089
- ### Fixed
1090
-
1091
- - HTTP headers argument was not forwarded to remote services when using the `srv.send(...)` API.
1092
- - Not existing draft upon `SAVE` has own error code.
1093
- - Links to documentation in Typescript definitions.
1094
- - Remote service won't check for `credentials.url` in case of messaging.
1095
- - Lean draft: Implicitly added `limit` in some lean draft read scenarios.
1096
- - Lean draft: Association keys in lean draft.
1097
- - Remote service: Preserve namespaces in URLs that do not match the service's namespace.
1098
-
1099
- ## Version 7.2.0 - 2023-09-04
1100
-
1101
- ### Added
1102
-
1103
- - Typescript definition for:
1104
- - The `cds.exit()` method.
1105
- - The `label` option parameter in the `cds.log()` API. For example: `cds.log('log message', { label: 'adapter' }`.
1106
- - A variant of the `roles` property of the `cds.User` class.
1107
- - `@restrict` annotations can now prevent the creation of drafts ([see documentation](https://cap.cloud.sap/docs/guides/authorization#restrictions-and-draft-mode))
1108
- - JSON Schema validation for `cds.requires.multitenancy.jobs` settings.
1109
- - Managed associations to one with exactly one foreign key can now have a default value.
1110
- - Experimental feature flag `cds.env.features.okra_skip_query_options`. This feature allows you to bypass the parsing of query options by the legacy OData V4 Server (Okra). Please note that this feature can only be utilized in conjunction with the new OData parser, which is activated by setting the feature flag `cds.env.features.odata_new_parser = true`.
1111
- - Support for `@requires: 'any'` to make service public, i.e., no authenticated user is required
1112
-
1113
- ### Changed
1114
-
1115
- - The built-in `java` profile sets `build.target` to `.` by default
1116
- - Decimals from query options (e.g., `$filter`) are represented as strings in CQN
1117
- - Improve error message for unsupported transformations with `$apply`
1118
- - For database dialect H2, specialized, localized views for languages `de` and `fr` are no longer generated.
1119
- - Authentication kinds `jwt`, `xsuaa`, and `ias` throw an error during bootstrapping if the necessary credentials are
1120
- unavailable.
1121
- Previously, a warning was logged, and authentication was skipped.
1122
- See `cds bind`/ Hybrid Testing in CAPire for how to combine local development and cloud resources.
1123
- - The Typescript definitions now make use of the default export.
1124
-
1125
- ### Fixed
1126
-
1127
- - Trace middleware: Adapted usage of `performance.now()` for Node 20.
1128
- - Draft: Associations to non-draft enabled entities must never point to drafts
1129
- - Avoided type error in old db post-processing
1130
- - `<remote-srv>.run('/arbitrary-url')` now defaults to a get request and doesn't add request body
1131
- - `@cds.query.limit` is cached per projection
1132
- - Application crash for incorrect usage of REST-style API to run queries
1133
- - The `@requires` annotation on entity level didn't get applied to bound operations
1134
- - `cds.test` run with a profile parameter such as `cds.test('run', '--profile', 'integration-tests')` will use the
1135
- correct profile.
1136
- - `cds.env.requires.auth.restrict_all_services = false` in combination with `cds.env.requires.middlewares = true` (the default)
1137
-
1138
- ## Version 7.1.2 - 2023-08-11
1139
-
1140
- ### Fixed
1141
-
1142
- - `req.tenant` is undefined when using the new OData parser
1143
- - Draft: Replace some occurrences of the `arr.push(...largeArray)` pattern when copying large arrays to prevent maximum
1144
- call stack size exceeded errors due to large deep update processing when saving the draft
1145
- - Keys are no longer added to the diff as they could be renamed, leading to SQL errors
1146
- - Custom-bound actions for draft-enabled entities don't trigger a READ request on application service anymore
1147
- - `cds.connect.to('db', options)`: add-hoc options for SAP HANA Database Service
1148
- - Reading key-less singleton with `$select` clause while using the new OData parser `cds.env.features.odata_new_parser`
1149
- - Avoided using colored logs if process.env.NO_COLOR is set or not logging to a terminal (i.e., `!process.stdout.isTTY || !process.stderr.isTTY`)
1150
-
1151
- ## Version 7.1.1 - 2023-08-01
1152
-
1153
- ### Fixed
1154
-
1155
- - Lean draft: read actives via service on draft edit
1156
- - Only log the error in case of an unhandled rejection
1157
- - Resolve column name for experimental `STREAM` CQN queries that point to views
1158
-
1159
- ## Version 7.1.0 - 2023-07-28
1160
-
1161
- ### Added
1162
-
1163
- - Enable PDF export via GET to collection with accept header `application/pdf`.
1164
- Custom handler must return the following:
1165
- ```
1166
- {
1167
- value: <instance of Readable>,
1168
- $mediaContentType: <String>, // > optional, defaults to: application/pdf
1169
- $mediaContentDispositionFilename: <String>, // > optional
1170
- $mediaContentDispositionType: <String> // > optional, defaults to 'attachment' if $mediaContentDispositionFilename is set
1171
- }
1172
- ```
1173
- - Schema for `cds` entry in `package.json` now has a tooltip and default value
1174
- - `srv.endpoints`: Array containing the information for all endpoints at which the service is served.
1175
- Example:
1176
- ```
1177
- [
1178
- { kind: 'odata-v4', path: '/odata/v4/browse' },
1179
- { kind: 'rest', path: '/rest/browse' }
1180
- ]
1181
- ```
1182
- - Service level support for @restrict. Limited to grant: '*' and all filter conditions in `where` are ignored.
1183
- Example:
1184
- ```
1185
- @(restrict: [{
1186
- grant: '*',
1187
- to: ['authenticated-user']
1188
- }])
1189
- ```
1190
- - Support for resolving experimental `STREAM` CQN queries that point to views
1191
-
1192
- ### Fixed
1193
-
1194
- - Multiple TypeScript fixes/improvements
1195
- - Proper handling for `expand=*` for OData URL to CQN parser (`cds.env.features.odata_new_parser`)
1196
- - Corrected the resolution of fully qualified operation names in the REST adapter.
1197
- - Log level for OData metadata cache was not handled correctly
1198
- - Protocol paths are normalized to always have a leading slash
1199
- - `@odata` shortcut for `odata-v4` protocol with custom configuration
1200
- - Set default protocol to `odata-v4`, independent of the order in `cds.env.protocols`
1201
- - Now data is correctly logged for `GET` and `DELETE` remote requests
1202
- - draft: deep update without change should not update the `modifiedAt` field
1203
- - Lean draft: do not propagate `@Capabilities.NavigationRestrictions.RestrictedProperties`
1204
- - Commit database transactions only once outbound streaming has ended
1205
- - Lean draft: deactivate legacy `drafts` getter
1206
- - Updated typings for `srv.send()`
1207
- - `$search`: exclude calculated fields/expressions from default search in projection of projections
1208
- - Immutable properties are always removed from payload during `UPDATE`
1209
- - `serviceinfo.urlPath` contains the first endpoint of the service (cf. `srv.endpoints`), which is the legacy path if
1210
- `cds.env.features.serve_on_root === true`
1211
-
1212
- ## Version 7.0.3 - 2023-07-19
1213
-
1214
- ### Fixed
1215
-
1216
- - Compile for lean draft: do not add draft entity for external entities
1217
- - Rollback awaited in REST adapter
1218
- - `service.on('error')` handler invoked only once
1219
- - `SELECT.one.localized`
1220
- - `COPYFILE_DISABLE=1` is now set for building `tar` archives by default
1221
- - Actions of projection target are no longer accessible in linked models
1222
- - Batch executes model-less mass inputs when on `@sap/hana-client`
1223
- - Requests to `/<path>/webapp` return 404 for absolute `@path` specifications
1224
- - `cds compile --to serviceinfo` no longer returns paths w/ Windows `\` path characters
1225
-
1226
- ## Version 7.0.2 - 2023-07-06
1227
-
1228
- ### Fixed
1229
-
1230
- - Glitch in `cds.deploy` if no change was applied
1231
- - Detection of `.cdsrc-private.json` during startup
1232
- - Respect capabilities annotation for draft events
1233
- - `cds compile --to serviceinfo` returns correct service paths again
1234
-
1235
- ## Version 7.0.1 - 2023-07-03
1236
-
1237
- ### Fixed
1238
-
1239
- - Feature toggle detection in single-tenant mode
1240
- - Log output for OData $batch requests
1241
- - Avoid "catastrophic backtracking" issue in Okra's (OData V4 server) tokenizer
1242
- - Transaction marked as committed too early
1243
-
1244
- ## Version 7.0.0 - 2023-06-21
1245
-
1246
- ### Added
1247
-
1248
- - Handling of expand with multiple `*` (e.g. `$expand=*,*`) in new parser. When using `*` in an `$expand`, the new OData
1249
- parser now removes all unneeded `*`.
1250
- - Tests run with `cds.test()` now also load `cds-plugins`
1251
-
1252
- ### Changed
1253
-
1254
- - Result of `READ` events is now always an array. Previously, it could be `null/undefined` (now empty array), a single object (now array with one entry), or array.
1255
- - OData: `PUT`/`PATCH` requests resulting in a new entity (i.e., the `UPSERT` effectively was an `INSERT`) return status code 201
1256
- - Draft: Draft activate requests resulting in an `UPDATE` return status code 200
1257
- - ETags are validated via `WHERE EXISTS` clause attached to query on `GET`, `PUT`/`PATCH`, and `DELETE`
1258
- - OData: `PUT`/`PATCH` with `if-match` header prevents `UPSERT`, i.e., only an existing entity can be updated by such a request
1259
- - Runtime support for `@sap/instance-manager` is removed in favor of the `cds-mtxs` Service Manager client.
1260
- - In multitenant mode, the SAP HANA pool uses the `cds-mtxs` credentials cache
1261
- - Draft handlers are registered for all entities.
1262
- - Decimals in client input are validated in runtime's assert framework (previously OData adapter)
1263
- - `cds build` and `cds deploy --to hana` have moved to `@sap/cds-dk`. Upgrade `@sap/cds-dk` to version 7 to continue using these commands.
1264
- - Changed the behavior of `SELECT` queries for single entities to return `undefined` instead of `null` when no record is found.
1265
- - Fiori preview has moved to the new `@sap/cds-fiori` module.
1266
- - Numbers are now always used as placeholders in SQL, except for `SELECT 1 From...`, `LIMIT`, and the comparison of two numeric values (e.g., `1 eq 1`).
1267
- - Only new major version 3 of SAP Cloud SDK is from now on supported. Please make sure to upgrade. Version 2 is not maintained anymore.
1268
- - `@protocol` annotation can serve multiple protocols per service.
1269
- - Per default, services are served with a protocol-specific prefix (for example, '/odata/v4' for a service using the OData V4 protocol). To also serve without this prefix, as was the case in older `@sap/cds` versions, the flag `cds.env.features.serve_on_root` can be set to `true`. Alternatively, the `@path` annotation can be used to explicitly specify an absolute path (with a leading `/`).
1270
- - `cds.requires.middlewares` is enabled by default.
1271
- - The order of CSV files that `cds deploy --to sqlite` uses now reflects the dependency order of cds models. This is needed if `UPSERT` is used to create a logically correct deployment.
1272
- - `cds.fiori.lean_draft` is activated by default. You can still set it to `false` as a fallback.
1273
-
1274
- ### Fixed
1275
-
1276
- - UUID typed key properties are no longer automatically filled during UPSERT
1277
- - OData: When undefined in the payload, requests for actions with not nullable array-type parameters result in a client-side error
1278
- - Missing `GROUP BY` in request with `$apply` in combination with aggregate on restricted entity
1279
- - When `@sap/cds` was not installed underneath project root, cds-plugins were not found
1280
- - Support for multiline texts in `properties` files
1281
- - Error when reading auth-protected entities with infix filter in expand
1282
- - Glitch in transaction handling in case of concurrent async before handlers
1283
-
1284
- ### Removed
1285
-
1286
- - Deprecated `req.run()` function, use `cds.run()` instead.
1287
- - Support for inofficial feature flag `cds.env.features.bigjs`
1288
- - Support for inofficial feature flag `cds.features.parameterized_numbers`
1289
- - Deprecated referential integrity checks at runtime
1290
- - Support for `cds-mtx`
1291
- - Support for Node 14
1292
- - Internal `req.getUriInfo()` and `req.getUrlObject()`
1293
- - `cds deploy --to hana` is now part of `@sap/cds-dk`.
1294
- - Deprecated compat mode `cds.env.features.cds_tx_protection = false`
1295
- - Beta `AuditLogService` and out-of-the-box audit logging. Use the plugin `@cap-js/audit-logging` instead.