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