@sap/cds 8.9.4 → 9.0.3

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 +121 -680
  2. package/LICENSE +15 -21
  3. package/README.md +1 -1
  4. package/_i18n/i18n_sl.properties +3 -3
  5. package/_i18n/messages.properties +1 -1
  6. package/app/index.js +1 -1
  7. package/bin/serve.js +17 -19
  8. package/eslint.config.mjs +7 -1
  9. package/lib/compile/etc/_localized.js +3 -24
  10. package/lib/compile/etc/yaml.js +6 -15
  11. package/lib/compile/for/odata.js +2 -2
  12. package/lib/compile/load.js +15 -4
  13. package/lib/compile/minify.js +1 -0
  14. package/lib/compile/to/edm-files.js +4 -33
  15. package/lib/compile/to/hdbtabledata.js +16 -3
  16. package/lib/compile/to/sql.js +1 -2
  17. package/lib/core/linked-csn.js +7 -8
  18. package/lib/dbs/cds-deploy.js +4 -3
  19. package/lib/env/cds-env.js +9 -9
  20. package/lib/env/cds-requires.js +23 -50
  21. package/lib/env/defaults.js +15 -44
  22. package/lib/env/schemas/cds-package.js +1 -1
  23. package/lib/i18n/index.js +1 -0
  24. package/lib/i18n/locale.js +41 -0
  25. package/lib/index.js +25 -15
  26. package/lib/log/cds-error.js +13 -3
  27. package/lib/log/cds-log.js +43 -18
  28. package/lib/log/format/aspects/als.js +2 -15
  29. package/lib/plugins.js +11 -11
  30. package/lib/ql/CREATE.js +1 -1
  31. package/lib/ql/DELETE.js +1 -1
  32. package/lib/ql/DROP.js +1 -1
  33. package/lib/ql/INSERT.js +9 -18
  34. package/lib/ql/SELECT.js +12 -19
  35. package/lib/ql/UPDATE.js +1 -1
  36. package/lib/ql/UPSERT.js +1 -0
  37. package/lib/ql/Whereable.js +7 -6
  38. package/lib/ql/cds-ql.js +0 -12
  39. package/lib/ql/cds.ql-Query.js +28 -68
  40. package/lib/ql/cds.ql-infer.js +97 -108
  41. package/lib/ql/resolve.js +1 -3
  42. package/lib/req/context.js +5 -4
  43. package/lib/req/request.js +46 -42
  44. package/lib/req/response.js +5 -9
  45. package/lib/req/spawn.js +38 -0
  46. package/lib/req/validate.js +9 -8
  47. package/lib/srv/bindings.js +2 -1
  48. package/lib/srv/cds-connect.js +5 -2
  49. package/lib/srv/cds-serve.js +0 -2
  50. package/lib/srv/cds.Service.js +146 -86
  51. package/lib/srv/middlewares/auth/ias-auth.js +99 -88
  52. package/lib/srv/middlewares/auth/jwt-auth.js +44 -57
  53. package/lib/srv/middlewares/cds-context.js +1 -1
  54. package/lib/srv/middlewares/ctx-model.js +1 -1
  55. package/lib/srv/middlewares/errors.js +34 -42
  56. package/lib/srv/protocols/hcql.js +35 -25
  57. package/lib/srv/protocols/index.js +0 -9
  58. package/lib/srv/protocols/odata-v4.js +1 -6
  59. package/lib/srv/srv-dispatch.js +29 -31
  60. package/lib/srv/srv-handlers.js +14 -46
  61. package/lib/srv/srv-methods.js +15 -37
  62. package/lib/srv/srv-tx.js +19 -25
  63. package/lib/test/cds-test.js +4 -263
  64. package/lib/utils/cds-utils.js +18 -2
  65. package/lib/utils/tar.js +6 -8
  66. package/lib/utils/unit.js +19 -0
  67. package/libx/_runtime/.eslintrc +1 -1
  68. package/libx/_runtime/cds-services/util/assert.js +2 -72
  69. package/libx/_runtime/cds.js +13 -6
  70. package/libx/_runtime/common/Service.js +33 -75
  71. package/libx/_runtime/common/aspects/any.js +0 -38
  72. package/libx/_runtime/common/constants/events.js +5 -13
  73. package/libx/_runtime/common/generic/auth/autoexpose.js +10 -24
  74. package/libx/_runtime/common/generic/auth/capabilities.js +23 -20
  75. package/libx/_runtime/common/generic/auth/expand.js +3 -3
  76. package/libx/_runtime/common/generic/auth/index.js +3 -3
  77. package/libx/_runtime/common/generic/auth/insertOnly.js +3 -3
  78. package/libx/_runtime/common/generic/auth/readOnly.js +4 -4
  79. package/libx/_runtime/common/generic/auth/requires.js +4 -4
  80. package/libx/_runtime/common/generic/auth/restrict.js +12 -29
  81. package/libx/_runtime/common/generic/auth/service.js +3 -3
  82. package/libx/_runtime/common/generic/auth/utils.js +2 -12
  83. package/libx/_runtime/common/generic/crud.js +22 -53
  84. package/libx/_runtime/common/generic/etag.js +18 -31
  85. package/libx/_runtime/common/generic/input.js +51 -123
  86. package/libx/_runtime/common/generic/paging.js +4 -4
  87. package/libx/_runtime/common/generic/sorting.js +8 -19
  88. package/libx/_runtime/common/generic/stream-only.js +26 -0
  89. package/libx/_runtime/common/generic/stream.js +16 -48
  90. package/libx/_runtime/common/generic/temporal.js +15 -7
  91. package/libx/_runtime/common/utils/binary.js +1 -26
  92. package/libx/_runtime/common/utils/compareJson.js +1 -2
  93. package/libx/_runtime/common/utils/cqn.js +15 -14
  94. package/libx/_runtime/common/utils/differ.js +121 -44
  95. package/libx/_runtime/common/utils/keys.js +4 -5
  96. package/libx/_runtime/common/utils/normalizeTimestamp.js +10 -1
  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 +105 -141
  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 +10 -8
  140. package/libx/odata/utils/normalizeTimeData.js +5 -8
  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 +531 -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,126 @@
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.3 - 2025-06-04
8
+
9
+ ### Fixed
10
+
11
+ - Handling of bad timestamps in URL ($filter and temporals)
12
+ - View metadata for requests with $apply
13
+ - Server crash for some URLs
14
+
15
+ ## Version 9.0.2 - 2025-05-28
16
+
17
+ ### Changed
18
+
19
+ - 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.
20
+
21
+ ### Fixed
22
+
23
+ - `cds.load()` ignores the outbox model if it's the only model source, helping `watch` to suppress it as well.
24
+
25
+ ## Version 9.0.1 - 2025-05-26
26
+
27
+ ### Changed
28
+
29
+ - Lean draft handler is registered in a service only if a draft-enabled service entity exists
30
+
31
+ ### Fixed
32
+
33
+ - `cqn2odata`: value formatting in OData v4 lambda expressions
34
+ - Processing in `filed-based-messaging` must be async
35
+ - `Location` response header for REST protocol
36
+ - `cds.log` is unwired from `cds.env` now, which allows to use `cds.log` in plugins, without risk of loading `cds.env` too early.
37
+ - Elements from `mixin` are now being considered by `minify`
38
+ - Lean draft: Insert.entries on draft enabled entity
39
+ - Remote call of action/function always forwards passed headers
40
+ - `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).
41
+ - Erroneously skipped input validation for local service calls
42
+
43
+ ## Version 9.0.0 - 2025-05-07
44
+
45
+ ### Added
46
+
47
+ - CAP-native task queues (beta; replacing generic outbox -- see section Changed for additional details)
48
+ + 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
49
+ + Programmatically queue or unqueue any service via `cds.queued(srv)`/ `cds.unqueued(srv)`
50
+ + Statically queue instances of `cds.MessagingService` or `AuditLogService` via config `cds.requires.<srv>.queued = true`
51
+ + Disable the persistent task queue via `cds.requires.queue = false`
52
+ + Tasks are processed in dedicated transactions (except on SQLite, where there are no concurrent transactions)
53
+ + Tasks are retried until processed succesfully or the max. retry count is reached, i.e., adding resiliency to the respective service
54
+ + Tasks that cause unrecoverable or programming errors will remain in the database table but will not be retried
55
+ + Experimental task scheduling API `<srv>.schedule()` as variant of `<srv>.send()` with fluent API options `.after(<ms>)` and `.every(<ms>)`
56
+ + Experimental task callback API `<srv>.after('<event>/#succeeded', (results, req))`/ `<srv>.after('<event>/#failed', (error, req))`
57
+ + Experimental task trigger API `<srv>.flush()`
58
+ + Experimental application-level task status management to avoid long-lasting database locks
59
+ + Enable via `cds.requires.queue.legacyLocking = false`
60
+ + Caution: Application-level task status management only works if all active app deployments are on cds^9!
61
+ - Inbox: Inbound messages can be accepted as asynchronous tasks via config `cds.requires.messaging.inboxed = true`
62
+ - Not null validiations for actions and functions
63
+ - `cds.auth`: Provide custom configuration to `@sap/xssec`-based authentication via `cds.requires.auth.config`
64
+ - IAS: Token validation for requests to the app's "cert url" (with `.cert` segment in the domain)
65
+ - Support refs with longer path expressions like `ref: ['root', 'child', 'subchild', 'ID']` when resolving queries to the target entity
66
+ - `PATCH` as synonym for `UPDATE` during event handler registration
67
+ - `UPSERT` semantics for `PUT` requests can be deactivated via flag `cds.runtime.put_as_upsert=false`
68
+
69
+ ### Changed
70
+
71
+ - Evolution of the generic outbox to CAP-native task queues:
72
+ + `cds.queued()`/ `cds.unqueued()` replace `cds.outboxed()`/ `cds.unboxed()` (temporary compat in place)
73
+ + Global configuration `cds.requires.queue` replaces `cds.requires.outbox` (temporary compat in place)
74
+ + 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.
75
+ + 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`.
76
+ - Support for `@sap/cds-mtxs` version 1 is dropped
77
+ - Service level restrictions for application service calls are enforced by default
78
+ + Opt out with `cds.features.service_level_restrictions=false` until next major version
79
+ - `req.diff` uses a deep expand to fetch data for deep update comparison. Previously, it read each composition layer sequentially.
80
+ - `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`.
81
+ - `cds.context.locale` is only set if initiated from an HTTP client specifying a locale
82
+ - 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).
83
+ - `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`.
84
+ - 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.
85
+ - `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`.
86
+ - `PATCH` requests no longer create the target resource if it doesn't exist (`UPSERT` semantics)
87
+ + Re-enable via flag `cds.runtime.patch_as_upsert=true`
88
+ - `PUT` requests no longer set unprovided properties to their default values (`REPLACE` semantics)
89
+ + Re-enable via flag `cds.runtime.put_as_replace=true`
90
+ + If enabled, the defaulting is now done in the protocol adapter
91
+ - `req.params` is an array of objects (instead of plain values for single-keyed entities with key `ID`)
92
+ + Opt out with `cds.features.consistent_params=false` until next major version
93
+
94
+ ### Fixed
95
+
96
+ - Webhook creation in `enterprise-messaging` is more resilient in case of multiple instances
97
+ - `cdsjsonschema` protocol in lower case for cds json schema
98
+ - In `CREATE` handlers for drafts, the original path is preserved
99
+ - `@sap/cds-mtxs` is now loaded before other plugins so that they can register handlers for mtx services.
100
+ - The default index page respects now `cds.odata.containment`
101
+ - Remove incorrect `Type` suffix from `@odata.context` for views with parameters
102
+ - Support where clauses in refs
103
+
104
+ ### Removed
105
+
106
+ - Legacy OData adapter which was enabled with compat `cds.features.odata_new_adapter=false`
107
+ - Legacy Database services which were enabled with `@sap/cds-hana` or `sqlite3`
108
+ - `@cds.default.order` and `@odata.default.order` for implicit sorting
109
+ - `cds.auth`: Support for `@sap/xssec^3` (incl. compatibility mode of `@sap/xssec^4`)
110
+ - Undocumented compat flag `cds.features.odata_v2_result_conversion`
111
+ - Undocumented util `cds.utils.pool`
112
+ - Undocumented method `INSERT.as`. Use `INSERT.from` instead to insert sub `SELECT` queries.
113
+ - Undocumented method `req._queryOptions` of `cds.Request` belonging to the new OData adapter
114
+ - Undocumented method `_reset` of the `cds.ql` API
115
+ - Undocumented property `cmd` of the `cds.ql` `Query` class. Please use method `kind` instead.
116
+ - Undocumented method `protocol4` of the `Protocol` class. Please use property `def.protocols` instead.
117
+ - Undocumented methods `impl` and `with` of the `ApplicationService` class. Please use `prepend` instead.
118
+ - Undocumented compat flag `cds.features.rest_error_handler`
119
+ - Deprecated compat flags `cds.features.compat_restrict_bound` and `cds.env.features.compat_restrict_where`
120
+ - Deprecated compat flag `cds.features.stream_compat`
121
+ - Deprecated feature flag `cds.log.kibana_custom_fields`. Please use `cds.log.als_custom_fields` instead`.
122
+ - Deprecated compat flag `cds.features.keys_in_data_compat`
123
+ - Deprecated element-level annotation `@Search.defaultSearchElement`. Please use annotation `@cds.search` instead.
124
+ - Deprecated stripping of unnecessary topic prefix `topic:` in messaging
125
+ - Deprecated messaging `Outbox` class. Please use config or `cds.outboxed(srv)` to outbox your service.
126
+
7
127
  ## Version 8.9.4 - 2025-05-16
8
128
 
9
129
  ### Fixed
@@ -37,6 +157,7 @@
37
157
  - `cds.env` merging for `null` values
38
158
  - Best-effort mechanisms for lambda support on OData V2 remote services (usage of functions in lambda expressions)
39
159
  - Use extended model in `enterprise-messaging` inbound handlers
160
+ - Compat flag `cds.features.draft_compat` for handler registration in draft scenarios
40
161
 
41
162
  ## Version 8.9.0 - 2025-03-31
42
163
 
@@ -613,683 +734,3 @@
613
734
  - Deprecated csn entity proxy `<entity>_texts`. Use `<entity>.texts` instead.
614
735
  - Deprecated built-in `cds.compile.to.gql` and `cds.compile.to.graphql` compile targets. These are provided by `@cap-js/graphql` plugin versions >= 0.9.0.
615
736
  - Deprecated API `srv.stream`. Use `SELECT` with a single `cds.LargeBinary` column instead.
616
-
617
- ## Version 7.9.4 - 2024-07-18
618
-
619
- ### Fixed
620
-
621
- - View resolving for `cds.features.lean_draft`
622
- - Error in `enterprise-messaging` deploy script
623
- - Properly forward path expression infront of lamda functions for `odata-v2` remote services
624
- - OData queries selecting the same column with `$count=true`
625
- - Closed higher end of version range for dependency on `cds-types`
626
-
627
- ## Version 7.9.3 - 2024-06-27
628
-
629
- ### Fixed
630
-
631
- - `cds compile --to serviceinfo` returns the correct URL path for Java applications.
632
- - Prevent HANA deadlocks when processing outbox table
633
- - Invalid cache for `SiblingEntity` requests
634
- - `cds.test` recommends version 7 of `chai-as-promised`. Version 8 is ESM-only and does not work with `cds.test` at the moment.
635
- - Loading of `cds.plugins` now respects the (internal!) property `cds.env.plugins` again.
636
- - `req.data` and `req.INSERT.entries` were not pointing to same object if it contains more than one entry.
637
-
638
- ## Version 7.9.2 - 2024-05-22
639
-
640
- ### Fixed
641
-
642
- - Server crash in case of certain errors in Cloud SDK
643
- - Bug in restriction of entities modeled as composition of aspects
644
- - `$search`: resolve an exception accessing `req.query.elements`
645
- - Ignore flattened associations in projection on remote entities
646
- - Falsy keys in `cds.ql` were ignored in usage like `SELECT.from(Books, 0)`
647
-
648
- ## Version 7.9.1 - 2024-05-13
649
-
650
- ### Fixed
651
-
652
- - `cds.compile.to.sql` doesn't fail for older compiler versions if `postgres` keywords aren't defined
653
- - `cds compile --to serviceinfo` no longer detects a Java project if there is a pom.xml file in a subfolder of `app/`
654
- - `acquireTimeoutMillis` is ensured if custom pool config is provided
655
-
656
- ## Version 7.9.0 - 2024-04-30
657
-
658
- ### Added
659
-
660
- - Option `cds.env.sql.transitive_localized_views: false` to skip generating transitive localized views for entities which don't have own localized elements, but only associations to such. Supported for Java and new database services in Node.js (ignored for old ones).
661
- - Option `cds.env.sql.native_hana_associations: false` to skip generating native HANA associations.
662
- - Running `cds compile --to sql` with `@cap-js/sqlite` installed now uses `session_context('$user.locale')` in generated DDL statements instead of generating static localized views for 'en', 'fr', and 'de' (same for `cds.deploy`).
663
- - `api`: export reserved keywords for postgres via `cds.compiler.to.sql.keywords.postgres`
664
- - Kind `legacy-hana` and profile `better-hana` for local testing scenarios.
665
- - Support for PDF files (MIME type `application/pdf`) when the `cds.env.features.odata_new_adapter` flag is set to `true`
666
- - Lean draft: Support for filtered compositions (remain in the document)
667
- - Support for `COUNT_DISTINCT` as OData data aggregation default method
668
- - Better support for `profiles` in cds schema for `package.json` and `.cdsrc.json`
669
- - Performance improvement for generating `@odata.context` url if `cds.features.odata_new_parser` is enabled
670
- - Alpha support for SAP Event Broker-based messaging (kind `event-broker`)
671
-
672
- ### Changed
673
-
674
- - Deprecated *INSERT.into(...) **.as** (SELECT...)* → use *INSERT.into(...) **.entries** (SELECT...)* instead.
675
- - Default value of `cds.env.log.mask_headers` changed to `['/authorization/i', '/cookie/i', '/cert/i', '/ssl/i']` (adding `'/cert/i'` and `'/ssl/i'`)
676
- - Error messages for entities annotated with '@cds.autoexpose'
677
- - For Java apps `cds.sql.transitive_localized_views` now defaults to `false` to create less database views.
678
- - For Java apps `cdsc.betterSqliteSessionVariables` now defaults to `true` to enable session variables on H2 and SQLite by default.
679
-
680
- ### Fixed
681
-
682
- - `cds.compile.to.yaml` produced invalid YAML for compacted lines
683
- - Handling of If-None-Match header for non-existing entity
684
- - Revert json schema for cds schemas to `draft-07` to prevent VS Code warnings about unsupported schema features.
685
- - Remote services: JSON representation of error shall include `request` and `response`
686
- - Aliasing of associated entity column in case of expand by CQN build with joins.
687
- - `$apply` scenarios when used alongside `cds.env.features.odata_new_adapter = true` and the new database layer
688
- - ETag handling combined with where restrictions
689
- - `cds compile --to hdbtabledata` now correctly supports CSV files using format `.texts_<lang>.csv`. Before the `include_filter` wasn't set in the generated `.hdbtabledata` files.
690
- - `cds` commands no longer crash when executed in the `@sap/cds` installation dir.
691
- - `cds.infer`: exposed association of query is inferred as `cds.Association` and not as it's target
692
-
693
- ## Version 7.8.2 - 2024-04-22
694
-
695
- ### Fixed
696
-
697
- - `.find` and `.filter` in `linked.entities()` now returns values instead of names
698
- - `cds.app.serve.from(pkg,folder)` did not consider `pkg` for serving static resources
699
-
700
- ## Version 7.8.1 - 2024-04-11
701
-
702
- ### Fixed
703
-
704
- - In some cases, `<entity>.drafts` erroneously pointed to a CSN entity stub.
705
- - Feature vectors including falsy values like `{ ft1: true, ft2: true, ft3: false }`
706
-
707
- ## Version 7.8.0 - 2024-03-25
708
-
709
- ### Added
710
-
711
- - Health check endpoint `/health` in default server
712
- - Class `cds.service` now provides getters for `entities`, `types`, `events` and `operations`. These return iterable objects, which can be used in `for...of` loops.
713
- - Class `cds.entity` getters for `keys`, `associations`, `operations` also return `Iterable` objects now
714
- - Method `compile.to.serviceinfo()` now lists all Node.js service endpoints in cases where multiple protocols are configured. For Java, the list is still limited to the first endpoint. This will be fixed in a future release.
715
- - More warnings for deprecated features, functions and annotations.
716
-
717
- ### Fixed
718
-
719
- - Reverted `cds.Association` being derived from `cds.struct`; it's now derived from `cds.type` again.
720
- - Entity definitions using joins were erroneously marked as `_unresolved`
721
- - Consistent error messages for query options validation with new parser
722
- - Validation for mandatory associations which target entities with defaulted keys
723
- - Transaction handling for aborted streaming requests
724
- - Create/Update over filtered managed compositions
725
- - Templates are cached at the model (instead of the service)
726
- - Deprecation warnings use `cds.log()` in production
727
- - Single quote in a string in `.where` for remote service
728
- - Escaped characters in double quoted search term when using `odata_new_parser`
729
-
730
- ## Version 7.7.3 - 2024-03-18
731
-
732
- ### Fixed
733
-
734
- - `cds.log`: preserve message property of details through stringification (it's non-enumerable if the detail entry is an error)
735
- - Auto-exposed child entities with multiple restrictions
736
- - Calculation of read-only values in custom code during creation of new drafts
737
-
738
- ## Version 7.7.2 - 2024-03-11
739
-
740
- ### Fixed
741
-
742
- - Requests to actions/functions on entities in draft state via navigation.
743
- - PUT/PATCH with if-none-match: * forces insert
744
-
745
- ## Version 7.7.1 - 2024-03-06
746
-
747
- ### Fixed
748
-
749
- - JWT authentication for Event Mesh endpoints
750
- - `cds.log`'s json formatter: ensure `type` is set (required on kubernetes until CLS defaults this)
751
- - Erroneously generated foreign keys in `req.data` for UPDATE using path expressions
752
- - `INSERT.columns.rows` for multiple nested composition of aspects
753
- - Paths passed to `tar` on Windows are now normalized to use forward slashes.
754
-
755
- ## Version 7.7.0 - 2024-02-26
756
-
757
- ### Added
758
-
759
- - Improved trace output for bootstrap phase. For example try that:
760
- ```js
761
- DEBUG=trace cds w bookshop | grep trace
762
- ```
763
- - Support for `@odata.draft.bypass` to allow direct modifications of active instances.
764
- - `req.user.tokenInfo` for `@sap/xssec`-based authentication (`ias`, `jwt`, `xsuaa`)
765
- - `cds.fiori.draft_lock_timeout` as successor of `cds.drafts.cancellationTimeout`.
766
- + Possible values are `/^([0-9]+)(h|hrs|min)$/` or a number in milliseconds.
767
- - There is a new `sap.common.Timezones` entity with a basic time zone definition. There will be accompanying data in package `@sap/cds-common-content`.
768
- - Deprecation warnings for configuration options `cds.drafts.cancellationTimeout`, `cds.features.serve_on_root`, `cds.features.stream_compat`, `cds.fiori.lean_draft` and `cds.requires.middlewares`, as well as for the properties `req.user.locale` and `req.user.tenant`. The deprecation warnings can be turned off by setting `cds.features.deprecated` to `off`.
769
-
770
- ### Changed
771
-
772
- - The index page now lists all service endpoints, which is important for services that are exposed through multiple protocols.
773
- - `cds.deploy` improves error diagnostics with deeper `Query` object inspection.
774
- - Slightly changed the default export for ESM compatibility. This fixed failing ESM imports in Vitest tests.
775
-
776
- ### Fixed
777
-
778
- - Persistent outbox must not be used for `t0` tenant.
779
- - Second `await cds.connect.to('X')`, where initialization of `X` results in an error, did not return.
780
- - Support additional draft requests.
781
- - `cds.log` with `null` as argument.
782
-
783
- ## Version 7.6.4 - 2024-02-21
784
-
785
- ### Fixed
786
-
787
- - Emitting multiple message with an in-memory outbox
788
- - Occasional crash for invalid draft requests
789
- - On the index page, aditional links now show up again for non-OData services.
790
- - Handling of thenables for queries
791
-
792
- ## Version 7.6.3 - 2024-02-13
793
-
794
- ### Fixed
795
-
796
- - Event Mesh webhooks now add standard `before` middlewares in case of custom authorization
797
- - `compile.to.serviceinfo` no longer fails for services marked with `@protocol:'none'`. Such internal services are not shown in the output.
798
-
799
- ## Version 7.6.2 - 2024-02-09
800
-
801
- ### Fixed
802
-
803
- - Introduce i18n `BATCH_TOO_MANY_REQ` key for error message: "Batch request contains too many requests"
804
- - Properly handle `$orderby` in lean draft
805
- - View resolving in combination with `@cap-js/cds-db`
806
- - Allow `cds.requires.someService.outbox` to be a string
807
- - `cds.log`: errors, when not the first argument, were considered objects carrying custom fields
808
- - `accept` header parsing for OData requests if quality factor `q` is included
809
- - Broken links on index page if multiple protocols are configured
810
-
811
- ## Version 7.6.1 - 2024-01-30
812
-
813
- ### Fixed
814
-
815
- - Garbage collection of draft is configured with `cds.fiori.draft_deletion_timeout`
816
-
817
- ## Version 7.6.0 - 2024-01-29
818
-
819
- ### Added
820
-
821
- - `cds.upsert` as shortcut for `cds.db.upsert`
822
- - Automatic deletion of stale drafts. Feature is enabled if `cds.env.fiori.deletionTimeout` is set to a value of `true`; `true` uses the default timeout of `30d` (30 days).
823
- - Support for default exports (ESM/TS) in custom authentication
824
- - Support for executing SAP HANA procedures from SYS schema
825
- - Support for more complex on-conditions in case of READ requests
826
- - Best effort mechanism for supporting lambda expressions targeting remote odata-v2 services
827
- - Support for actions and functions which are bound to singletons
828
-
829
- ### Changed
830
-
831
- - Draft: Standard Sorting Behavior for SAP Fiori List Report Floorplan
832
- - Use new CDS schema for validation and code completion in `package.json` and `.cdsrc.json` files
833
- - Media Data Streaming
834
- + OData: Large binaries without `@Core.MediaType` annotation were previously returned as base64-encoded buffer. Starting from this `@sap/cds` version also not-annotated large binaries are ignored by OData. It is strongly recommended to annotate all large binary properties with `@Core.MediaType` and use it according to streaming scenarios.
835
- + Custom Handlers: `SELECT` with explicitly listed `SELECT.columns` of type `cds.LargeBinary` returns them as Readable streams. Large binary columns requested implicitly by `SELECT` (for example, with `.columns('*')`) are ignored.
836
- + Streaming API: `cds.stream()` and `srv.stream()` are deprecated and will be removed with the next major release. Use `SELECT` with a single `cds.LargeBinary` column instead. The resulting object will contain the name of the column and a stream value. For example, `SELECT.one.from(E).columns(['image']).where(...)` returns `{ image: <media stream> }`.
837
- + Backward Compatibility: To restore previous behavior use `stream_compat`.
838
-
839
- ### Fixed
840
-
841
- - `cds.minify` returned a shallow clone. When callers like 2sql `cds.linked` that subsequently, this left the passed-in csn in a broken, partially linked state. Now, `cds.minify` doesn't clone anymore, but modifies the passed in csn.
842
- - Handling of read-only fields in drafts
843
- - Event Mesh: Better error message for incoming messages without a topic
844
- - `cds build` now logs a better error message if an incompatible `@sap/cds` version is used.
845
- - Better error message for runtime requests to non-existing tenants in extensibility scenario.
846
- - Do not generate UUIDs for association key during `CREATE` operation.
847
- - OData aggregation with lean draft
848
- - Sorting in new odata parser with nested select statements. The default sort order is now added to the outer select statement.
849
- - Server crash in case of misformatted `groupby` transformation in `$apply`
850
- - Switched EM webhook endpoints to also use new authentication implementation
851
- - `odata_new_parser`: better error message and code for expand on non-existing elements
852
-
853
- ### Removed
854
-
855
- - Experimental `STREAM` CQN is removed and cannot be used anymore
856
-
857
- ## Version 7.5.3 - 2024-01-23
858
-
859
- ### Fixed
860
-
861
- - `cds.localize` and `cds build` produce `i18n.json` again with keys from all base languages
862
- - `cds.compile.to.serviceinfo` now correctly parses SpringBoot config with nested objects, e.g. for `cds.odata-v4.endpoint.path`
863
- - Recommend to use `chai` 4 for the time being, as `chai` 5 doesn't properly work yet (requires ESM, `chai-as-promised` not working)
864
- - View resolving for entities using property names that are identical to entity names
865
- - Direct modifications with `cds.fiori.bypass_draft` if `cds.fiori.draft_compat` is not enabled
866
- - Draft: Field validation error message does not display the name of the field
867
-
868
- ## Version 7.5.2 - 2024-01-05
869
-
870
- ### Fixed
871
-
872
- - Service-level ETag handling in legacy OData server
873
- - Only provide model to ModelProvider if extensibility or feature toggles are active
874
- - OData server driven paging when using feature flags `cds.env.features.odata_new_parser` and `cds.env.features.okra_skip_query_options`
875
-
876
- ## Version 7.5.1 - 2023-12-21
877
-
878
- ### Fixed
879
-
880
- - Resolving custom authentication implementation pointer
881
-
882
- ## Version 7.5.0 - 2023-12-14
883
-
884
- ### Added
885
-
886
- - Support for expressions in where clause of `@restrict` annotation.
887
- + Example: `@(restrict : [{ grant : ['*'], where : (NAME = $user) }])`
888
- - Function `cds.unboxed(srv)` to get the non-outboxed variant of the service
889
- - Service implementations can now be provided in .mjs modules.
890
- - Remote services: advanced configurable `CSRF` token fetching HTTP method and the URL.
891
- For example, in the configuration of your remote services, you can now configure the HTTP method and URL as follows:
892
- ```json
893
- "cds": {
894
- "requires": {
895
- "API_BUSINESS_PARTNER": {
896
- "kind": "odata",
897
- "model": "srv/external/API_BUSINESS_PARTNER",
898
- "csrf": { // this configuration implies `csrf: true`
899
- "method": "get",
900
- "url": "..."
901
- }
902
- }
903
- }
904
- }
905
- ```
906
- - `cds.log`'s built-in JSON formatter:
907
- + Extract custom fields (`cds.env.log.als_custom_fields`) and categories from args (not only error-like first objects)
908
- + Example: `LOG.info('foo', { query: 'SELECT * FROM DUMMY' }, 'bar', { categories: ['baz'] })`
909
- + `cds.env.log.mask_headers = [...]` allows to specify a list of matchers for which the header value shall be masked (i.e., printed as `***`)
910
- + Default: `['/authorization/i', '/cookie/i']`
911
- - `cds.env.fiori.bypass_draft` feature flag, designed to enable direct modifications via `POST` and `PATCH` of
912
- active instances in lean draft mode (`cds.env.fiori.lean_draft=true`). For example:
913
-
914
- ```http
915
- POST /Orders
916
- {
917
- "IsActiveEntity": true
918
- }
919
- ```
920
-
921
- - Auth kind `ias`: same SAML attr API as auth kind `xsuaa` for easier migration
922
-
923
- ### Changed
924
-
925
- - Removed and integrated former `ctx-auth` middleware into `cds.auth` middleware
926
- - `cds.log`:
927
- + `cds.env.log.format = 'plain'|'json'` allows to configure which built-in formatter is used. Defaults to `json` in production, `plain` otherwise.
928
- + If a built-in JSON formatter is used:
929
- + Field `tenant_subdomain` is filled if running on CF and information is available through authentication
930
- + Additional CF-related fields are filled if running on CF
931
- + Custom fields (`cds.env.log.als_custom_fields`) are filled if bound to an instance of Application Logging Service
932
- + Field `categories` is filled if bound to an instance of Application Logging Service
933
- + Config `cds.env.log.kibana_custom_fields` changed to `cds.env.log.als_custom_fields` (ALS = Application Logging Service) with compatibility until the next major
934
- - Package `passport` is no longer required (if `cds.env.requires.middlewares` is not set to `false`)
935
- - Type definitions for the APIs of this package are now maintained in package [`@cap-js/cds-types`](https://npmjs.com/package/@cap-js/cds-types).
936
- + If you used one of the types `CSN`, `Definitions`, `entity` of _@sap/cds/apis/reflect_, use the `Linked` counterparts instead.
937
- + If you used the type `CQNQuery` of _@sap/cds/apis/cqn_, use `SELECT` or a union type instead.
938
- + This also includes various fixes to Typings for
939
- + `req.subject` like `SELECT.from(req.subject)`
940
- + `SELECT.columns([...])`
941
- + `cds.db`
942
- + `cds.util`
943
- + `cds.context.features`
944
- - The number of files logged on `cds serve` is now limited to 30 by default. You can run with `DEBUG=serve` to show all files.
945
- - `express.static` is only mounted if the target folder (`cds.folders.app`) exists
946
- - `cds.outbox.Messages` no longer uses aspect `cuid` to reduce model size impact in case `@sap/cds/common` is not used otherwise
947
-
948
- ### Fixed
949
-
950
- - Messaging: Listen to `*`
951
- - Drafts of `@readonly` entities cannot be deleted
952
- - Made `srv.prepend()` robust by not allowing async callbacks and hence not being an async function itself anymore
953
- - Formatting for stringified number-literal value
954
- - Secrets are now masked with `DEBUG=cds.service.factory`
955
- - The timestamp of cds.context is not propagated to new root contexts
956
- - `cds.localize` uses less memory to create translation bundles
957
- - `UPSERT` operation failed to fill DateTime/Timestamp fields
958
- - Use original logic (based on `NODE_ENV`) to load cds plugins from `devDependencies`
959
- - Property `tenant` also available on express' `req` object with basic and mocked auth
960
- - Empty `req.data` in before `DELETE` handler in draft
961
- - Loading `cds-plugins` now offers a hook to add a more flexible plugin loader, e.g., for corrupt `package.json` files.
962
- - Ignore default values of associations for draft entities
963
- - OData: client-side errors (4xx) logged as warnings instead of errors
964
- - IAS authentication: use `tokenInfo.getClientId()` instead of `payload.azp` as it implements a fallback
965
- - Deep updates with binary keys
966
- - Allow `null` values in `cds.env` (example package.json excerpt: `{ "cds": { "features": { "foo": null } } }`)
967
- - Collection-bound actions/functions called via navigation
968
-
969
- ### Removed
970
-
971
- - Deprecated global configuration feature flag `cds.env.features.fetch_csrf`.
972
- Instead, please use `csrf` and `csrfInBatch` to configure your remote services.
973
- These options will allow to configure CSRF-token handling.
974
- - Compat for deprecated `cds.env.auth.passport`. Use `cds.env.requires.auth` instead.
975
-
976
- ## Version 7.4.2 - 2023-11-30
977
-
978
- ### Fixed
979
-
980
- - Typing for `DELETE.from(<e>.drafts)`
981
- - UUID keys must not be generated for associations
982
-
983
- ## Version 7.4.1 - 2023-11-23
984
-
985
- ### Fixed
986
-
987
- - Add dynamic properties to result when experimental feature `cds.env.features.okra_skip_query_options` is active
988
- - Allow negative integers in new parser
989
- - Allow deletion of instances outside the draft tree
990
- - Tenant lookup in OData metadata requests
991
- - `cds.parse.csv` and `cds deploy` correctly parse CSV files with Windows file endings (CRLF) and quoted values
992
- - Typescript Typings
993
-
994
- ## Version 7.4.0 - 2023-11-13
995
-
996
- ### Added
997
-
998
- - Any service is outboxable via `srv = cds.outboxed(srv)`
999
- - Draft: support `HasActiveEntity eq false` by read
1000
- - Check if OData function/action params exist for complex types
1001
- - Remote services: destination option `jwt` set to `null` instructs that an incoming request's JWT shall not be passed to SAP Cloud SDK, e.g., when it shall use a fresh client credentials flow token
1002
- + Example:
1003
- ```json
1004
- "requires": {
1005
- "API_BUSINESS_PARTNER": {
1006
- [...]
1007
- "destinationOptions": {
1008
- "jwt": null
1009
- }
1010
- }
1011
- }
1012
- ```
1013
- - Alpha feature flag `cds.env.fiori.wrap_multiple_errors` to toggle the following behaviour for OData errors meant to be consumed by SAP Fiori Elements:
1014
- In cases where multiple errors occur and the flag is set to `false`, the first error is presented as the top-level error (replacing the generic "multiple errors" wrapper).
1015
- The default value is `true`, but `false` will become the default value in cds^8.
1016
- - On CF, the default keep alive timeout of the server is set to 91s (to exceed the 90s of CF's gorouter)
1017
- - `cds deploy` now auto-fills the `ID_texts` field (which get created for entities marked with `@fiori.draft.enabled`) in csv and json data files with a stable UUID. This way, it does not need to be manually added to data files. Also, as the value is stable (a hash of the semantic key fields `ID` and `locale`), it works with `UPSERT` statements.
1018
-
1019
- ### Changed
1020
-
1021
- - Default outbox configuration (overridable via `cds.env.requires.outbox = { ... }`):
1022
- + `kind` changed to `persistent-outbox` (was `in-memory-outbox`)
1023
- + `parallel` changed to `true` (i.e., messages are not emitted in sequence)
1024
- - Internal class `OutboxService` is deprecated and will be removed
1025
-
1026
- ### Fixed
1027
-
1028
- - `req.subject` in lean-draft handlers
1029
- - `cds.odata.batch_limit` wasn't taken into account
1030
- - Enterprise-Messaging: Only set tenant information for multitenant apps
1031
- - Enterprise-Messaging: Race condition in `subscribe` event
1032
- - Draft: delete of active entity is forbidden, if draft exist
1033
- - Draft: sorting of draft entities in `list status: all`
1034
- - Draft: invalid delete draft request now rejects with error
1035
- - Draft: Enhance Draft Edit functionality with exclusive record lock
1036
- - Typings for `req.reject/error/info/warn`
1037
- - Deep delete with mixins on new db layer did not work
1038
- - Special strings like `'$now'`, `'$user'` and `'$uuid'` expanded automatically
1039
- - Only services that are served via OData are precompiled during startup
1040
- - Response status of not existing mocks returned 200 instead of 404
1041
- - Calculation of @Capabilities in case of complex $apply
1042
- - `test.data.reset()` did not delete drafts
1043
- - `resolveView` considers `list` for renamed columns
1044
- - `cds.schema` now loads lazily
1045
- - `odata_new_parser`: `$expand=` no longer throws an error with and is simply ignored
1046
- - `odata_new_parser`: Empty custom query params like `Foo?bar` are ignored
1047
- - `odata_new_parser`: generated wrong CQN for queries like `$filter=false or ref eq 5`
1048
-
1049
- ## Version 7.3.1 - 2023-10-23
1050
-
1051
- ### Fixed
1052
-
1053
- - `cds-ts` no longer fails if configured with an ESM loader. It tries loading files w/ `import()` in this case.
1054
- - `cds deploy` for draft enabled entities
1055
-
1056
- ## Version 7.3.0 - 2023-10-04
1057
-
1058
- ### Added
1059
-
1060
- - `cds.localized` now caches i18n bundles per locale and per model to speed up repeated usages of the same bundle at runtime, for example, in repeated calls to `cds.compile.for.edmx()`.
1061
- - Based on `cds.localized` with cached bundles, a new operation `cds.localized.lookup(i18n_key, locale)` is provided.
1062
- - If env variable `CDS_TEST_ENV_CHECK` is set, `cds.test.in()` detects if `cds.env` was loaded before from a different folder.
1063
- - `cds.test.log()` allows to capture and analyze any console log output. `cds.test.verbose()` is now deprecated.
1064
- - Typings for `cds.tx`
1065
- - Add method `cds.schema.default4(schemaId)` to retrieve json schema based on its id
1066
- - Support for pseudo role `internal-user` with authentication kind `ias`
1067
- - CSV files with multiline values, i.e. line breaks, are now supported with `cds deploy`
1068
-
1069
- ### Changed
1070
-
1071
- - If omitted in the accept header, `ExponentialDecimals` no longer gets defaulted (to `true`), which violated the OData 4.0 specification.
1072
- This change can _temporarily_ be overridden via `cds.env.odata.defaultExponentialDecimals = 'true/false'`.
1073
- - Make type signature of `extend.with` more general
1074
- - `cds.test.data.autoReset()` is deprecated in favor of explicit `cds.test.data.reset()` call, like `beforeEach (test.data.reset)`.
1075
- - `cds.utils.uuid()` now uses `randomUUID` function of node `crypto` module instead of `uuid` package
1076
- - `@Capabilities` restrictions defined on entity level are also applied if navigating to the entity. Restrictions defined directly on the navigation now override restrictions defined on the target entity.
1077
-
1078
- ### Fixed
1079
-
1080
- - Draft: activate managed fields were miscalculated in some cases
1081
- - Error with `exists` predicate in `@restrict.where` when calling compositions
1082
- - `IsActiveEntity` in error target for lean draft
1083
- - Remote Service: OData v2 compliant representation of Edm.Decimal, Edm.Double, and Edm.Int64 in URL
1084
- - In draft activate managed fields were calculated wrongly in some cases
1085
- - On draft save, missing entries in `req.headers`
1086
-
1087
- ## Version 7.2.1 - 2023-09-21
1088
-
1089
- ### Fixed
1090
-
1091
- - HTTP headers argument was not forwarded to remote services when using the `srv.send(...)` API.
1092
- - Not existing draft upon `SAVE` has own error code.
1093
- - Links to documentation in Typescript definitions.
1094
- - Remote service won't check for `credentials.url` in case of messaging.
1095
- - Lean draft: Implicitly added `limit` in some lean draft read scenarios.
1096
- - Lean draft: Association keys in lean draft.
1097
- - Remote service: Preserve namespaces in URLs that do not match the service's namespace.
1098
-
1099
- ## Version 7.2.0 - 2023-09-04
1100
-
1101
- ### Added
1102
-
1103
- - Typescript definition for:
1104
- - The `cds.exit()` method.
1105
- - The `label` option parameter in the `cds.log()` API. For example: `cds.log('log message', { label: 'adapter' }`.
1106
- - A variant of the `roles` property of the `cds.User` class.
1107
- - `@restrict` annotations can now prevent the creation of drafts ([see documentation](https://cap.cloud.sap/docs/guides/authorization#restrictions-and-draft-mode))
1108
- - JSON Schema validation for `cds.requires.multitenancy.jobs` settings.
1109
- - Managed associations to one with exactly one foreign key can now have a default value.
1110
- - Experimental feature flag `cds.env.features.okra_skip_query_options`. This feature allows you to bypass the parsing of query options by the legacy OData V4 Server (Okra). Please note that this feature can only be utilized in conjunction with the new OData parser, which is activated by setting the feature flag `cds.env.features.odata_new_parser = true`.
1111
- - Support for `@requires: 'any'` to make service public, i.e., no authenticated user is required
1112
-
1113
- ### Changed
1114
-
1115
- - The built-in `java` profile sets `build.target` to `.` by default
1116
- - Decimals from query options (e.g., `$filter`) are represented as strings in CQN
1117
- - Improve error message for unsupported transformations with `$apply`
1118
- - For database dialect H2, specialized, localized views for languages `de` and `fr` are no longer generated.
1119
- - Authentication kinds `jwt`, `xsuaa`, and `ias` throw an error during bootstrapping if the necessary credentials are
1120
- unavailable.
1121
- Previously, a warning was logged, and authentication was skipped.
1122
- See `cds bind`/ Hybrid Testing in CAPire for how to combine local development and cloud resources.
1123
- - The Typescript definitions now make use of the default export.
1124
-
1125
- ### Fixed
1126
-
1127
- - Trace middleware: Adapted usage of `performance.now()` for Node 20.
1128
- - Draft: Associations to non-draft enabled entities must never point to drafts
1129
- - Avoided type error in old db post-processing
1130
- - `<remote-srv>.run('/arbitrary-url')` now defaults to a get request and doesn't add request body
1131
- - `@cds.query.limit` is cached per projection
1132
- - Application crash for incorrect usage of REST-style API to run queries
1133
- - The `@requires` annotation on entity level didn't get applied to bound operations
1134
- - `cds.test` run with a profile parameter such as `cds.test('run', '--profile', 'integration-tests')` will use the
1135
- correct profile.
1136
- - `cds.env.requires.auth.restrict_all_services = false` in combination with `cds.env.requires.middlewares = true` (the default)
1137
-
1138
- ## Version 7.1.2 - 2023-08-11
1139
-
1140
- ### Fixed
1141
-
1142
- - `req.tenant` is undefined when using the new OData parser
1143
- - Draft: Replace some occurrences of the `arr.push(...largeArray)` pattern when copying large arrays to prevent maximum
1144
- call stack size exceeded errors due to large deep update processing when saving the draft
1145
- - Keys are no longer added to the diff as they could be renamed, leading to SQL errors
1146
- - Custom-bound actions for draft-enabled entities don't trigger a READ request on application service anymore
1147
- - `cds.connect.to('db', options)`: add-hoc options for SAP HANA Database Service
1148
- - Reading key-less singleton with `$select` clause while using the new OData parser `cds.env.features.odata_new_parser`
1149
- - Avoided using colored logs if process.env.NO_COLOR is set or not logging to a terminal (i.e., `!process.stdout.isTTY || !process.stderr.isTTY`)
1150
-
1151
- ## Version 7.1.1 - 2023-08-01
1152
-
1153
- ### Fixed
1154
-
1155
- - Lean draft: read actives via service on draft edit
1156
- - Only log the error in case of an unhandled rejection
1157
- - Resolve column name for experimental `STREAM` CQN queries that point to views
1158
-
1159
- ## Version 7.1.0 - 2023-07-28
1160
-
1161
- ### Added
1162
-
1163
- - Enable PDF export via GET to collection with accept header `application/pdf`.
1164
- Custom handler must return the following:
1165
- ```
1166
- {
1167
- value: <instance of Readable>,
1168
- $mediaContentType: <String>, // > optional, defaults to: application/pdf
1169
- $mediaContentDispositionFilename: <String>, // > optional
1170
- $mediaContentDispositionType: <String> // > optional, defaults to 'attachment' if $mediaContentDispositionFilename is set
1171
- }
1172
- ```
1173
- - Schema for `cds` entry in `package.json` now has a tooltip and default value
1174
- - `srv.endpoints`: Array containing the information for all endpoints at which the service is served.
1175
- Example:
1176
- ```
1177
- [
1178
- { kind: 'odata-v4', path: '/odata/v4/browse' },
1179
- { kind: 'rest', path: '/rest/browse' }
1180
- ]
1181
- ```
1182
- - Service level support for @restrict. Limited to grant: '*' and all filter conditions in `where` are ignored.
1183
- Example:
1184
- ```
1185
- @(restrict: [{
1186
- grant: '*',
1187
- to: ['authenticated-user']
1188
- }])
1189
- ```
1190
- - Support for resolving experimental `STREAM` CQN queries that point to views
1191
-
1192
- ### Fixed
1193
-
1194
- - Multiple TypeScript fixes/improvements
1195
- - Proper handling for `expand=*` for OData URL to CQN parser (`cds.env.features.odata_new_parser`)
1196
- - Corrected the resolution of fully qualified operation names in the REST adapter.
1197
- - Log level for OData metadata cache was not handled correctly
1198
- - Protocol paths are normalized to always have a leading slash
1199
- - `@odata` shortcut for `odata-v4` protocol with custom configuration
1200
- - Set default protocol to `odata-v4`, independent of the order in `cds.env.protocols`
1201
- - Now data is correctly logged for `GET` and `DELETE` remote requests
1202
- - draft: deep update without change should not update the `modifiedAt` field
1203
- - Lean draft: do not propagate `@Capabilities.NavigationRestrictions.RestrictedProperties`
1204
- - Commit database transactions only once outbound streaming has ended
1205
- - Lean draft: deactivate legacy `drafts` getter
1206
- - Updated typings for `srv.send()`
1207
- - `$search`: exclude calculated fields/expressions from default search in projection of projections
1208
- - Immutable properties are always removed from payload during `UPDATE`
1209
- - `serviceinfo.urlPath` contains the first endpoint of the service (cf. `srv.endpoints`), which is the legacy path if
1210
- `cds.env.features.serve_on_root === true`
1211
-
1212
- ## Version 7.0.3 - 2023-07-19
1213
-
1214
- ### Fixed
1215
-
1216
- - Compile for lean draft: do not add draft entity for external entities
1217
- - Rollback awaited in REST adapter
1218
- - `service.on('error')` handler invoked only once
1219
- - `SELECT.one.localized`
1220
- - `COPYFILE_DISABLE=1` is now set for building `tar` archives by default
1221
- - Actions of projection target are no longer accessible in linked models
1222
- - Batch executes model-less mass inputs when on `@sap/hana-client`
1223
- - Requests to `/<path>/webapp` return 404 for absolute `@path` specifications
1224
- - `cds compile --to serviceinfo` no longer returns paths w/ Windows `\` path characters
1225
-
1226
- ## Version 7.0.2 - 2023-07-06
1227
-
1228
- ### Fixed
1229
-
1230
- - Glitch in `cds.deploy` if no change was applied
1231
- - Detection of `.cdsrc-private.json` during startup
1232
- - Respect capabilities annotation for draft events
1233
- - `cds compile --to serviceinfo` returns correct service paths again
1234
-
1235
- ## Version 7.0.1 - 2023-07-03
1236
-
1237
- ### Fixed
1238
-
1239
- - Feature toggle detection in single-tenant mode
1240
- - Log output for OData $batch requests
1241
- - Avoid "catastrophic backtracking" issue in Okra's (OData V4 server) tokenizer
1242
- - Transaction marked as committed too early
1243
-
1244
- ## Version 7.0.0 - 2023-06-21
1245
-
1246
- ### Added
1247
-
1248
- - Handling of expand with multiple `*` (e.g. `$expand=*,*`) in new parser. When using `*` in an `$expand`, the new OData
1249
- parser now removes all unneeded `*`.
1250
- - Tests run with `cds.test()` now also load `cds-plugins`
1251
-
1252
- ### Changed
1253
-
1254
- - Result of `READ` events is now always an array. Previously, it could be `null/undefined` (now empty array), a single object (now array with one entry), or array.
1255
- - OData: `PUT`/`PATCH` requests resulting in a new entity (i.e., the `UPSERT` effectively was an `INSERT`) return status code 201
1256
- - Draft: Draft activate requests resulting in an `UPDATE` return status code 200
1257
- - ETags are validated via `WHERE EXISTS` clause attached to query on `GET`, `PUT`/`PATCH`, and `DELETE`
1258
- - OData: `PUT`/`PATCH` with `if-match` header prevents `UPSERT`, i.e., only an existing entity can be updated by such a request
1259
- - Runtime support for `@sap/instance-manager` is removed in favor of the `cds-mtxs` Service Manager client.
1260
- - In multitenant mode, the SAP HANA pool uses the `cds-mtxs` credentials cache
1261
- - Draft handlers are registered for all entities.
1262
- - Decimals in client input are validated in runtime's assert framework (previously OData adapter)
1263
- - `cds build` and `cds deploy --to hana` have moved to `@sap/cds-dk`. Upgrade `@sap/cds-dk` to version 7 to continue using these commands.
1264
- - Changed the behavior of `SELECT` queries for single entities to return `undefined` instead of `null` when no record is found.
1265
- - Fiori preview has moved to the new `@sap/cds-fiori` module.
1266
- - Numbers are now always used as placeholders in SQL, except for `SELECT 1 From...`, `LIMIT`, and the comparison of two numeric values (e.g., `1 eq 1`).
1267
- - Only new major version 3 of SAP Cloud SDK is from now on supported. Please make sure to upgrade. Version 2 is not maintained anymore.
1268
- - `@protocol` annotation can serve multiple protocols per service.
1269
- - Per default, services are served with a protocol-specific prefix (for example, '/odata/v4' for a service using the OData V4 protocol). To also serve without this prefix, as was the case in older `@sap/cds` versions, the flag `cds.env.features.serve_on_root` can be set to `true`. Alternatively, the `@path` annotation can be used to explicitly specify an absolute path (with a leading `/`).
1270
- - `cds.requires.middlewares` is enabled by default.
1271
- - The order of CSV files that `cds deploy --to sqlite` uses now reflects the dependency order of cds models. This is needed if `UPSERT` is used to create a logically correct deployment.
1272
- - `cds.fiori.lean_draft` is activated by default. You can still set it to `false` as a fallback.
1273
-
1274
- ### Fixed
1275
-
1276
- - UUID typed key properties are no longer automatically filled during UPSERT
1277
- - OData: When undefined in the payload, requests for actions with not nullable array-type parameters result in a client-side error
1278
- - Missing `GROUP BY` in request with `$apply` in combination with aggregate on restricted entity
1279
- - When `@sap/cds` was not installed underneath project root, cds-plugins were not found
1280
- - Support for multiline texts in `properties` files
1281
- - Error when reading auth-protected entities with infix filter in expand
1282
- - Glitch in transaction handling in case of concurrent async before handlers
1283
-
1284
- ### Removed
1285
-
1286
- - Deprecated `req.run()` function, use `cds.run()` instead.
1287
- - Support for inofficial feature flag `cds.env.features.bigjs`
1288
- - Support for inofficial feature flag `cds.features.parameterized_numbers`
1289
- - Deprecated referential integrity checks at runtime
1290
- - Support for `cds-mtx`
1291
- - Support for Node 14
1292
- - Internal `req.getUriInfo()` and `req.getUrlObject()`
1293
- - `cds deploy --to hana` is now part of `@sap/cds-dk`.
1294
- - Deprecated compat mode `cds.env.features.cds_tx_protection = false`
1295
- - Beta `AuditLogService` and out-of-the-box audit logging. Use the plugin `@cap-js/audit-logging` instead.