@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
@@ -1,494 +0,0 @@
1
- const cds = require('../../cds')
2
-
3
- const BaseBuilder = require('./BaseBuilder')
4
- const SelectBuilder = require('./SelectBuilder')
5
- const getAnnotatedColumns = require('./annotations')
6
- const dollar = require('./dollar')
7
- const { stringifyIfArrayedElement, isArrayedElement } = require('./arrayed')
8
-
9
- /**
10
- * InsertBuilder is used to take a CQN object as an input and to build an object representing an insert operation
11
- * with SQL string and values to be inserted with the prepared statement.
12
- * The SQL object can only be built if one of the properties 'entries', 'values' or 'rows' is available.
13
- *
14
- * @example <caption>Example of CQN </caption>
15
- * {
16
- * INSERT = {INSERT:{
17
- * into: entity | string,
18
- * columns: [ ...string ],
19
- * values: [ ...any ],
20
- * rows: [ ...[ ...any ] ],
21
- * entries: [ ...{ ...column:any } ]
22
- * }}
23
- * }
24
- */
25
- class InsertBuilder extends BaseBuilder {
26
- /**
27
- * Base constructor with additionally provided csn
28
- *
29
- * @param {object} obj
30
- * @param {object} options
31
- * @param {object} csn
32
- */
33
- constructor(obj, options, csn) {
34
- super(obj, options)
35
- this._options.typeConversion = this._options.typeConversion || new Map()
36
- this._csn = csn
37
- }
38
-
39
- annotatedColumns(entityName, csn) {
40
- return getAnnotatedColumns(entityName, csn)
41
- }
42
-
43
- /**
44
- * Builds an Object based on the properties of the CQN object.
45
- *
46
- * @example <caption>Example output</caption>
47
- * {
48
- * sql: 'INSERT INTO "T" ("a", "b", "c") VALUES (?, ?, ?)',
49
- * values: [1, 2, '\'asd\'']
50
- * }
51
- *
52
- * @returns {{sql: string, values: Array}} Object with two properties.
53
- * SQL string for prepared statement and array of values to replace the placeholders.
54
- * Property values can be an Array of Arrays for Batch insert of multiple rows.
55
- */
56
- build() {
57
- this._outputObj = {
58
- sql: ['INSERT', 'INTO'],
59
- values: []
60
- }
61
-
62
- // replace $ values
63
- // REVISIT: better
64
- if (this._obj.INSERT.entries) {
65
- dollar.entries(
66
- this._obj.INSERT.entries,
67
- this._options.user,
68
- this._options.now,
69
- this._csn?.definitions?.[this._obj.INSERT.into.ref?.[0] || this._obj.INSERT.into]?.elements
70
- )
71
- } else if (this._obj.INSERT.values) {
72
- dollar.values(this._obj.INSERT.values, this._options.user, this._options.now)
73
- } else if (this._obj.INSERT.rows) {
74
- dollar.rows(this._obj.INSERT.rows, this._options.user, this._options.now)
75
- }
76
-
77
- const entityName = this._into()
78
-
79
- // table alias as string
80
- if (this._obj.INSERT.into.as) {
81
- this._outputObj.sql.push('AS')
82
- this._outputObj.sql.push(this._obj.INSERT.into.as)
83
- }
84
-
85
- // side effect: sets this.uuidKeys if found any
86
- this._findUuidKeys(entityName)
87
-
88
- this._columnIndexesToDelete = []
89
- const annotatedColumns = this.annotatedColumns(entityName, this._csn)
90
-
91
- if (this._obj.INSERT.columns) {
92
- this._removeAlreadyExistingInsertAnnotatedColumnsFromMap(annotatedColumns)
93
- this._columns(annotatedColumns)
94
- }
95
-
96
- if (this._obj.INSERT.values || this._obj.INSERT.rows) {
97
- if (annotatedColumns && !this._obj.INSERT.columns) {
98
- // if columns not provided get indexes from csn
99
- this._getAnnotatedColumnIndexes(annotatedColumns)
100
- }
101
-
102
- this._values(annotatedColumns)
103
- } else if (this._obj.INSERT.entries && this._obj.INSERT.entries.length !== 0) {
104
- this._entries(annotatedColumns)
105
- }
106
-
107
- // INSERT INTO ... WITH ... AS SELECT FROM ...
108
- if (this._obj.INSERT.as) {
109
- this._as(this._obj.INSERT.as)
110
- }
111
-
112
- this._outputObj.sql = /** @type {string} */ this._outputObj.sql.join(' ')
113
- return this._outputObj
114
- }
115
-
116
- _removeAlreadyExistingInsertAnnotatedColumnsFromMap(annotatedColumns) {
117
- if (!annotatedColumns) {
118
- return
119
- }
120
-
121
- for (const columnName of annotatedColumns.insertAnnotatedColumns.keys()) {
122
- if (this._obj.INSERT.columns && this._obj.INSERT.columns.includes(columnName)) {
123
- annotatedColumns.insertAnnotatedColumns.delete(columnName)
124
- }
125
- }
126
- }
127
-
128
- _into() {
129
- if (typeof this._obj.INSERT.into === 'string') {
130
- const dbName = this._getDatabaseName(this._obj.INSERT.into)
131
- this._outputObj.sql.push(this._quoteElement(dbName))
132
- return this._obj.INSERT.into
133
- }
134
-
135
- if (this._obj.INSERT.into.ref) {
136
- const dbName = this._getDatabaseName(this._obj.INSERT.into.ref[0])
137
- this._outputObj.sql.push(this._quoteElement(dbName))
138
- return this._obj.INSERT.into.ref[0]
139
- }
140
-
141
- const dbName = this._getDatabaseName(this._obj.INSERT.into.name)
142
- this._outputObj.sql.push(this._quoteElement(dbName))
143
- return this._obj.INSERT.into.name
144
- }
145
-
146
- _as(element) {
147
- const { sql, values } = new SelectBuilder(element, this._options, this._csn).build()
148
- this._outputObj.sql.push(sql)
149
- this._outputObj.values.push(...values)
150
- }
151
-
152
- _columnAnnotatedAdded(annotatedColumns) {
153
- const annotatedInsertColumnNames = this._getAnnotatedInsertColumnNames(annotatedColumns)
154
-
155
- if (annotatedInsertColumnNames && annotatedInsertColumnNames.length !== 0) {
156
- this._outputObj.sql.push(',', annotatedInsertColumnNames.map(col => this._quoteElement(col)).join(', '))
157
- }
158
- }
159
-
160
- _findUuidKeys(entityName) {
161
- const uuidKeys = []
162
- if (this._csn && this._csn.definitions[entityName] && this._csn.definitions[entityName].keys) {
163
- for (const key of Object.values(this._csn.definitions[entityName].keys)) {
164
- if (key.isUUID && !key._foreignKey4) {
165
- uuidKeys.push(key.name)
166
- }
167
- }
168
- }
169
-
170
- if (uuidKeys.length > 0) {
171
- this.uuidKeys = uuidKeys
172
- }
173
- }
174
-
175
- _columns(annotatedColumns) {
176
- this._outputObj.sql.push('(')
177
-
178
- const insertColumns = [...this._obj.INSERT.columns.map(col => this._quoteElement(col))]
179
-
180
- if (this.uuidKeys) {
181
- for (const key of this.uuidKeys) {
182
- if (!this._obj.INSERT.columns.includes(key)) {
183
- insertColumns.unshift(this._quoteElement(key))
184
- }
185
- }
186
- }
187
-
188
- this._outputObj.sql.push(insertColumns.join(', '))
189
-
190
- if (annotatedColumns) {
191
- // add insert annotated columns
192
- this._columnAnnotatedAdded(annotatedColumns)
193
- }
194
-
195
- this._outputObj.sql.push(')')
196
- }
197
-
198
- _valuesAnnotatedValues(annotatedInsertColumnValues, values) {
199
- this._spliceArray(values) // remove all annotated
200
-
201
- if (annotatedInsertColumnValues.values && annotatedInsertColumnValues.values.length !== 0) {
202
- values.push(...annotatedInsertColumnValues.values) // add insert annotated
203
- }
204
- }
205
-
206
- _values(annotatedColumns) {
207
- let placeholderNum = 0
208
- const annotatedInsertColumnValues = annotatedColumns ? this._getAnnotatedInsertColumnValues(annotatedColumns) : []
209
-
210
- if (this._obj.INSERT.values) {
211
- this._outputObj.values = this._obj.INSERT.values.map(stringifyIfArrayedElement)
212
-
213
- placeholderNum = this._outputObj.values.length
214
-
215
- this._valuesAnnotatedValues(annotatedInsertColumnValues, this._outputObj.values)
216
- } else {
217
- this._outputObj.values = this._obj.INSERT.rows.map(r => r.map(stringifyIfArrayedElement))
218
-
219
- placeholderNum = this._outputObj.values[0].length
220
-
221
- this._outputObj.values.forEach(values => {
222
- this._valuesAnnotatedValues(annotatedInsertColumnValues, values)
223
- })
224
- }
225
-
226
- if (this.uuidKeys && this._obj.INSERT.columns) {
227
- for (const key of this.uuidKeys) {
228
- if (!this._obj.INSERT.columns.includes(key)) {
229
- placeholderNum += 1
230
- this._obj.INSERT.values
231
- ? this._outputObj.values.unshift(cds.utils.uuid())
232
- : this._outputObj.values.forEach(arr => arr.unshift(cds.utils.uuid()))
233
- }
234
- }
235
- }
236
-
237
- this._outputObj.sql.push(
238
- ...this._createPlaceholderString(placeholderNum, annotatedInsertColumnValues.valuesAndSQLs)
239
- )
240
- }
241
-
242
- _addUuidToColumns(columns, flattenColumnMap) {
243
- if (this.uuidKeys) {
244
- for (const key of this.uuidKeys) {
245
- if (!flattenColumnMap.get(key)) {
246
- columns.push(this._quoteElement(key))
247
- }
248
- }
249
- }
250
- }
251
-
252
- _getSubstituteForUndefined(column, insertAnnotatedColumns) {
253
- const annotatedColumn = insertAnnotatedColumns.get(column)
254
- const symbol = annotatedColumn && annotatedColumn.symbol
255
- const option = symbol && this._options[symbol]
256
- return typeof option === 'string' ? option : null
257
- }
258
-
259
- _traverseValue(key, val) {
260
- // preserve val[key] === undefined for managed data
261
- return val == null ? null : val[key]
262
- }
263
-
264
- _getValue(column, { entry, flattenColumn, insertAnnotatedColumns }) {
265
- let val = entry
266
- if (!flattenColumn && this.uuidKeys.includes(column)) {
267
- if (this._UPSERT) return undefined
268
- val = cds.utils.uuid()
269
- } else {
270
- for (const key of flattenColumn) {
271
- val = this._traverseValue(key, val)
272
- }
273
- }
274
- return val === undefined ? this._getSubstituteForUndefined(column, insertAnnotatedColumns) : val
275
- }
276
-
277
- _addEntries(valuesArray, { columns, flattenColumnMap, purelyManagedColumnValues, insertAnnotatedColumns }) {
278
- const checkerForInconsistentColumns = this._checkerForInconsistentColumns(insertAnnotatedColumns)
279
- for (const entry of this._obj.INSERT.entries) {
280
- const values = []
281
-
282
- const flattenEntryColumns = this._getFlattenEntryColumns(entry)
283
- checkerForInconsistentColumns(flattenEntryColumns)
284
-
285
- for (const column of columns) {
286
- const flattenColumn = flattenColumnMap.get(column)
287
- const val = this._getValue(column, { entry, flattenColumn, insertAnnotatedColumns })
288
- values.push(isArrayedElement(val) ? JSON.stringify(val) : val)
289
- }
290
-
291
- // insert values for insert annotated columns
292
- values.push(...purelyManagedColumnValues.values)
293
-
294
- valuesArray.push(values)
295
- }
296
- }
297
-
298
- /**
299
- * This method creates insert statement in case of multiple entries.
300
- *
301
- * @param annotatedColumns
302
- * @example:
303
- * [{a: {b: 1, c: 2}}, {a: {b: 2, c: 3}}, {a: {b: 3, c: 4}}]
304
- *
305
- * @private
306
- */
307
- _entries(annotatedColumns) {
308
- const columns = []
309
- const valuesArray = []
310
- const insertAnnotatedColumns = (annotatedColumns && annotatedColumns.insertAnnotatedColumns) || new Map()
311
- const flattenColumnMap = this._getFlattenColumnMap(this._obj.INSERT.entries, { annotatedColumns })
312
- const purelyManagedColumns = this._getAnnotatedInsertColumnNames(annotatedColumns).filter(
313
- colName => !flattenColumnMap.has(colName)
314
- )
315
-
316
- const purelyManagedColumnValues = this._getAnnotatedInsertColumnValues(annotatedColumns, purelyManagedColumns)
317
-
318
- this._addUuidToColumns(columns, flattenColumnMap)
319
- columns.push(...Array.from(flattenColumnMap.keys()).filter(k => !columns.includes(k)))
320
-
321
- this._addEntries(valuesArray, { columns, flattenColumnMap, purelyManagedColumnValues, insertAnnotatedColumns })
322
-
323
- // add insert annotated columns
324
- const placeholderNum = columns.length
325
- columns.push(...purelyManagedColumns)
326
-
327
- this._outputObj.sql.push(
328
- ...this._entriesSqlString(columns, placeholderNum, purelyManagedColumnValues.valuesAndSQLs)
329
- )
330
- this._outputObj.values = valuesArray
331
- }
332
-
333
- _isAnnotatedColumnsWithSQLFunction(annotatedColumnValue) {
334
- const symbol = annotatedColumnValue.symbol
335
- const option = symbol && this._options[symbol]
336
- return option && option.sql
337
- }
338
-
339
- _getAnnotatedColumnsWithSQLFunction(insertAnnotatedColumns) {
340
- const res = []
341
- for (const [insertAnnotatedColumnKey, insertAnnotatedColumnValue] of insertAnnotatedColumns) {
342
- if (this._isAnnotatedColumnsWithSQLFunction(insertAnnotatedColumnValue)) {
343
- res.push(insertAnnotatedColumnKey)
344
- }
345
- }
346
- return res
347
- }
348
-
349
- _checkerForInconsistentColumns(insertAnnotatedColumns) {
350
- const annotatedValuesWithSqlFunctions =
351
- (insertAnnotatedColumns && this._getAnnotatedColumnsWithSQLFunction(insertAnnotatedColumns)) || []
352
-
353
- let usedAnnotatedValuesWithSqlFunctions
354
-
355
- return columns => {
356
- if (!annotatedValuesWithSqlFunctions) return
357
- const ownAnnotatedValuesWithSqlFunctions = columns.filter(key => annotatedValuesWithSqlFunctions.includes(key))
358
- if (!usedAnnotatedValuesWithSqlFunctions) {
359
- usedAnnotatedValuesWithSqlFunctions = ownAnnotatedValuesWithSqlFunctions
360
- } else {
361
- const ownInconsistentColumns = ownAnnotatedValuesWithSqlFunctions.filter(
362
- key => !usedAnnotatedValuesWithSqlFunctions.includes(key)
363
- )
364
- const otherInconsistentColumns = usedAnnotatedValuesWithSqlFunctions.filter(
365
- key => !ownAnnotatedValuesWithSqlFunctions.includes(key)
366
- )
367
- const inconsistentColumns = ownInconsistentColumns.concat(otherInconsistentColumns)
368
- if (inconsistentColumns.length) {
369
- throw new Error(
370
- `NOT SUPPORTED: Entries of INSERT have columns with both values and SQL function delegations (${inconsistentColumns.join(
371
- ' '
372
- )})`
373
- )
374
- }
375
- }
376
- }
377
- }
378
-
379
- _getFlattenEntryColumns(entry, prefix) {
380
- const res = []
381
- this._getFlattenEntryColumnsRecursion(res, entry, prefix)
382
- return res
383
- }
384
-
385
- _isSubObject(key, entry) {
386
- return (
387
- typeof entry[key] === 'object' &&
388
- entry[key] !== null &&
389
- !Buffer.isBuffer(entry[key]) &&
390
- typeof entry[key].pipe !== 'function'
391
- )
392
- }
393
-
394
- _getFlattenEntryColumnsRecursion(res, entry, prefix) {
395
- Object.keys(entry).forEach(key => {
396
- const prefixKey = prefix ? `${prefix}_${key}` : key
397
- if (this._isSubObject(key, entry) && !isArrayedElement(entry[key])) {
398
- this._getFlattenEntryColumnsRecursion(res, entry[key], prefixKey)
399
- } else {
400
- res.push(prefixKey)
401
- }
402
- })
403
- }
404
-
405
- _getFlattenColumnMap(entries, { prefix, annotatedColumns } = {}) {
406
- const res = new Map()
407
-
408
- entries.forEach(entry => {
409
- Object.keys(entry).forEach(key => {
410
- const prefixKey = prefix ? `${prefix}_${key}` : key
411
- if (this._isSubObject(key, entry) && !isArrayedElement(entry[key])) {
412
- const resInternal = this._getFlattenColumnMap([entry[key]], { prefix: prefixKey, annotatedColumns })
413
-
414
- Array.from(resInternal.keys()).forEach(keyInternal => {
415
- const arrInternal = resInternal.get(keyInternal)
416
- arrInternal.unshift(key)
417
- res.set(`${key}_${keyInternal}`, arrInternal)
418
- })
419
- } else {
420
- res.set(key, [key])
421
- }
422
- })
423
- })
424
-
425
- return res
426
- }
427
-
428
- _entriesSqlString(columns, placeholderNum, valuesAndSQLs) {
429
- return [
430
- '(',
431
- columns.map(column => this._quoteElement(column)).join(', '),
432
- ')',
433
- ...this._createPlaceholderString(placeholderNum, valuesAndSQLs)
434
- ]
435
- }
436
-
437
- _createPlaceholderString(placeholderNum, valuesAndSQLs = []) {
438
- const placeholders = []
439
-
440
- for (let i = 0, length = placeholderNum - this._columnIndexesToDelete.length; i < length; i++) {
441
- placeholders.push(this._options.placeholder)
442
- }
443
-
444
- for (const val of valuesAndSQLs) {
445
- placeholders.push(val && val.sql ? val.sql : this._options.placeholder)
446
- }
447
-
448
- return ['VALUES', '(', placeholders.join(', '), ')']
449
- }
450
-
451
- _getAnnotatedColumnIndexes(annotatedColumns) {
452
- annotatedColumns.insertAnnotatedColumns.forEach(col => {
453
- if (col.indexNo) {
454
- this._columnIndexesToDelete.push(col.indexNo)
455
- }
456
- })
457
- annotatedColumns.updateAnnotatedColumns.forEach(col => {
458
- if (col.indexNo) {
459
- this._columnIndexesToDelete.push(col.indexNo)
460
- }
461
- })
462
- }
463
-
464
- _getAnnotatedInsertColumnNames(annotatedColumns) {
465
- return annotatedColumns ? [...annotatedColumns.insertAnnotatedColumns.keys()] : []
466
- }
467
-
468
- _getAnnotatedInsertColumnValues(annotatedColumns, annotatedInsertColumnNames) {
469
- const res = {}
470
- res.values = []
471
- res.valuesAndSQLs = []
472
-
473
- if (!annotatedColumns) return res
474
-
475
- const columnsToBeChecked = annotatedInsertColumnNames || annotatedColumns.insertAnnotatedColumns.keys()
476
-
477
- for (const col of columnsToBeChecked) {
478
- const symbol = annotatedColumns.insertAnnotatedColumns.get(col).symbol
479
- const annotatedValue = this._options[symbol]
480
- if (!annotatedValue || !annotatedValue.sql) res.values.push(annotatedValue)
481
- res.valuesAndSQLs.push(annotatedValue)
482
- }
483
-
484
- return res
485
- }
486
-
487
- _spliceArray(values) {
488
- for (let i = this._columnIndexesToDelete.length - 1; i >= 0; i--) {
489
- values.splice(this._columnIndexesToDelete[i], 1)
490
- }
491
- }
492
- }
493
-
494
- module.exports = InsertBuilder
@@ -1,135 +0,0 @@
1
- const { typeConversionMap } = require('./dataTypes')
2
- const BaseBuilder = require('./BaseBuilder')
3
-
4
- /**
5
- * ReferenceBuilder is used to take a part of a CQN object as an input and to build an object representing a reference
6
- * with SQL string and values.
7
- *
8
- * Currently it supports the references like below:
9
- *
10
- * @example <caption>Simple ref part of CQN </caption>
11
- * {ref: ['x']}
12
- * {ref: ['func_name', { args: [func_args] }]}
13
- */
14
- class ReferenceBuilder extends BaseBuilder {
15
- get FunctionBuilder() {
16
- const FunctionBuilder = require('./FunctionBuilder')
17
- Object.defineProperty(this, 'FunctionBuilder', { value: FunctionBuilder })
18
- return FunctionBuilder
19
- }
20
-
21
- /**
22
- * Builds an Object based on the properties of the input object in the constructor.
23
- *
24
- * @example <caption>Example output</caption>
25
- * {
26
- * sql: '"X"',
27
- * values: []
28
- * }
29
- * {
30
- * sql: '"func_name(?,?)"',
31
- * values: [1, 'a']
32
- * }
33
- *
34
- * @returns {{sql: string, values: Array}} Object with two properties.
35
- * SQL string for prepared statement and an empty array of values.
36
- */
37
- build() {
38
- this._outputObj = {
39
- sql: [],
40
- values: []
41
- }
42
-
43
- if (this._isFunction()) {
44
- const { sql, values } = new this.FunctionBuilder(this._obj, this._options, this._csn).build()
45
- this._outputObj.sql.push(sql)
46
- this._outputObj.values.push(...values)
47
- } else if (this._obj.ref) {
48
- // reference
49
-
50
- if (this._obj._cast4func) {
51
- this._outputObj.sql.push('CAST', '(')
52
- }
53
-
54
- if (this._obj.param) {
55
- this._parseParamReference(this._obj.ref)
56
- } else {
57
- this._parseReference(this._obj.ref)
58
- }
59
-
60
- if (this._obj._cast4func) {
61
- this._outputObj.sql.push('AS', typeConversionMap.get(this._obj._cast4func.type), ')')
62
- }
63
- } else {
64
- this._outputObj.sql.push(this._obj)
65
- }
66
-
67
- this._sortOrder()
68
- this._outputObj.sql = this._outputObj.sql.join(' ')
69
- return this._outputObj
70
- }
71
-
72
- _sortOrder() {
73
- if (!Object.prototype.hasOwnProperty.call(this._obj, 'sort')) {
74
- return
75
- }
76
-
77
- if (this._options.collate) {
78
- this._outputObj.sql.push(this._options.collate)
79
- }
80
-
81
- this._outputObj.sql.push(this._obj.sort === 'desc' ? 'DESC' : 'ASC')
82
- }
83
-
84
- _isFunction() {
85
- return (this._obj.ref && this._obj.ref.length > 1 && this._obj.ref[1].args) || (this._obj.func && this._obj.args)
86
- }
87
-
88
- _parseReference(ref) {
89
- if (ref[0].id) {
90
- throw new Error(`${ref[0].id}: Views with parameters supported only on HANA`)
91
- }
92
-
93
- if (this._handleStructuredIfExists(ref)) {
94
- return
95
- }
96
-
97
- this._outputObj.sql.push(ref.map(el => this._quoteElement(el)).join('.'))
98
- }
99
-
100
- _handleStructured(ref, element) {
101
- // REVISIT we assume that structured elements are already unfolded here
102
- if (ref[0] === element.name) {
103
- this._outputObj.sql.push(ref.join('_'))
104
- return
105
- }
106
- // we have an alias before
107
- this._outputObj.sql.push(this._quoteElement(ref[0]) + '.' + ref.slice(1, ref.length).join('_'))
108
- }
109
-
110
- _isToOneManaged(element) {
111
- return element.is2one && !element.on
112
- }
113
-
114
- _handleStructuredIfExists(ref) {
115
- const entity = this._csn && this._csn.definitions[this._options.entityName]
116
- const element = entity && (entity.elements[ref[0]] || entity.elements[ref[1]])
117
- if (element) {
118
- if (element._isStructured || this._isToOneManaged(element)) {
119
- this._handleStructured(ref, element)
120
- return true
121
- }
122
- }
123
- }
124
-
125
- _parseParamReference(refArray) {
126
- if (refArray[0] === '?') {
127
- this._outputObj.sql.push(this._options.placeholder)
128
- } else {
129
- this._outputObj.sql.push(this._options.placeholder)
130
- this._outputObj.values.push(refArray[0])
131
- }
132
- }
133
- }
134
-
135
- module.exports = ReferenceBuilder