@sap/cds 8.9.4 → 9.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/CHANGELOG.md +113 -680
  2. package/LICENSE +15 -21
  3. package/README.md +1 -1
  4. package/_i18n/i18n_sl.properties +3 -3
  5. package/_i18n/messages.properties +1 -1
  6. package/app/index.js +1 -1
  7. package/bin/serve.js +17 -19
  8. package/eslint.config.mjs +7 -1
  9. package/lib/compile/etc/_localized.js +3 -24
  10. package/lib/compile/etc/yaml.js +6 -15
  11. package/lib/compile/for/odata.js +2 -2
  12. package/lib/compile/load.js +15 -4
  13. package/lib/compile/minify.js +1 -0
  14. package/lib/compile/to/edm-files.js +4 -33
  15. package/lib/compile/to/hdbtabledata.js +16 -3
  16. package/lib/compile/to/sql.js +1 -2
  17. package/lib/core/linked-csn.js +7 -8
  18. package/lib/dbs/cds-deploy.js +4 -3
  19. package/lib/env/cds-env.js +9 -9
  20. package/lib/env/cds-requires.js +23 -50
  21. package/lib/env/defaults.js +15 -44
  22. package/lib/env/schemas/cds-package.js +1 -1
  23. package/lib/i18n/index.js +1 -0
  24. package/lib/i18n/locale.js +41 -0
  25. package/lib/index.js +25 -15
  26. package/lib/log/cds-error.js +12 -3
  27. package/lib/log/cds-log.js +43 -18
  28. package/lib/log/format/aspects/als.js +2 -15
  29. package/lib/plugins.js +11 -11
  30. package/lib/ql/CREATE.js +1 -1
  31. package/lib/ql/DELETE.js +1 -1
  32. package/lib/ql/DROP.js +1 -1
  33. package/lib/ql/INSERT.js +9 -18
  34. package/lib/ql/SELECT.js +12 -19
  35. package/lib/ql/UPDATE.js +1 -1
  36. package/lib/ql/UPSERT.js +1 -0
  37. package/lib/ql/Whereable.js +7 -6
  38. package/lib/ql/cds-ql.js +0 -12
  39. package/lib/ql/cds.ql-Query.js +28 -68
  40. package/lib/ql/cds.ql-infer.js +97 -108
  41. package/lib/ql/resolve.js +1 -3
  42. package/lib/req/context.js +5 -4
  43. package/lib/req/request.js +46 -42
  44. package/lib/req/response.js +5 -9
  45. package/lib/req/spawn.js +38 -0
  46. package/lib/req/validate.js +9 -8
  47. package/lib/srv/bindings.js +2 -1
  48. package/lib/srv/cds-connect.js +5 -2
  49. package/lib/srv/cds-serve.js +0 -2
  50. package/lib/srv/cds.Service.js +146 -86
  51. package/lib/srv/middlewares/auth/ias-auth.js +99 -88
  52. package/lib/srv/middlewares/auth/jwt-auth.js +44 -57
  53. package/lib/srv/middlewares/cds-context.js +1 -1
  54. package/lib/srv/middlewares/ctx-model.js +1 -1
  55. package/lib/srv/middlewares/errors.js +34 -42
  56. package/lib/srv/protocols/hcql.js +35 -25
  57. package/lib/srv/protocols/index.js +0 -9
  58. package/lib/srv/protocols/odata-v4.js +1 -6
  59. package/lib/srv/srv-dispatch.js +29 -31
  60. package/lib/srv/srv-handlers.js +14 -46
  61. package/lib/srv/srv-methods.js +15 -37
  62. package/lib/srv/srv-tx.js +19 -25
  63. package/lib/test/cds-test.js +4 -263
  64. package/lib/utils/cds-utils.js +18 -2
  65. package/lib/utils/tar.js +6 -8
  66. package/lib/utils/unit.js +19 -0
  67. package/libx/_runtime/.eslintrc +1 -1
  68. package/libx/_runtime/cds-services/util/assert.js +2 -72
  69. package/libx/_runtime/cds.js +13 -6
  70. package/libx/_runtime/common/Service.js +33 -75
  71. package/libx/_runtime/common/aspects/any.js +0 -38
  72. package/libx/_runtime/common/constants/events.js +5 -13
  73. package/libx/_runtime/common/generic/auth/autoexpose.js +10 -24
  74. package/libx/_runtime/common/generic/auth/capabilities.js +23 -20
  75. package/libx/_runtime/common/generic/auth/expand.js +3 -3
  76. package/libx/_runtime/common/generic/auth/index.js +3 -3
  77. package/libx/_runtime/common/generic/auth/insertOnly.js +3 -3
  78. package/libx/_runtime/common/generic/auth/readOnly.js +4 -4
  79. package/libx/_runtime/common/generic/auth/requires.js +4 -4
  80. package/libx/_runtime/common/generic/auth/restrict.js +12 -29
  81. package/libx/_runtime/common/generic/auth/service.js +3 -3
  82. package/libx/_runtime/common/generic/auth/utils.js +2 -12
  83. package/libx/_runtime/common/generic/crud.js +22 -53
  84. package/libx/_runtime/common/generic/etag.js +18 -31
  85. package/libx/_runtime/common/generic/input.js +51 -123
  86. package/libx/_runtime/common/generic/paging.js +4 -4
  87. package/libx/_runtime/common/generic/sorting.js +8 -19
  88. package/libx/_runtime/common/generic/stream-only.js +26 -0
  89. package/libx/_runtime/common/generic/stream.js +16 -48
  90. package/libx/_runtime/common/generic/temporal.js +15 -6
  91. package/libx/_runtime/common/utils/binary.js +1 -26
  92. package/libx/_runtime/common/utils/compareJson.js +1 -2
  93. package/libx/_runtime/common/utils/cqn.js +15 -14
  94. package/libx/_runtime/common/utils/differ.js +121 -44
  95. package/libx/_runtime/common/utils/keys.js +4 -5
  96. package/libx/_runtime/common/utils/postProcess.js +2 -2
  97. package/libx/_runtime/common/utils/propagateForeignKeys.js +21 -36
  98. package/libx/_runtime/common/utils/resolveView.js +105 -141
  99. package/libx/_runtime/common/utils/rewriteAsterisks.js +45 -12
  100. package/libx/_runtime/common/utils/streamProp.js +3 -9
  101. package/libx/_runtime/common/utils/waitingTime.js +13 -1
  102. package/libx/_runtime/fiori/lean-draft.js +174 -196
  103. package/libx/_runtime/messaging/common-utils/connections.js +1 -1
  104. package/libx/_runtime/messaging/enterprise-messaging-utils/EMManagement.js +1 -0
  105. package/libx/_runtime/messaging/enterprise-messaging-utils/registerEndpoints.js +3 -3
  106. package/libx/_runtime/messaging/enterprise-messaging.js +2 -2
  107. package/libx/_runtime/messaging/file-based.js +2 -4
  108. package/libx/_runtime/messaging/redis-messaging.js +1 -1
  109. package/libx/_runtime/messaging/service.js +5 -19
  110. package/libx/_runtime/remote/Service.js +20 -33
  111. package/libx/_runtime/remote/utils/client.js +7 -25
  112. package/libx/_runtime/remote/utils/cloudSdkProvider.js +8 -13
  113. package/libx/_runtime/remote/utils/data.js +3 -34
  114. package/libx/_runtime/types/api.js +0 -8
  115. package/libx/_runtime/ucl/Service.js +1 -9
  116. package/libx/common/utils/path.js +2 -3
  117. package/libx/common/utils/streaming.js +2 -1
  118. package/libx/http/HttpRequest.js +13 -0
  119. package/libx/{odata/middleware → http}/body-parser.js +7 -5
  120. package/libx/http/location.js +41 -0
  121. package/libx/http/put.js +36 -0
  122. package/libx/odata/ODataAdapter.js +25 -59
  123. package/libx/odata/index.js +10 -23
  124. package/libx/odata/middleware/batch.js +29 -20
  125. package/libx/odata/middleware/create.js +6 -13
  126. package/libx/odata/middleware/delete.js +0 -4
  127. package/libx/odata/middleware/error.js +83 -27
  128. package/libx/odata/middleware/metadata.js +14 -25
  129. package/libx/odata/middleware/operation.js +10 -26
  130. package/libx/odata/middleware/read.js +10 -18
  131. package/libx/odata/middleware/stream.js +14 -34
  132. package/libx/odata/middleware/update.js +17 -26
  133. package/libx/odata/parse/afterburner.js +20 -16
  134. package/libx/odata/parse/cqn2odata.js +3 -1
  135. package/libx/odata/parse/grammar.peggy +221 -114
  136. package/libx/odata/parse/parser.js +1 -1
  137. package/libx/odata/utils/index.js +10 -38
  138. package/libx/odata/utils/metadata.js +1 -4
  139. package/libx/odata/utils/normalizeTimeData.js +4 -7
  140. package/libx/odata/utils/readAfterWrite.js +1 -1
  141. package/libx/{outbox/OutboxRunner.js → queue/TaskRunner.js} +17 -22
  142. package/libx/queue/index.js +530 -0
  143. package/libx/rest/RestAdapter.js +43 -82
  144. package/libx/rest/middleware/create.js +35 -33
  145. package/libx/rest/middleware/delete.js +9 -7
  146. package/libx/rest/middleware/error.js +11 -18
  147. package/libx/rest/middleware/operation.js +44 -137
  148. package/libx/rest/middleware/parse.js +114 -130
  149. package/libx/rest/middleware/read.js +23 -21
  150. package/libx/rest/middleware/update.js +20 -32
  151. package/libx/rest/middleware/upsert.js +31 -0
  152. package/libx/rest/pre-processing.js +8 -18
  153. package/package.json +6 -7
  154. package/srv/outbox.cds +1 -0
  155. package/bin/test.js +0 -125
  156. package/lib/env/plugins.js +0 -18
  157. package/lib/req/cds-context.js +0 -52
  158. package/lib/req/locale.js +0 -35
  159. package/lib/srv/cds.ServiceClient.js +0 -96
  160. package/lib/srv/cds.ServiceProvider.js +0 -20
  161. package/lib/srv/protocols/okra.js +0 -22
  162. package/lib/test/axios.js +0 -63
  163. package/lib/test/data.js +0 -52
  164. package/lib/test/expect.js +0 -343
  165. package/lib/test/reporter.js +0 -176
  166. package/libx/_runtime/cds-services/adapter/odata-v4/OData.js +0 -275
  167. package/libx/_runtime/cds-services/adapter/odata-v4/ODataRequest.js +0 -217
  168. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/action.js +0 -101
  169. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/create.js +0 -79
  170. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/debug.js +0 -6
  171. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/delete.js +0 -60
  172. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/error.js +0 -161
  173. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/language.js +0 -7
  174. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/metadata.js +0 -59
  175. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/read.js +0 -602
  176. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/request.js +0 -64
  177. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/update.js +0 -238
  178. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/ExpressionToCQN.js +0 -327
  179. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/applyToCQN.js +0 -243
  180. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/boundToCQN.js +0 -43
  181. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/createToCQN.js +0 -37
  182. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/deleteToCQN.js +0 -36
  183. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/expandToCQN.js +0 -250
  184. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/index.js +0 -81
  185. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/orderByToCQN.js +0 -51
  186. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/readToCQN.js +0 -389
  187. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/searchToCQN.js +0 -43
  188. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/selectToCQN.js +0 -35
  189. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/updateToCQN.js +0 -38
  190. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/utils.js +0 -217
  191. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/FeatureSupport.js +0 -70
  192. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/FullQualifiedName.js +0 -94
  193. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAction.js +0 -139
  194. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlActionImport.js +0 -82
  195. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAliasInfo.js +0 -44
  196. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAnnotation.js +0 -104
  197. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAnnotations.js +0 -71
  198. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlComplexType.js +0 -133
  199. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityContainer.js +0 -142
  200. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityContainerInfo.js +0 -37
  201. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntitySet.js +0 -107
  202. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityType.js +0 -177
  203. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEnumMember.js +0 -61
  204. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEnumType.js +0 -105
  205. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlFunction.js +0 -149
  206. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlFunctionImport.js +0 -105
  207. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlInclude.js +0 -68
  208. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlIncludeAnnotation.js +0 -71
  209. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlJsonProvider.js +0 -1365
  210. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlNavigationProperty.js +0 -190
  211. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlNavigationPropertyBinding.js +0 -37
  212. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlOnDelete.js +0 -70
  213. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlParameter.js +0 -227
  214. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlProperty.js +0 -250
  215. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlPropertyRef.js +0 -49
  216. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlProvider.js +0 -190
  217. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReference.js +0 -97
  218. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReferentialConstraint.js +0 -60
  219. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReturnType.js +0 -216
  220. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlSchema.js +0 -328
  221. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlSingleton.js +0 -84
  222. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlTerm.js +0 -320
  223. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlTypeDefinition.js +0 -193
  224. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlAnnotationExpression.js +0 -73
  225. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlAnnotationPathExpression.js +0 -33
  226. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlApplyExpression.js +0 -105
  227. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlArithmeticExpression.js +0 -72
  228. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlBinaryExpression.js +0 -110
  229. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlCastExpression.js +0 -188
  230. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlCollectionExpression.js +0 -48
  231. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlConstantExpression.js +0 -116
  232. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlIfExpression.js +0 -62
  233. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlIsOfExpression.js +0 -200
  234. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlLabeledElementExpression.js +0 -42
  235. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlLabeledElementReferenceExpression.js +0 -31
  236. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlModelElementPathExpression.js +0 -29
  237. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNavigationPropertyPathExpression.js +0 -31
  238. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNegationExpression.js +0 -27
  239. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNotExpression.js +0 -31
  240. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNullExpression.js +0 -18
  241. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPathExpression.js +0 -32
  242. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPropertyPathExpression.js +0 -32
  243. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPropertyValueExpression.js +0 -55
  244. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlRecordExpression.js +0 -54
  245. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlUnknownExpression.js +0 -44
  246. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlUrlRefExpression.js +0 -31
  247. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmBindingTarget.js +0 -163
  248. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmFaceted.js +0 -136
  249. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmOperation.js +0 -205
  250. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmOperationImport.js +0 -126
  251. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmStructuredType.js +0 -275
  252. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/Edm.js +0 -775
  253. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAction.js +0 -15
  254. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmActionImport.js +0 -39
  255. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAnnotation.js +0 -106
  256. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAnnotations.js +0 -57
  257. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmComplexType.js +0 -48
  258. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntityContainer.js +0 -455
  259. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntitySet.js +0 -43
  260. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntityType.js +0 -119
  261. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEnumMember.js +0 -69
  262. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEnumType.js +0 -117
  263. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmFunction.js +0 -39
  264. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmFunctionImport.js +0 -59
  265. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmInclude.js +0 -65
  266. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmIncludeAnnotation.js +0 -48
  267. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmKeyPropertyRef.js +0 -79
  268. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmNavigationProperty.js +0 -182
  269. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmNavigationPropertyBinding.js +0 -46
  270. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmOnDelete.js +0 -44
  271. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmParameter.js +0 -22
  272. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmPrimitiveType.js +0 -31
  273. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmPrimitiveTypeKind.js +0 -70
  274. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmProperty.js +0 -39
  275. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmProvider.js +0 -399
  276. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReference.js +0 -88
  277. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReferentialConstraint.js +0 -71
  278. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReturnType.js +0 -14
  279. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmSchema.js +0 -355
  280. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmSingleton.js +0 -15
  281. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTerm.js +0 -75
  282. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmType.js +0 -95
  283. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTypeDefinition.js +0 -121
  284. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTypeFactory.js +0 -28
  285. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmVocabularyTermType.js +0 -41
  286. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/KeyFactory.js +0 -67
  287. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/Target.js +0 -56
  288. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/TransientStructuredType.js +0 -244
  289. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/AnnotationExpressionFactory.js +0 -130
  290. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmAnnotationExpression.js +0 -28
  291. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmAnnotationPathExpression.js +0 -42
  292. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmApplyExpression.js +0 -85
  293. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmArithmeticExpression.js +0 -92
  294. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmBinaryExpression.js +0 -96
  295. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmCastExpression.js +0 -129
  296. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmCollectionExpression.js +0 -52
  297. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmConstantExpression.js +0 -83
  298. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmIfExpression.js +0 -103
  299. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmIsOfExpression.js +0 -125
  300. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmLabeledElementExpression.js +0 -83
  301. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmLabeledElementReferenceExpression.js +0 -41
  302. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmModelElementPathExpression.js +0 -35
  303. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNavigationPropertyPathExpression.js +0 -37
  304. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNegationExpression.js +0 -70
  305. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNotExpression.js +0 -75
  306. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNullExpression.js +0 -50
  307. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPathExpression.js +0 -38
  308. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPropertyPathExpression.js +0 -37
  309. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPropertyValueExpression.js +0 -72
  310. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmRecordExpression.js +0 -100
  311. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmUnknownExpression.js +0 -72
  312. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmUrlRefExpression.js +0 -73
  313. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/AbstractError.js +0 -82
  314. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/IllegalArgumentError.js +0 -58
  315. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/IllegalCallError.js +0 -21
  316. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/NotImplementedError.js +0 -19
  317. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriQueryOptionSemanticError.js +0 -49
  318. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriSemanticError.js +0 -48
  319. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriSyntaxError.js +0 -65
  320. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/ContentTypeInfo.js +0 -105
  321. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/JsonContentTypeInfo.js +0 -83
  322. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/JsonFormat.js +0 -141
  323. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/RepresentationKind.js +0 -251
  324. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpHeader.js +0 -42
  325. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpHeaderReader.js +0 -318
  326. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpMethod.js +0 -25
  327. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpStatusCode.js +0 -52
  328. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/Preferences.js +0 -32
  329. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/index.js +0 -69
  330. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/logging/LoggerFacade.js +0 -183
  331. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/AliasExpression.js +0 -47
  332. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ApplyParser.js +0 -946
  333. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/BinaryExpression.js +0 -124
  334. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpandItem.js +0 -76
  335. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpandParser.js +0 -384
  336. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/Expression.js +0 -46
  337. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpressionParser.js +0 -1988
  338. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/FilterParser.js +0 -34
  339. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/FunctionParameterParser.js +0 -106
  340. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/KeyPredicateParser.js +0 -155
  341. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/KeyValueParser.js +0 -213
  342. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/LiteralExpression.js +0 -43
  343. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/MemberExpression.js +0 -44
  344. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/MethodExpression.js +0 -146
  345. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/OrderByItem.js +0 -53
  346. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/OrderByParser.js +0 -69
  347. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ResourcePathParser.js +0 -848
  348. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SearchParser.js +0 -127
  349. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SelectItem.js +0 -80
  350. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SelectParser.js +0 -294
  351. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/TypeLiteralExpression.js +0 -28
  352. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UnaryExpression.js +0 -64
  353. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriHelper.js +0 -65
  354. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriInfo.js +0 -165
  355. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParameter.js +0 -107
  356. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParser.js +0 -350
  357. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriResource.js +0 -602
  358. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriTokenizer.js +0 -1156
  359. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/AggregateExpression.js +0 -164
  360. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/AggregateTransformation.js +0 -38
  361. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/BottomTopTransformation.js +0 -93
  362. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ComputeExpression.js +0 -52
  363. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ComputeTransformation.js +0 -38
  364. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ConcatTransformation.js +0 -38
  365. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/CustomFunctionTransformation.js +0 -59
  366. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ExpandTransformation.js +0 -37
  367. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/FilterTransformation.js +0 -37
  368. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/GroupByItem.js +0 -71
  369. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/GroupByTransformation.js +0 -58
  370. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/IdentityTransformation.js +0 -17
  371. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/OrderByTransformation.js +0 -37
  372. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/SearchTransformation.js +0 -37
  373. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/SkipTransformation.js +0 -37
  374. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/TopTransformation.js +0 -37
  375. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/Transformation.js +0 -53
  376. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/info.md +0 -116
  377. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/PrimitiveValueDecoder.js +0 -667
  378. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/PrimitiveValueEncoder.js +0 -349
  379. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/ValueConverter.js +0 -545
  380. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ParameterValidator.js +0 -124
  381. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ValueValidator.js +0 -743
  382. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/ServiceFactory.js +0 -234
  383. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchContext.js +0 -351
  384. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchErrorInfo.js +0 -61
  385. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchExitHandler.js +0 -239
  386. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchProcessor.js +0 -281
  387. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchValidator.js +0 -133
  388. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchedRequestExecutor.js +0 -92
  389. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ComponentManager.js +0 -63
  390. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Context.js +0 -96
  391. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Dispatcher.js +0 -147
  392. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataRequest.js +0 -458
  393. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataRequestInBatch.js +0 -147
  394. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataResponse.js +0 -314
  395. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataResponseInBatch.js +0 -83
  396. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/PlainHttpRequest.js +0 -175
  397. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/PlainHttpResponse.js +0 -106
  398. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/RequestContract.js +0 -111
  399. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseContract.js +0 -111
  400. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseHeaderSetter.js +0 -240
  401. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Service.js +0 -417
  402. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ServiceResolutions.js +0 -24
  403. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ApplicationHttpReader.js +0 -157
  404. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/BatchJsonDeserializer.js +0 -171
  405. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/BatchRequestListBuilder.js +0 -196
  406. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/Cache.js +0 -154
  407. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ContentDeserializer.js +0 -222
  408. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/DataReader.js +0 -220
  409. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/DeserializerFactory.js +0 -240
  410. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/HeaderReader.js +0 -133
  411. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/LineReader.js +0 -61
  412. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/MultipartReader.js +0 -419
  413. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/PartReader.js +0 -99
  414. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/Reader.js +0 -52
  415. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ResourceJsonDeserializer.js +0 -673
  416. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/ApplicationError.js +0 -108
  417. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/BadRequestError.js +0 -21
  418. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/ConflictError.js +0 -11
  419. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/DeserializationError.js +0 -19
  420. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/InternalServerError.js +0 -20
  421. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/MethodNotAllowedError.js +0 -17
  422. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/NotAcceptableError.js +0 -21
  423. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/NotFoundError.js +0 -33
  424. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/PreconditionFailedError.js +0 -11
  425. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/PreconditionRequiredError.js +0 -11
  426. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/SerializationError.js +0 -19
  427. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/UnauthorizedError.js +0 -17
  428. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/AcceptTypeInfo.js +0 -86
  429. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/CharsetInfo.js +0 -76
  430. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/FormatDescription.js +0 -43
  431. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/FormatManager.js +0 -91
  432. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/RequestContentNegotiator.js +0 -62
  433. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/ResponseContentNegotiator.js +0 -321
  434. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/BatchHandler.js +0 -36
  435. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/MetadataHandler.js +0 -21
  436. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/ServiceHandler.js +0 -25
  437. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/CustomPreference.js +0 -31
  438. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HeaderInfo.js +0 -79
  439. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpHeader.js +0 -59
  440. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpHeaderReader.js +0 -452
  441. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpStatusCode.js +0 -117
  442. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/Preferences.js +0 -222
  443. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/PreferencesApplied.js +0 -199
  444. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/index.js +0 -37
  445. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/Command.js +0 -31
  446. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/CommandExecutor.js +0 -94
  447. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/CommandFactory.js +0 -203
  448. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ConditionalRequestControlCommand.js +0 -52
  449. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ConditionalRequestPreValidationCommand.js +0 -59
  450. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ContentNegotiatorCommand.js +0 -70
  451. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugContentNegotiatorCommand.js +0 -59
  452. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugDeserializingCommand.js +0 -44
  453. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugSerializingCommand.js +0 -51
  454. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DeserializingCommand.js +0 -69
  455. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DispatcherCommand.js +0 -95
  456. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ErrorContentNegotiatorCommand.js +0 -44
  457. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ErrorSerializingCommand.js +0 -51
  458. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/EventListenerCommand.js +0 -59
  459. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/LocaleNegotiatorCommand.js +0 -56
  460. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/OdataVersionValidationCommand.js +0 -41
  461. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/OperationValidationCommand.js +0 -34
  462. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ParsePreferHeaderCommand.js +0 -47
  463. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/PresetResponseHeadersCommand.js +0 -47
  464. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/QueryOptionsParserCommand.js +0 -43
  465. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/QueryOptionsValidationCommand.js +0 -62
  466. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/RequestContentValidationCommand.js +0 -51
  467. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SendResponseCommand.js +0 -37
  468. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SerializingCommand.js +0 -159
  469. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetResponseHeadersCommand.js +0 -90
  470. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetStatuscodeCommand.js +0 -51
  471. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/UriParserCommand.js +0 -47
  472. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/logging/DebugLogger.js +0 -97
  473. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ApplicationHttpWriter.js +0 -65
  474. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/BatchJsonSerializer.js +0 -46
  475. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/BatchMultipartSerializer.js +0 -113
  476. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ContextURLFactory.js +0 -405
  477. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/DebugHtmlSerializer.js +0 -302
  478. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/DebugJsonSerializer.js +0 -515
  479. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorJsonSerializer.js +0 -47
  480. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorSerializer.js +0 -39
  481. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorXmlSerializer.js +0 -98
  482. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ExpressionTreeImage.js +0 -404
  483. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/MetadataXmlSerializer.js +0 -1416
  484. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/MultipartWriter.js +0 -202
  485. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/NextLinkSerializer.js +0 -330
  486. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ResourceJsonSerializer.js +0 -1220
  487. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/SerializerFactory.js +0 -484
  488. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ServiceJsonSerializer.js +0 -89
  489. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/TrustedResourceJsonSerializer.js +0 -612
  490. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/debugview.html +0 -157
  491. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/BufferedWriter.js +0 -59
  492. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/ExpandHelper.js +0 -96
  493. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/MetadataCache.js +0 -136
  494. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/PerformanceMonitor.js +0 -221
  495. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/UriHelper.js +0 -157
  496. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/ConditionalRequestValidator.js +0 -79
  497. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/OperationValidator.js +0 -199
  498. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/RequestValidator.js +0 -392
  499. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/VersionValidator.js +0 -62
  500. package/libx/_runtime/cds-services/adapter/odata-v4/to.js +0 -51
  501. package/libx/_runtime/cds-services/adapter/odata-v4/utils/data.js +0 -331
  502. package/libx/_runtime/cds-services/adapter/odata-v4/utils/handlerUtils.js +0 -159
  503. package/libx/_runtime/cds-services/adapter/odata-v4/utils/metaInfo.js +0 -404
  504. package/libx/_runtime/cds-services/adapter/odata-v4/utils/oDataConfiguration.js +0 -55
  505. package/libx/_runtime/cds-services/adapter/odata-v4/utils/omitValues.js +0 -86
  506. package/libx/_runtime/cds-services/adapter/odata-v4/utils/readAfterWrite.js +0 -107
  507. package/libx/_runtime/cds-services/adapter/odata-v4/utils/request.js +0 -64
  508. package/libx/_runtime/cds-services/adapter/odata-v4/utils/result.js +0 -385
  509. package/libx/_runtime/cds-services/adapter/odata-v4/utils/stream.js +0 -12
  510. package/libx/_runtime/cds-services/util/errors.js +0 -15
  511. package/libx/_runtime/common/aspects/relation.js +0 -40
  512. package/libx/_runtime/common/composition/data.js +0 -370
  513. package/libx/_runtime/common/composition/delete.js +0 -313
  514. package/libx/_runtime/common/composition/index.js +0 -22
  515. package/libx/_runtime/common/composition/insert.js +0 -108
  516. package/libx/_runtime/common/composition/tree.js +0 -275
  517. package/libx/_runtime/common/composition/update.js +0 -354
  518. package/libx/_runtime/common/composition/utils.js +0 -95
  519. package/libx/_runtime/common/error/constants.js +0 -20
  520. package/libx/_runtime/common/error/entry.js +0 -36
  521. package/libx/_runtime/common/error/frontend.js +0 -199
  522. package/libx/_runtime/common/error/index.js +0 -12
  523. package/libx/_runtime/common/error/log.js +0 -35
  524. package/libx/_runtime/common/error/standardError.js +0 -11
  525. package/libx/_runtime/common/error/utils.js +0 -18
  526. package/libx/_runtime/common/generic/auth/constants.js +0 -17
  527. package/libx/_runtime/common/generic/put.js +0 -85
  528. package/libx/_runtime/common/utils/columns.js +0 -177
  529. package/libx/_runtime/common/utils/compareJsonOLD.js +0 -280
  530. package/libx/_runtime/common/utils/cqn2cqn4sql.js +0 -1039
  531. package/libx/_runtime/common/utils/data.js +0 -16
  532. package/libx/_runtime/common/utils/dollar.js +0 -27
  533. package/libx/_runtime/common/utils/generateOnCond.js +0 -127
  534. package/libx/_runtime/common/utils/onlyKeysRemain.js +0 -10
  535. package/libx/_runtime/common/utils/path.js +0 -20
  536. package/libx/_runtime/common/utils/quotingStyles.js +0 -29
  537. package/libx/_runtime/common/utils/restrictions.js +0 -67
  538. package/libx/_runtime/common/utils/search2cqn4sql.js +0 -37
  539. package/libx/_runtime/common/utils/searchToLike.js +0 -56
  540. package/libx/_runtime/common/utils/stream.js +0 -103
  541. package/libx/_runtime/common/utils/ucsn.js +0 -119
  542. package/libx/_runtime/common/utils/union.js +0 -31
  543. package/libx/_runtime/common/utils/unionCqnTemplate.js +0 -174
  544. package/libx/_runtime/db/Service.js +0 -93
  545. package/libx/_runtime/db/data-conversion/post-processing.js +0 -175
  546. package/libx/_runtime/db/expand/expand-v2.js +0 -147
  547. package/libx/_runtime/db/expand/expandCQNToJoin.js +0 -1775
  548. package/libx/_runtime/db/expand/index.js +0 -13
  549. package/libx/_runtime/db/expand/rawToExpanded.js +0 -250
  550. package/libx/_runtime/db/generic/create.js +0 -30
  551. package/libx/_runtime/db/generic/delete.js +0 -18
  552. package/libx/_runtime/db/generic/index.js +0 -25
  553. package/libx/_runtime/db/generic/input.js +0 -227
  554. package/libx/_runtime/db/generic/read.js +0 -16
  555. package/libx/_runtime/db/generic/rewrite.js +0 -68
  556. package/libx/_runtime/db/generic/structured.js +0 -92
  557. package/libx/_runtime/db/generic/update.js +0 -97
  558. package/libx/_runtime/db/generic/virtual.js +0 -83
  559. package/libx/_runtime/db/query/delete.js +0 -39
  560. package/libx/_runtime/db/query/index.js +0 -13
  561. package/libx/_runtime/db/query/insert.js +0 -21
  562. package/libx/_runtime/db/query/read.js +0 -97
  563. package/libx/_runtime/db/query/run.js +0 -30
  564. package/libx/_runtime/db/query/update.js +0 -94
  565. package/libx/_runtime/db/result/InsertResult.js +0 -87
  566. package/libx/_runtime/db/sql-builder/BaseBuilder.js +0 -65
  567. package/libx/_runtime/db/sql-builder/CreateBuilder.js +0 -212
  568. package/libx/_runtime/db/sql-builder/DeleteBuilder.js +0 -87
  569. package/libx/_runtime/db/sql-builder/DropBuilder.js +0 -63
  570. package/libx/_runtime/db/sql-builder/ExpressionBuilder.js +0 -345
  571. package/libx/_runtime/db/sql-builder/FunctionBuilder.js +0 -232
  572. package/libx/_runtime/db/sql-builder/InsertBuilder.js +0 -494
  573. package/libx/_runtime/db/sql-builder/ReferenceBuilder.js +0 -135
  574. package/libx/_runtime/db/sql-builder/SelectBuilder.js +0 -482
  575. package/libx/_runtime/db/sql-builder/UpdateBuilder.js +0 -207
  576. package/libx/_runtime/db/sql-builder/UpsertBuilder.js +0 -25
  577. package/libx/_runtime/db/sql-builder/annotations.js +0 -50
  578. package/libx/_runtime/db/sql-builder/arrayed.js +0 -4
  579. package/libx/_runtime/db/sql-builder/dataTypes.js +0 -59
  580. package/libx/_runtime/db/sql-builder/dollar.js +0 -37
  581. package/libx/_runtime/db/sql-builder/index.js +0 -28
  582. package/libx/_runtime/db/sql-builder/sqlFactory.js +0 -104
  583. package/libx/_runtime/db/utils/coloredTxCommands.js +0 -7
  584. package/libx/_runtime/db/utils/columns.js +0 -41
  585. package/libx/_runtime/db/utils/deep.js +0 -71
  586. package/libx/_runtime/db/utils/generateAliases.js +0 -160
  587. package/libx/_runtime/db/utils/localized.js +0 -77
  588. package/libx/_runtime/db/utils/normalizeTimeData.js +0 -98
  589. package/libx/_runtime/db/utils/stream.js +0 -41
  590. package/libx/_runtime/hana/Service.js +0 -173
  591. package/libx/_runtime/hana/conversion.js +0 -73
  592. package/libx/_runtime/hana/customBuilder/CustomCreateBuilder.js +0 -11
  593. package/libx/_runtime/hana/customBuilder/CustomDeleteBuilder.js +0 -17
  594. package/libx/_runtime/hana/customBuilder/CustomDropBuilder.js +0 -12
  595. package/libx/_runtime/hana/customBuilder/CustomExpressionBuilder.js +0 -23
  596. package/libx/_runtime/hana/customBuilder/CustomFunctionBuilder.js +0 -34
  597. package/libx/_runtime/hana/customBuilder/CustomReferenceBuilder.js +0 -38
  598. package/libx/_runtime/hana/customBuilder/CustomSelectBuilder.js +0 -90
  599. package/libx/_runtime/hana/customBuilder/index.js +0 -11
  600. package/libx/_runtime/hana/driver.js +0 -205
  601. package/libx/_runtime/hana/dynatrace.js +0 -130
  602. package/libx/_runtime/hana/execute.js +0 -429
  603. package/libx/_runtime/hana/localized.js +0 -39
  604. package/libx/_runtime/hana/pool.js +0 -186
  605. package/libx/_runtime/hana/search.js +0 -20
  606. package/libx/_runtime/hana/search2Contains.js +0 -106
  607. package/libx/_runtime/hana/search2cqn4sql.js +0 -98
  608. package/libx/_runtime/hana/streaming.js +0 -248
  609. package/libx/_runtime/messaging/Outbox.js +0 -15
  610. package/libx/_runtime/sqlite/Service.js +0 -153
  611. package/libx/_runtime/sqlite/conversion.js +0 -47
  612. package/libx/_runtime/sqlite/convertAssocToOneManaged.js +0 -60
  613. package/libx/_runtime/sqlite/convertDraftAdminPathExpression.js +0 -74
  614. package/libx/_runtime/sqlite/customBuilder/CustomExpressionBuilder.js +0 -24
  615. package/libx/_runtime/sqlite/customBuilder/CustomFunctionBuilder.js +0 -102
  616. package/libx/_runtime/sqlite/customBuilder/CustomSelectBuilder.js +0 -16
  617. package/libx/_runtime/sqlite/customBuilder/CustomUpsertBuilder.js +0 -47
  618. package/libx/_runtime/sqlite/customBuilder/index.js +0 -49
  619. package/libx/_runtime/sqlite/execute.js +0 -345
  620. package/libx/_runtime/sqlite/localized.js +0 -49
  621. package/libx/outbox/index.js +0 -307
package/lib/ql/INSERT.js CHANGED
@@ -10,7 +10,7 @@ class INSERT extends Query {
10
10
  }
11
11
 
12
12
  into (entity, ...data) {
13
- this._.into = this._target4 (entity, ...data) // supporting tts
13
+ this[this.kind].into = this._target4 (entity, ...data) // supporting tts
14
14
  if (data.length) this.entries(...data)
15
15
  return this
16
16
  }
@@ -18,49 +18,40 @@ class INSERT extends Query {
18
18
  entries (...x) {
19
19
  if (!x.length) return this
20
20
  if (x[0].SELECT) return this.from(x[0])
21
- this._.entries = is_array(x[0]) ? x[0] : x
21
+ this[this.kind].entries = is_array(x[0]) ? x[0] : x
22
22
  return this
23
23
  }
24
24
  columns (...x) {
25
- this._.columns = is_array(x[0]) ? x[0] : x
25
+ this[this.kind].columns = is_array(x[0]) ? x[0] : x
26
26
  return this
27
27
  }
28
28
  values (...x) {
29
- this._.values = is_array(x[0]) ? x[0] : x
29
+ this[this.kind].values = is_array(x[0]) ? x[0] : x
30
30
  return this
31
31
  }
32
32
  rows (...rows) {
33
33
  if (is_array(rows[0]) && is_array(rows[0][0])) rows = rows[0]
34
34
  if (!is_array(rows[0])) this._expected `Arguments ${{rows}} to be an array of arrays`
35
- this._.rows = rows
35
+ this[this.kind].rows = rows
36
36
  return this
37
37
  }
38
38
 
39
39
  from (query) {
40
40
  if (!query) return this
41
- if (!query.SELECT) {
42
- if (query.name || typeof query === 'string') query = SELECT.from(query)
43
- else this._expected `${{query}} to be a CQN {SELECT} query object`
44
- }
45
- this._.as = query // REVISIT: should we also change CSN spec, and adopt db service impls?
41
+ else if (query.name || typeof query === 'string') query = SELECT.from(query)
42
+ else if (!query.SELECT) this._expected `${{query}} to be a CQN {SELECT} query object`
43
+ this[this.kind].from = query
46
44
  return this
47
45
  }
48
46
 
49
- /** @deprecated */ as(q) { return this.from(q) }
50
-
51
47
  valueOf() {
52
48
  return super.valueOf('INSERT INTO')
53
49
  }
54
50
 
55
- get _target_ref(){ return ( this.INSERT || this.UPSERT ).into }
51
+ get _subject(){ return this.INSERT.into }
56
52
  }
57
53
 
58
54
  const is_array = Array.isArray
59
55
 
60
- INSERT.prototype.as = require('../utils').deprecated (INSERT.prototype.as, {
61
- old:'INSERT.as(SELECT)',
62
- use:'INSERT.entries(SELECT)'
63
- })
64
-
65
56
  /** @type INSERT.API & (...entries:[]) => INSERT */
66
57
  module.exports = INSERT.init()
package/lib/ql/SELECT.js CHANGED
@@ -70,10 +70,11 @@ class SELECT extends Whereable {
70
70
 
71
71
  /** @private */ _ambiguous (...xy) {
72
72
  const {SELECT:_} = this, {one} = _
73
- return this.from(...xy)._set('from', (...the_real_target) => {
73
+ this.from(...xy)._set('from', (...the_real_target) => {
74
74
  if (!one) delete _.one; delete _.columns; delete this.from
75
75
  return this.from (...the_real_target) .columns (...xy)
76
76
  })
77
+ return this
77
78
  }
78
79
 
79
80
  columns (...cols) {
@@ -102,17 +103,17 @@ class SELECT extends Whereable {
102
103
  return this
103
104
  }
104
105
 
105
- fullJoin (other, as) { return this.join (other, as, 'full') }
106
- leftJoin (other, as) { return this.join (other, as, 'left') }
107
- rightJoin (other, as) { return this.join (other, as, 'right') }
108
- innerJoin (other, as) { return this.join (other, as, 'inner') }
109
- join (other, as, kind='inner') {
106
+ /** @deprecated */ fullJoin (other, as) { return this.join (other, as, 'full') }
107
+ /** @deprecated */ leftJoin (other, as) { return this.join (other, as, 'left') }
108
+ /** @deprecated */ rightJoin (other, as) { return this.join (other, as, 'right') }
109
+ /** @deprecated */ innerJoin (other, as) { return this.join (other, as, 'inner') }
110
+ /** @deprecated */ join (other, as, kind='inner') {
110
111
  const [, target, alias = as] = /(\S+)(?:\s+(?:as)?\s+(\S+))?/i.exec(other)
111
112
  const ref = { ref: [target] }; if (alias) ref.as = alias
112
113
  this.SELECT.from = { join:kind, args: [this.SELECT.from, ref] }
113
114
  return Object.defineProperty(this, '_where_or_having', { value: 'on', configurable: true })
114
115
  }
115
- on (...args) {
116
+ /** @deprecated */ on (...args) {
116
117
  const {from} = this.SELECT
117
118
  if (!from?.join) throw new Error(`Invalid call of "SELECT.on()" without prior call of "SELECT.join()"`)
118
119
  // string values in on clause are interpreted as refs, not vals
@@ -157,27 +158,19 @@ class SELECT extends Whereable {
157
158
  return this
158
159
  }
159
160
 
160
- forShareLock () {
161
+ /** @deprecated */ forShareLock () {
161
162
  this.SELECT.forShareLock = true
162
163
  return this
163
164
  }
164
165
 
165
- foreach (callback) {
166
- return this.then(rows => rows.map(callback))
167
- }
168
-
169
- valueOf () {
170
- return super.valueOf('SELECT * FROM')
171
- }
172
-
173
166
  hints (...args) {
174
167
  if (args.length) this.SELECT.hints = args.flat()
175
168
  return this
176
169
  }
177
170
 
178
- /** @private */ get _target_ref(){ return this.SELECT.from }
179
-
180
- get elements() { return this.elements = cds.infer.elements4 (this.SELECT.columns, this.source) }
171
+ valueOf() { return super.valueOf('SELECT * FROM') }
172
+ get _subject(){ return this.SELECT.from }
173
+ get elements() { return this.elements = cds.infer.elements (this) }
181
174
  set elements(e) { this._set('elements',e) }
182
175
  }
183
176
 
package/lib/ql/UPDATE.js CHANGED
@@ -65,7 +65,7 @@ class UPDATE extends Whereable {
65
65
  return this
66
66
  }
67
67
 
68
- get _target_ref(){ return this.UPDATE.entity }
68
+ get _subject(){ return this.UPDATE.entity }
69
69
  }
70
70
 
71
71
 
package/lib/ql/UPSERT.js CHANGED
@@ -10,6 +10,7 @@ class UPSERT extends INSERT {
10
10
  into: (..._) => (new this).into(..._)
11
11
  }
12
12
 
13
+ get _subject(){ return this.UPSERT.into }
13
14
  }
14
15
 
15
16
  /** @type UPSERT.API & (...entries:[]) => UPSERT */
@@ -9,7 +9,7 @@ class Whereable extends Query {
9
9
  or (...args) { return this._and_or ('or',args) }
10
10
 
11
11
  /** @protected */
12
- _where (args, clause='where', cqn=this._) {
12
+ _where (args, clause='where', cqn=this[this.kind]) {
13
13
  let tail = cds.ql.predicate(...args); if (!tail?.length) return this
14
14
  let head = cqn[clause]
15
15
  if (!head) cqn[clause] = tail
@@ -24,14 +24,15 @@ class Whereable extends Query {
24
24
 
25
25
  /** @private */
26
26
  _and_or (ao, args) {
27
+ const $ = this[this.kind]
27
28
  let clause = this._clause ??= ( //> some projects use .and()/.or() with manually filled in .where
28
- this._.having ? 'having' :
29
- this._.where ? 'where' :
30
- this._.from?.on ? 'on' :
29
+ $.having ? 'having' :
30
+ $.where ? 'where' :
31
+ $.from?.on ? 'on' :
31
32
  cds.error `Unexpected use of .${ao}() without prior .where(), .having(), or .on()`
32
33
  )
33
34
  let tail = cds.ql.predicate(...args); if (!tail?.length) return this
34
- let cqn = clause === 'on' ? this._.from : this._
35
+ let cqn = clause === 'on' ? $.from : $
35
36
  let head = cqn[clause], direct = this._direct; delete this._direct
36
37
  if (direct && ao === 'and') //> wrap ORs for .and() directly following .where()
37
38
  if (head.includes('or')) head = [{xpr:head}]
@@ -45,7 +46,7 @@ class Whereable extends Query {
45
46
  key = cds.env.features.keys_as_val ? { val: key } : { [Object.keys(this._target.keys||{ID:1})[0]]: key }
46
47
  if (this.SELECT) this.SELECT.one = true
47
48
  if (cds.env.features.keys_into_where) return this.where(key)
48
- const {ref} = this._target_ref
49
+ const {ref} = this._subject
49
50
  ref[ref.length-1] = { id: ref.at(-1), where: cds.ql.predicate(key) }
50
51
  return this
51
52
  }
package/lib/ql/cds-ql.js CHANGED
@@ -229,15 +229,3 @@ const is_array = Array.isArray
229
229
  exports.clone = function (q,_) {
230
230
  return Query.prototype.clone.call(q,_)
231
231
  }
232
-
233
- /**
234
- * For questionable tests only.
235
- * @protected @deprecated
236
- */
237
- exports._reset = ()=>{
238
- const _name = cds.env.sql.names === 'quoted' ? n =>`"${n}"` : n => n.replace(/[.:]/g,'_')
239
- Object.defineProperty (Query.prototype,'valueOf',{ configurable:1, value: function(kind=this.kind) {
240
- return `${kind} ${_name(this._target.name)} `
241
- }})
242
- return this
243
- }
@@ -1,14 +1,11 @@
1
1
  const { AsyncResource } = require('async_hooks')
2
2
  const cds = require('../index')
3
-
4
- const cloned = from => from.ref ? { ...from, ref:[...from.ref] } : { ...from }
5
3
  const cached = {}
6
4
 
7
5
 
8
6
  class Query {
9
7
 
10
- /** @private */
11
- static init () {
8
+ static init() {
12
9
  const self = this, kind = self.name
13
10
  Object.defineProperty (this.prototype, 'kind', {value:kind})
14
11
  Object.defineProperty (this, 'name', {value:'cds.ql'})
@@ -22,9 +19,6 @@ class Query {
22
19
  /** @private to be implemented in subclassed*/
23
20
  static call() {}
24
21
 
25
- /** @private */
26
- get _(){ return this[this.kind] }
27
-
28
22
 
29
23
  /**
30
24
  * The kind of query, as in CQN's SELECT, INSERT, UPDATE, DELETE, CREATE, DROP.
@@ -37,7 +31,7 @@ class Query {
37
31
  * sub selects in columns, which in turn may has aliases in .as.
38
32
  */
39
33
  alias (a) {
40
- this._target_ref.as = a
34
+ this._subject.as = a
41
35
  return this
42
36
  }
43
37
 
@@ -57,7 +51,6 @@ class Query {
57
51
 
58
52
  /** Binds this query to be executed with the given service */
59
53
  bind (srv) {
60
- // TODO: resolve target from srv.entities -> but better do that in .from
61
54
  return Object.defineProperty (this,'_srv',{ value:srv, configurable:true, writable:true })
62
55
  }
63
56
 
@@ -68,83 +61,50 @@ class Query {
68
61
  return (r,e) => q.runInAsyncScope (srv.run, srv, this).then (r,e)
69
62
  }
70
63
 
71
- /** @private */ get _target_ref() { return this._.from } // overridden in subclasses
72
- /** @private */ set _target(t) { this._set('_target', t.ref ? {name:t.ref[0]} : t) }
73
-
74
- /**
75
- * @param {string | Function | object} t - the target
76
- * @param {unknown[]} etc - additional arguments
77
- * @returns {typeof this._target | import('@sap/cds').ref}
78
- * @private
79
- **/
80
- _target4 (t,...etc) {
81
- switch (typeof t) {
82
- case 'string': {
83
- // NOTE: even though this._target will be {name:ref[0]} this returns the parsed {ref}
84
- // NOTE: we need to clone cached refs, as they might get modified afterwards
85
- return this._target = cloned (cached[t] ??= cds.parse.path(t))
86
- }
87
- case 'function': // fallthrough for classes generated by cds-typer. Will end up in t.name subcase
88
- case 'object': {
89
- if (t.raw) return this._target = !etc.length ? this._target4(t[0]) : cds.parse.path(t,...etc)
90
- if (t.name) return {ref:[ (this._target = t).name ]}
91
- if (t.ref || t.SELECT || t.SET) return this._target = t
92
- }
64
+ get _subject() { throw new Error('should be overridden in subclasses') }
65
+ set _target(t) { this._set('_target',t) } // ensure non-enumerable
66
+
67
+ /** @returns {ref:string[]} */
68
+ _target4 (x,...y) {
69
+ if (typeof x === 'string') {
70
+ const r = cached[x] ??= cds.parse.path(x); this._target = {name:r.ref[0]}
71
+ return { ...r, ref:[...r.ref] } // clone ref, as they may get modified
72
+ } else if (x) {
73
+ if (x.raw) return this._target4 (y.length ? cds.parse.path(x,...y) : x[0])
74
+ if (x.ref) return this._target = {name:x.ref[0]}, x
75
+ if (x.name) return this._target = x, {ref:[x.name]}
76
+ if (x.SELECT) return this._target = x
77
+ if (x.SET) return this._target = x
93
78
  }
94
- throw this._expected `${{target:t}} to be an entity path string, a CSN definition, a {ref}, a {SELECT}, a {SET}, or a class representing an entity definition`
79
+ throw this._expected `${{target:x}} to be a CSN entity, an entity name or path, a {ref}, or a subquery`
95
80
  }
96
81
 
97
- /** @private */ _expected (...args) {
82
+ _expected (...args) {
98
83
  return cds.error.expected (...args)
99
84
  }
100
85
 
101
- /** @private */ _assign (...aspects) {
102
- Object.assign (this._, ...aspects)
86
+ _assign (...aspects) {
87
+ Object.assign (this[this.kind], ...aspects)
103
88
  return this
104
89
  }
105
90
 
106
- /** @private */ _add (property, values) {
107
- const {_} = this, pd = Reflect.getOwnPropertyDescriptor (_,property)
108
- _[property] = !pd?.value ? values : [ ...pd.value, ...values ]
91
+ _add (property, values) {
92
+ const $ = this[this.kind], pd = Reflect.getOwnPropertyDescriptor ($,property)
93
+ $[property] = !pd?.value ? values : [ ...pd.value, ...values ]
109
94
  return this
110
95
  }
111
96
 
112
- /** @private */ _set (property, value) {
113
- return Object.defineProperty (this, property, { value, configurable:true, writable:true })
97
+ _set (property, value) {
98
+ Object.defineProperty (this, property, { value, configurable:true, writable:true })
99
+ return value
114
100
  }
115
101
 
116
102
  valueOf (prelude = this.kind) {
117
103
  return `${prelude} ${_name(this._target.name)} `
118
104
  }
119
-
120
- /**
121
- * Returns the inferred query's source, which is the entity referred
122
- * to in SELECT.from, INSERT.into, UPDATE.entity, or DELETE.from,
123
- * or a sub query specified in SELECT.from, INSERT.into,
124
- */
125
- get source() {
126
- const m = this._srv?.model || cds.context?.model || cds.model
127
- return cds.infer (this, m?.definitions, 'get source')
128
- }
129
- set source(t) { this._set('source',t) }
130
-
131
- /**
132
- * Returns the inferred query's target, which is the entity referred
133
- * to in SELECT.from, INSERT.into, UPDATE.entity, or DELETE.from.
134
- * In case of a sub query specified in SELECT.from, INSERT.into,
135
- * returns the target of the sub query, recursively.
136
- */
137
- get target() {
138
- if (this._target instanceof cds.entity) return super.target = this._target
139
- const m = this._srv?.model || cds.context?.model || cds.model
140
- return this.target = cds.infer (this, m?.definitions)
141
- }
142
- set target(t) { this._set('target',t) }
143
-
144
- /** @deprecated use .kind instead */
145
- get cmd() { return this.kind }
146
105
  }
147
106
 
148
107
  const _name = cds.env.sql.names === 'quoted' ? n =>`"${n}"` : n => n.replace(/[.:]/g,'_')
149
-
108
+ const _no_target = ()=>{ throw cds.error `Queries don't have a 'target' property. Use 'req.target' instead.` }
109
+ Object.defineProperty (Query.prototype, 'target', { get:_no_target, set:_no_target })
150
110
  module.exports = Query
@@ -1,127 +1,116 @@
1
1
  const cds = require('../index')
2
+ const infer = exports = module.exports = (..._) => infer.target(..._)
3
+
2
4
 
3
5
  /**
4
6
  * Infers the target entity of a query
7
+ * @param {import('./cds.ql-Query')} q
5
8
  */
6
- function infer (q, defs, _get_source) {
7
- if (q._target instanceof cds.entity) return q._target
8
- let from = q._target_ref
9
- || q.SELECT?.from
10
- || q.INSERT?.into
11
- || q.UPSERT?.into
12
- || q.UPDATE?.entity
13
- || q.DELETE?.from
14
- let source = infer_from (from, defs)
15
- let target = source?.SELECT ? infer(source, defs) : source
16
-
17
- Object.defineProperties (q, {
18
- _target: { value: target, configurable:true, writable:true },
19
- target: { value: target, configurable:true, writable:true },
20
- source: { value: source, configurable:true, writable:true },
21
- })
22
- return _get_source ? source : target
23
-
24
- function infer_from (from, defs={}) {
25
- if (!from) return undefined
26
- if (from.ref) return infer_ref (from.ref, defs) || _unresolved(from.ref[0])
27
- if (from.SELECT) return from
28
- if (from.SET || from.args) return undefined //> UNIONs and JOINs are not supported
29
- return defs[from] || _unresolved(from) //> from is a string in quirks mode
30
- }
9
+ infer.target = function (q, ctx) {
10
+ if (q._target instanceof cds.entity) return q._target //> already inferred
11
+ const subject = _subject4(q)
12
+ const target = (
13
+ subject?.SELECT ? infer.target (subject, ctx ??= _context4(q)) :
14
+ subject?.ref ? infer.ref (subject.ref, ctx ??= _context4(q)) :
15
+ undefined
16
+ )
17
+ Object.defineProperty (q, '_target', { value: target, configurable:true, writable:true })
18
+ return target
19
+ }
31
20
 
32
- function infer_ref (ref, defs) {
33
- let target = {elements:defs}
34
- for (let r of ref) {
35
- const e = target.elements?.[r.id||r]; if (!e) return
36
- target = (
37
- e._target || //> for already linked associations
38
- defs[e.target] || //> for not yet linked associations
39
- e //> for structs
40
- )
41
- }
42
- return target
21
+ infer.ref = function (ref, ctx) {
22
+ const defs = (ctx.model||ctx).definitions
23
+ let name = _name4(ref[0]), d = defs?.[name] || ctx.entities?.[name]
24
+ if (!d) return { name, _unresolved:true, __proto__: cds.entity.prototype }
25
+ else for (let i=1; i < ref.length; ++i) {
26
+ d = d.elements?.[name = _name4(ref[i])] || cds.error `Element ${name} not found in ${d}`
27
+ if (d.target) d = defs[d.target] || cds.error `Target ${d.target} not found in ${defs}`
43
28
  }
29
+ return d
30
+ }
44
31
 
45
- function _unresolved (x) {
46
- return { name: x.id || x, __proto__: cds.entity.prototype, _unresolved:true }
32
+ /** @param {import('./SELECT').class} q */
33
+ infer.elements = function (q) {
34
+
35
+ const subject = _subject4(q); if (!subject) return
36
+ const source = subject.SELECT ? subject : infer.target(q)
37
+
38
+ return _infer_elements4 (q.SELECT.columns, source, q.SELECT.from.as)
39
+ function _infer_elements4 (columns, source, alias) {
40
+
41
+ // SELECT from Books; SELECT * from Books
42
+ if (!columns || columns.length === 1 && columns[0] === '*') return source?.elements
43
+
44
+ const elements = {}; columns.forEach (c => {
45
+
46
+ // 1) SELECT *, ... from Books
47
+ if (c === '*') {
48
+ return Object.assign (elements, source.elements)
49
+ }
50
+
51
+ const ref = c.ref?.map(_name4); if (alias && alias === ref?.[0] && ref.length > 1) ref.shift()
52
+ const as = c.as || ref?.join('_') || c.func || c.val || cds.error `Alias required for column expressions ${c}`
53
+ let d = source, is2many
54
+
55
+ // 2) SELECT ... : String from Books
56
+ if (c.cast) {
57
+ return elements[as] = builtin [c.cast.type]
58
+ }
59
+
60
+ // 3) SELECT title, author.name from Books
61
+ if (c.ref && d?.elements) {
62
+ for (let r of ref) d = (d.SELECT ? d : d._target||d).elements?.[r]
63
+ || cds.error `Couldn't resolve element "${ref.join('/')}" in ${source.kind} ${source.name||''} ${Object.keys(source.elements)}`
64
+ if (d._target) { is2many = d.is2many; c.expand || c.inline ? d = d._target : d }
65
+ // ... d is further processed in steps 5,6,7 below
66
+ }
67
+
68
+ // 4) SELECT 1, 2+3, count(*) from Books; SELECT type, name from sqlite.schema
69
+ else if (!c.expand) {
70
+ return elements[as] = _typeof(c) // { ..._typeof(c), name: as }
71
+ }
72
+
73
+ // 5) SELECT author.books { title } from Books
74
+ if (c.expand) {
75
+ if (d.items) { d = d.items; is2many = true }
76
+ d = new cds.struct ({ elements: _infer_elements4 (c.expand, d) }) //> { a, b, c } as x
77
+ return elements[as] = is2many ? new cds.array ({ items: d }) : d
78
+ }
79
+
80
+ // 6) SELECT author.books.{ title } from Books
81
+ if (c.inline) {
82
+ const nested = _infer_elements4 (c.inline, d)
83
+ for (let n in nested) elements[as+'_'+n] = nested[n]
84
+ }
85
+
86
+ // 7) SELECT title, author.name from Books
87
+ else return elements[as] = d // NOTE: the else is neccessary after step 5 above
88
+ })
89
+ return elements
47
90
  }
48
91
  }
49
92
 
50
-
51
- /**
52
- * Infers the elements according to a query's columns.
53
- * @param {Array} columns - the query's columns, or a nested .expand or .inline columns
54
- * @param {Object} source - the query's source entity or sub select
55
- */
56
- function elements4 (columns, source) {
57
-
58
- // SELECT from Books; SELECT * from Books
59
- if (!columns || columns.length === 1 && columns[0] === '*') return source?.elements
60
-
61
- const elements = {}; columns.forEach (c => {
62
-
63
- // 1) SELECT *, ... from Books
64
- if (c === '*') {
65
- return Object.assign (elements, source.elements)
66
- }
67
-
68
- const ref = c.ref?.map(r => r.id??r)
69
- const as = c.as || ref?.join('_') || c.func || c.val || cds.error `Alias required for column expressions ${c}`
70
- let d = source, is2many
71
-
72
- // 2) SELECT ... : String from Books
73
- if (c.cast) {
74
- return elements[as] = builtin [c.cast.type]
75
- }
76
-
77
- // 3) SELECT title, author.name from Books
78
- if (c.ref && d?.elements) {
79
- for (let r of ref) d = (d.SELECT ? d : d._target||d).elements?.[r]
80
- || cds.error `Couldn't resolve element "${ref.join('/')}" in ${source.kind} ${source.name||''} ${Object.keys(source.elements)}`
81
- if (d._target) { is2many = d.is2many; c.expand || c.inline ? d = d._target : d }
82
- // ... d is further processed in steps 5,6,7 below
83
- }
84
-
85
- // 4) SELECT 1, 2+3, count(*) from Books; SELECT type, name from sqlite.schema
86
- else if (!c.expand) {
87
- return elements[as] = _typeof(c) // { ..._typeof(c), name: as }
88
- }
89
-
90
- // 5) SELECT author.books { title } from Books
91
- if (c.expand) {
92
- if (d.items) { d = d.items; is2many = true }
93
- d = new cds.struct ({ elements: elements4 (c.expand, d) }) //> { a, b, c } as x
94
- return elements[as] = is2many ? new cds.array ({ items: d }) : d
95
- }
96
-
97
- // 6) SELECT author.books.{ title } from Books
98
- if (c.inline) {
99
- const nested = elements4 (c.inline, d)
100
- for (let n in nested) elements[as+'_'+n] = nested[n]
101
- }
102
-
103
- // 7) SELECT title, author.name from Books
104
- else return elements[as] = d // NOTE: the else is neccessary after step 5 above
105
- })
106
- return elements
107
-
108
- function _typeof (c) {
109
- if (c.val !== undefined) return builtin [typeof c.val] || builtin [ Number.isInteger(c.val) ? 'Integer' : 'Decimal' ]
110
- if (c.func === 'count') return builtin.Integer
111
- if (c.xpr?.length === 1) return _typeof(c.xpr[0])
112
- return unknown
113
- }
93
+ const _context4 = q => q._srv ?? cds.context?.model ?? cds.model ?? {}
94
+ const _subject4 = (q) => q._subject
95
+ || q.SELECT?.from
96
+ || q.INSERT?.into
97
+ || q.UPSERT?.into
98
+ || q.UPDATE?.entity
99
+ || q.DELETE?.from
100
+
101
+ const _name4 = r => r.id || r
102
+ const _typeof = c => {
103
+ if (c.val !== undefined) return builtin [typeof c.val] || builtin [ Number.isInteger(c.val) ? 'Integer' : 'Decimal' ]
104
+ if (c.func === 'count') return builtin.Integer
105
+ if (c.xpr?.length === 1) return _typeof(c.xpr[0])
106
+ return unknown
114
107
  }
115
108
 
116
- const unknown = Object.freeze (new cds.type ({ _unresolved:true }))
117
- const builtin = function _init (){
109
+ const unknown = exports.unknown = Object.freeze (new cds.type ({ _unresolved:true }))
110
+ const builtin = function() {
118
111
  const bi={}, bt = cds.builtin.types
119
112
  for (let t of Object.keys(bt)) bi[t] = bi[t.slice(4)] = { type:t, __proto__: bt[t] }
120
113
  bi.boolean = bi['cds.Boolean']
121
114
  bi.string = bi['cds.String']
122
115
  return bi
123
116
  }()
124
-
125
- module.exports = exports = Object.assign (infer, {
126
- elements4, unknown
127
- })
package/lib/ql/resolve.js CHANGED
@@ -32,11 +32,9 @@ resolve.table = target => {
32
32
 
33
33
  // REVISIT: Remove argument `skipForbiddenViewCheck` once we get rid of composition tree
34
34
  resolve.transitions = (query, tx, abortCondition, skipForbiddenViewCheck) => {
35
- const target = query?.target || query?._target
36
-
35
+ const target = query && typeof query === 'object' ? cds.infer.target(query) || query?._target : undefined
37
36
  const abort = abortCondition ?? (typeof tx === 'function' ? tx : undefined)
38
37
  const _tx = typeof tx === 'function' ? cds.context?.tx : tx
39
-
40
38
  return getTransition(target, _tx, skipForbiddenViewCheck, undefined, {
41
39
  abort: abort ?? (tx.isDatabaseService ? _abortDB : _defaultAbort(tx))
42
40
  })
@@ -1,6 +1,6 @@
1
1
  const cds = require ('../index'), { uuid } = cds.utils
2
2
  const async_events = { succeeded:1, failed:1, done:1, commit:1 }
3
- const req_locale = require('./locale')
3
+ const locale = require('./../i18n/locale')
4
4
  const { EventEmitter } = require('events')
5
5
 
6
6
  /**
@@ -31,6 +31,7 @@ class EventContext {
31
31
  Object.assign (this, _)
32
32
  }
33
33
 
34
+ /** @type <T>( property: string, value: T ) => T */
34
35
  _set (property, value) {
35
36
  Object.defineProperty (this, property, { value, writable:true })
36
37
  return value
@@ -99,10 +100,10 @@ class EventContext {
99
100
  if (l) super.locale = super._locale = l
100
101
  }
101
102
  get locale() {
102
- return super.locale = this._propagated.locale || req_locale.from(this._.req)
103
+ return super.locale = this._propagated.locale || locale.from(this._.req) //||this.http?.req)
103
104
  }
104
105
  get _locale() {
105
- return super._locale = this._propagated._locale || req_locale.raw(this._.req)
106
+ return super._locale = this._propagated._locale || locale.header(this._.req) //||this.http?.req)
106
107
  || this.hasOwnProperty('locale') && this.locale // eslint-disable-line no-prototype-builtins
107
108
  }
108
109
 
@@ -117,7 +118,7 @@ class EventContext {
117
118
  }
118
119
 
119
120
  get model() {
120
- const m = this._propagated.model || this.http?.req.__model // IMPORTANT: Never use that anywhere else
121
+ const m = this._propagated.model
121
122
  return this._set('model',m)
122
123
  }
123
124
  set model(m) {