@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,673 +0,0 @@
1
- 'use strict'
2
-
3
- const cds = require('../../../../../../cds')
4
-
5
- const commons = require('../../odata-commons')
6
- const PrimitiveValueDecoder = commons.utils.PrimitiveValueDecoder
7
- const JsonContentTypeInfo = commons.format.JsonContentTypeInfo
8
- const JsonAnnotations = commons.format.JsonFormat.Annotations
9
- const EdmTypeKind = commons.edm.EdmType.TypeKind
10
- const EdmPrimitiveTypeKind = commons.edm.EdmPrimitiveTypeKind
11
- const UriResource = commons.uri.UriResource
12
- const ExpandItem = commons.uri.ExpandItem
13
- const UriParser = commons.uri.UriParser
14
- const UriInfo = commons.uri.UriInfo
15
- const FullQualifiedName = commons.FullQualifiedName
16
- const DeserializationError = require('../errors/DeserializationError')
17
-
18
- const odataAnnotations = new Map().set(JsonAnnotations.CONTEXT)
19
-
20
- /**
21
- * This class deserializes and converts a provided payload into an OData object payload.
22
- * All primitive values are converted into the corresponding OData values; e.g.,
23
- * a binary property will be converted into a Buffer instance.
24
- */
25
- class ResourceJsonDeserializer {
26
- /**
27
- * Creates an instance of ResourceJsonDeserializer.
28
- * @param {Edm} edm the current EDM instance
29
- * @param {JsonContentTypeInfo} [formatParams] JSON format parameters
30
- */
31
- constructor (edm, formatParams = new JsonContentTypeInfo()) {
32
- this._edm = edm
33
- this._decoder = new PrimitiveValueDecoder().setJsonFormatParameters(formatParams)
34
- }
35
-
36
- /**
37
- * Deserializes a provided JSON payload string of an entity.
38
- * @param {EdmType} edmType the EDM type of the entity
39
- * @param {string} value the JSON data string to deserialize
40
- * @param {ExpandItem[]} expand the current expand items
41
- * @param {Object} additionalInformation additional information to be set in the deserializer
42
- * @returns {Object} the deserialized result
43
- * @throws {DeserializationError} if provided data can not be deserialized
44
- */
45
- deserializeEntity (edmType, value, expand, additionalInformation) {
46
- let data
47
- try {
48
- data = JSON.parse(value)
49
- this._deserializeStructuralType(edmType, data, null, false, expand, additionalInformation)
50
- return data
51
- } catch (e) {
52
- e._data = data
53
- if (e instanceof DeserializationError) throw e
54
- throw new DeserializationError('An error occurred during deserialization of the entity.', e)
55
- }
56
- }
57
-
58
- /**
59
- * Deserializes a provided JSON payload string of an entity collection.
60
- * @param {EdmType} edmType the EDM type of the entity collection
61
- * @param {string|Object[]} value the JSON data string to deserialize
62
- * @param {ExpandItem[]} expand the array expand items will be created in
63
- * @param {Object} additionalInformation additional information to be set in the deserializer
64
- * @returns {Object[]} the deserialized result
65
- * @throws {DeserializationError} if provided data can not be deserialized
66
- */
67
- deserializeEntityCollection (edmType, value, expand, additionalInformation) {
68
- let tempData = JSON.parse(value)
69
- if (typeof tempData !== 'object') {
70
- throw new DeserializationError('Value for the collection must be an object.')
71
- }
72
-
73
- const wrongName = Object.keys(tempData).find(name => !odataAnnotations.has(name) && name !== 'value')
74
- if (wrongName) throw new DeserializationError("'" + wrongName + "' is not allowed in a collection value.")
75
-
76
- tempData = tempData.value
77
- if (!Array.isArray(tempData)) {
78
- throw new DeserializationError("Input must be a collection of type '" + edmType.getFullQualifiedName() + "'.")
79
- }
80
-
81
- try {
82
- for (let entityValue of tempData) {
83
- this._deserializeStructuralType(edmType, entityValue, [], false, expand, additionalInformation)
84
- }
85
- return tempData
86
- } catch (e) {
87
- e._data = tempData
88
- if (e instanceof DeserializationError) throw e
89
- throw new DeserializationError('An error occurred during deserialization of the collection.', e)
90
- }
91
- }
92
-
93
- /**
94
- * Deserializes a provided JSON payload string of a complex property.
95
- * @param {EdmProperty} edmProperty the EDM property of this complex property
96
- * @param {string} propertyValue the JSON data string to deserialize
97
- * @returns {Object} the deserialized result
98
- * @throws {DeserializationError} if provided data can not be deserialized
99
- */
100
- deserializeComplexProperty (edmProperty, propertyValue) {
101
- return this.deserializeEntity(edmProperty.getType(), propertyValue)
102
- }
103
-
104
- /**
105
- * Deserializes a provided JSON payload string of a complex property collection.
106
- * @param {EdmProperty} edmProperty the EDM property of this complex property collection
107
- * @param {string} propertyValue the JSON data string
108
- * @returns {Object[]} The deserialized result
109
- * @throws {DeserializationError} if provided data can not be deserialized
110
- */
111
- deserializeComplexPropertyCollection (edmProperty, propertyValue) {
112
- return this.deserializeEntityCollection(edmProperty.getType(), propertyValue)
113
- }
114
-
115
- /**
116
- * Deserializes a provided JSON payload string of a primitive property.
117
- * @param {EdmProperty} edmProperty the EDM property of this primitive property
118
- * @param {string} propertyValue the JSON data string to deserialize
119
- * @returns {?(number|string|boolean|Buffer|Object)} the deserialized result
120
- * @throws {DeserializationError} if provided data can not be deserialized
121
- */
122
- deserializePrimitiveProperty (edmProperty, propertyValue) {
123
- let tempData = JSON.parse(propertyValue)
124
- if (typeof tempData !== 'object') {
125
- throw new DeserializationError('Value for primitive property must be an object.')
126
- }
127
- const wrongName = Object.keys(tempData).find(name => !odataAnnotations.has(name) && name !== 'value')
128
- if (wrongName) throw new DeserializationError(`'${wrongName}' is not allowed in a primitive value.`)
129
-
130
- tempData = tempData.value
131
- if (tempData === undefined) throw new DeserializationError('Value can not be omitted.')
132
- try {
133
- return this._deserializePrimitive(edmProperty, tempData)
134
- } catch (e) {
135
- e._data = tempData
136
- if (e instanceof DeserializationError) throw e
137
- throw new DeserializationError('An error occurred during deserialization of the property.', e)
138
- }
139
- }
140
-
141
- /**
142
- * Deserializes a provided JSON payload string of a primitive property collection.
143
- * @param {EdmProperty} edmProperty the EDM property of this primitive property collection
144
- * @param {string} value the JSON data string to deserialize
145
- * @returns {number[]|string[]|boolean[]|Buffer[]|Object[]} the deserialized result
146
- * @throws {DeserializationError} if provided data can not be deserialized
147
- */
148
- deserializePrimitivePropertyCollection (edmProperty, value) {
149
- let tempData = JSON.parse(value)
150
- if (typeof tempData !== 'object') {
151
- throw new DeserializationError('Value for primitive collection property must be an object.')
152
- }
153
- const wrongName = Object.keys(tempData).find(name => !odataAnnotations.has(name) && name !== 'value')
154
- if (wrongName) throw new DeserializationError(`'${wrongName}' is not allowed in a primitive-collection value.`)
155
-
156
- tempData = tempData.value
157
- this._assertPropertyIsCollection(edmProperty, tempData)
158
-
159
- try {
160
- return this._deserializePrimitive(edmProperty, tempData)
161
- } catch (e) {
162
- e._data = tempData
163
- if (e instanceof DeserializationError) throw e
164
- throw new DeserializationError('An error occurred during deserialization of the property.', e)
165
- }
166
- }
167
-
168
- /**
169
- * Deserializes a provided JSON payload string of an entity reference.
170
- * @param {EdmType} edmType the EDM type of the entity
171
- * @param {string} value the JSON data string to deserialize
172
- * @returns {UriInfo} the deserialized result
173
- * @throws {DeserializationError} if provided data can not be deserialized
174
- */
175
- deserializeReference (edmType, value) {
176
- const tempData = JSON.parse(value)
177
- if (typeof tempData !== 'object') throw new DeserializationError('Value for reference must be an object.')
178
-
179
- try {
180
- return this._deserializeReference(edmType, tempData)
181
- } catch (e) {
182
- e._data = tempData
183
- if (e instanceof DeserializationError) throw e
184
- throw new DeserializationError('An error occurred during deserialization of the reference.', e)
185
- }
186
- }
187
-
188
- /**
189
- * Deserializes a provided JSON payload string of action parameters.
190
- * @param {EdmAction} edmAction the action to deserialize the payload for
191
- * @param {string} value the JSON data string to deserialize
192
- * @returns {Object} the deserialized result
193
- * @throws {DeserializationError} if provided data can not be deserialized
194
- */
195
- deserializeActionParameters (edmAction, value) {
196
- let data
197
- let result = {}
198
-
199
- let parameters = Array.from(edmAction.getParameters())
200
- // Skip the first parameter if the action is bound
201
- // because the first parameter of a bound action is the binding parameter
202
- // which is not part of the payload data.
203
- if (edmAction.isBound()) parameters.shift()
204
-
205
- if (parameters.length > 0) data = JSON.parse(value)
206
- for (const [paramName, edmParam] of parameters) {
207
- if (!data && typeof data !== 'object') {
208
- throw new DeserializationError('Value for action parameters must be an object.')
209
- }
210
-
211
- let paramValue = data[paramName]
212
-
213
- if ((value === null || value === undefined || paramValue == null) && !edmParam.isNullable()) {
214
- throw new DeserializationError(`Parameter '${paramName}' is not nullable`)
215
- }
216
-
217
- if (edmParam.isCollection() && !paramValue) {
218
- if (paramValue === undefined) break
219
- throw new DeserializationError(`'${edmParam.getName()}' must be a collection.`)
220
- }
221
-
222
- if (paramValue === undefined) {
223
- // OData JSON Format Version 4.0 Plus Errata 03 - 17 Action Invocation:
224
- // "Any parameter values not specified in the JSON object are assumed to have the null value."
225
- //
226
- // Set the value to null because further algorithm asserts nullable values already.
227
- // Therefore the value must be null, not undefined.
228
- paramValue = null
229
- }
230
- this._assertPropertyIsCollection(edmParam, paramValue)
231
-
232
- const edmType = edmParam.getType()
233
- switch (edmType.getKind()) {
234
- case EdmTypeKind.PRIMITIVE:
235
- case EdmTypeKind.ENUM:
236
- case EdmTypeKind.DEFINITION:
237
- result[paramName] = this._deserializePrimitive(edmParam, paramValue)
238
- break
239
- case EdmTypeKind.COMPLEX:
240
- case EdmTypeKind.ENTITY: // Both are structured types.
241
- this._deserializeComplex(edmParam, paramValue, [], [])
242
- result[paramName] = paramValue
243
- break
244
- default:
245
- throw new DeserializationError(
246
- `Could not deserialize parameter '${paramName}'. EdmTypeKind '${edmType.getKind()}' is invalid.`
247
- )
248
- }
249
- }
250
-
251
- const names = data ? Object.keys(data) : []
252
- const wrongParameter = names.find(name => !parameters.some(p => p[0] === name))
253
- if (wrongParameter) {
254
- throw new DeserializationError(
255
- `'${wrongParameter}' is not a non-binding parameter of action '${edmAction.getName()}'.`
256
- )
257
- }
258
-
259
- return result
260
- }
261
-
262
- /**
263
- * Deserializes a value for a structural type with its properties.
264
- * @param {EdmEntityType|EdmComplexType} edmType the EDM type of the provided value
265
- * @param {Object} structureValue the structural object to deserialize
266
- * @param {?(EdmProperty[])} nesting the complex properties the object is nested in
267
- * @param {boolean} isDelta whether the structural object is inside a delta annotation
268
- * @param {ExpandItem[]} expand The current expand items
269
- * @param {Object} additionalInformation additional information to be set in the deserializer
270
- * @throws {DeserializationError} if provided data can not be deserialized
271
- * @private
272
- */
273
- _deserializeStructuralType (edmType, structureValue, nesting, isDelta, expand, additionalInformation) {
274
- if (typeof structureValue !== 'object' || Array.isArray(structureValue)) {
275
- throw new DeserializationError('Value for structural type must be an object.')
276
- }
277
-
278
- for (const [name, value] of Object.entries(structureValue)) {
279
- if (name.includes('@')) {
280
- this._deserializeAnnotation(
281
- edmType,
282
- structureValue,
283
- name,
284
- value,
285
- nesting !== null,
286
- isDelta,
287
- additionalInformation
288
- )
289
- } else {
290
- const edmProperty = edmType.getProperty(name)
291
- this._assertPropertyExists(edmProperty, edmType, name)
292
- this._assertPropertyIsCollection(edmProperty, value)
293
-
294
- let structValue = structureValue
295
- const propertyType = edmProperty.getEntityType ? edmProperty.getEntityType() : edmProperty.getType()
296
-
297
- // REVISIT: unofficial!!!
298
- // !propertyType && cds.env.odata.asProvided -> just use the provided value
299
- if (!propertyType && cds.env.odata.asProvided) {
300
- continue
301
- }
302
-
303
- switch (propertyType.getKind()) {
304
- case EdmTypeKind.COMPLEX:
305
- this._deserializeComplex(
306
- edmProperty,
307
- value,
308
- (nesting || []).concat(edmProperty),
309
- expand,
310
- additionalInformation
311
- )
312
- break
313
- case EdmTypeKind.ENTITY:
314
- this._deserializeNavigation(edmProperty, value, nesting || [], expand, additionalInformation)
315
- break
316
- default:
317
- structValue[name] = this._deserializePrimitive(edmProperty, value)
318
- break
319
- }
320
- }
321
- }
322
- }
323
-
324
- /**
325
- * Deserializes an annotation.
326
- * @param {EdmEntityType|EdmComplexType} edmType the EDM type of the structure the annotation is part of
327
- * @param {Object} outerValue the structure the annotation is part of
328
- * @param {string} name the name of the annotation
329
- * @param {?(string|string[]|Object|Object[])} value the value of the annotation
330
- * @param {boolean} isNested whether the structural object is nested in another object
331
- * @param {boolean} isDelta whether the structural object is inside a delta annotation
332
- * @param {Object} additionalInformation additional information to be set in the deserializer
333
- * @throws {DeserializationError} if provided data can not be deserialized
334
- * @private
335
- */
336
- _deserializeAnnotation (edmType, outerValue, name, value, isNested, isDelta, additionalInformation) {
337
- let structureValue = outerValue
338
-
339
- if (name === JsonAnnotations.CONTEXT && !isNested) {
340
- // Context URL is allowed only in outermost structure.
341
- } else if (name === JsonAnnotations.ID && edmType.getKind() === EdmTypeKind.ENTITY) {
342
- if (value !== null) structureValue[name] = this._parseEntityUri(edmType, value)
343
- } else if (name.endsWith(JsonAnnotations.TYPE)) {
344
- // Validate that the type specified in the annotation is exactly the type declared in the EDM.
345
- const propertyName = name.substring(0, name.length - JsonAnnotations.TYPE.length)
346
- let expectedType = edmType
347
- let isCollection = false
348
- if (propertyName) {
349
- const edmProperty = edmType.getProperty(propertyName)
350
- this._assertPropertyExists(edmProperty, edmType, propertyName)
351
- expectedType = edmProperty.getType ? edmProperty.getType() : edmProperty.getEntityType()
352
- isCollection = edmProperty.isCollection()
353
- }
354
- const expectedTypeName =
355
- expectedType.getKind() === EdmTypeKind.PRIMITIVE ? expectedType.getName() : expectedType.getFullQualifiedName()
356
- const typeNameRegex = isCollection ? /^#?Collection\((.*)\)$/ : /^#?(.*)$/
357
- const matchedTypeName = typeof value === 'string' && value.match(typeNameRegex)
358
- const typeName = matchedTypeName && matchedTypeName[1]
359
- // The type name could be an alias-qualified name; for that case we have to do an EDM look-up.
360
- const fullQualifiedName =
361
- typeName && typeName.indexOf('.') > 0 && typeName.lastIndexOf('.') < typeName.length - 1
362
- ? FullQualifiedName.createFromNameSpaceAndName(typeName)
363
- : null
364
- if (
365
- typeName !== expectedTypeName &&
366
- (!fullQualifiedName ||
367
- (this._edm.getEntityType(fullQualifiedName) ||
368
- this._edm.getComplexType(fullQualifiedName) ||
369
- this._edm.getEnumType(fullQualifiedName) ||
370
- this._edm.getTypeDefinition(fullQualifiedName)) !== expectedType)
371
- ) {
372
- throw new DeserializationError(
373
- "The value of '" + name + "' must describe correctly the type '" + expectedType.getFullQualifiedName() + "'."
374
- )
375
- } else {
376
- delete structureValue[name]
377
- }
378
- } else if (name.endsWith(JsonAnnotations.BIND) && !isDelta) {
379
- const navigationPropertyName = name.substring(0, name.length - JsonAnnotations.BIND.length)
380
- const edmNavigationProperty = edmType.getNavigationProperty(navigationPropertyName)
381
- this._assertPropertyExists(edmNavigationProperty, edmType, navigationPropertyName)
382
- this._assertPropertyIsCollection(edmNavigationProperty, value)
383
- this._assertPropertyNullable(edmNavigationProperty, value)
384
- const edmEntityType = edmNavigationProperty.getEntityType()
385
- structureValue[name] = Array.isArray(value)
386
- ? value.map(uri => this._parseEntityUri(edmEntityType, uri))
387
- : this._parseEntityUri(edmEntityType, value)
388
- } else if (name.endsWith(JsonAnnotations.DELTA)) {
389
- const navigationPropertyName = name.substring(0, name.length - JsonAnnotations.DELTA.length)
390
- this._deserializeDelta(edmType, navigationPropertyName, value, additionalInformation)
391
- additionalInformation.hasDelta = true // eslint-disable-line no-param-reassign
392
- } else if (name === JsonAnnotations.REMOVED && isDelta) {
393
- if (
394
- typeof value !== 'object' ||
395
- Array.isArray(value) ||
396
- Object.keys(value).length > 1 ||
397
- (Object.keys(value).length === 1 && value.reason !== 'changed' && value.reason !== 'deleted')
398
- ) {
399
- throw new DeserializationError(
400
- "The value of '" +
401
- JsonAnnotations.REMOVED +
402
- "' must be an object with an " +
403
- "optional property 'reason' with value 'changed' or 'deleted'."
404
- )
405
- }
406
- if (
407
- !structureValue[JsonAnnotations.ID] &&
408
- !Array.from(edmType.getKeyPropertyRefs().keys()).every(keyName => structureValue[keyName])
409
- ) {
410
- throw new DeserializationError("'" + JsonAnnotations.REMOVED + "' must identify an entity.")
411
- }
412
- } else {
413
- throw new DeserializationError("Annotation '" + name + "' is not supported.")
414
- }
415
- }
416
-
417
- /**
418
- * Deserializes a navigation property and fills an expand item for deep inserts.
419
- * @param {EdmNavigationProperty} edmProperty the EDM navigation property to deserialize
420
- * @param {Object|Object[]} value the value of the navigation property
421
- * @param {EdmProperty[]} nesting the complex properties the navigation property is nested in
422
- * @param {ExpandItem[]} expandArray the current expand items
423
- * @param {Object} additionalInformation additional information to be set in the deserializer
424
- * @private
425
- */
426
- _deserializeNavigation (edmProperty, value, nesting, expandArray, additionalInformation) {
427
- this._assertPropertyNullable(edmProperty, value)
428
- if (value === null) return
429
-
430
- let currentExpandItem = expandArray.find(expandItem => {
431
- const segments = expandItem.getPathSegments()
432
- return segments.every((segment, index) =>
433
- index < segments.length - 1
434
- ? segment.getProperty() === nesting[index]
435
- : segment.getNavigationProperty() === edmProperty
436
- )
437
- })
438
- if (!currentExpandItem) {
439
- currentExpandItem = this._createExpandItem(nesting, edmProperty)
440
- expandArray.push(currentExpandItem)
441
- }
442
-
443
- const type = edmProperty.getEntityType()
444
-
445
- let newExpandOptionArray = []
446
- if (edmProperty.isCollection()) {
447
- for (let entity of value) {
448
- this._deserializeStructuralType(type, entity, [], false, newExpandOptionArray, additionalInformation)
449
- }
450
- } else {
451
- this._deserializeStructuralType(type, value, [], false, newExpandOptionArray, additionalInformation)
452
- }
453
-
454
- let innerExpandItems = currentExpandItem.getOption(UriInfo.QueryOptions.EXPAND) || []
455
- for (const newExpand of newExpandOptionArray) innerExpandItems.push(newExpand)
456
- if (innerExpandItems.length) currentExpandItem.setOption(UriInfo.QueryOptions.EXPAND, innerExpandItems)
457
- }
458
-
459
- /**
460
- * Deserializes a primitive and primitive collection value.
461
- * @param {EdmProperty} edmProperty the EDM property of this primitive value
462
- * @param {?(number|string|boolean|Object|Array)} propertyValue the JSON value
463
- * @returns {?(number|string|boolean|Buffer|Object|Array)} the deserialized result
464
- * @throws {DeserializationError} if provided data can not be deserialized
465
- * @private
466
- */
467
- _deserializePrimitive (edmProperty, propertyValue) {
468
- // OASIS issue 1177: "Streams that are annotated as the application/json media type [...]
469
- // are represented as native JSON in JSON requests and responses [...]
470
- // The odata.mediaContentType control information is only necessary if the embedded JSON happens to be a
471
- // JSON string, in all other cases it can be heuristically determined that the stream value is JSON."
472
- // TODO: Check that JSON is an acceptable media type for this stream property.
473
- // TODO: Validate the JSON content against the JSON schema if there is one in the metadata.
474
- let type = edmProperty.getType()
475
- if (type.getKind() === EdmTypeKind.DEFINITION) type = type.getUnderlyingType()
476
- if (type === EdmPrimitiveTypeKind.Stream) return propertyValue
477
- return edmProperty.isCollection()
478
- ? propertyValue && propertyValue.map(value => this._decoder.decodeJson(value, edmProperty))
479
- : this._decoder.decodeJson(propertyValue, edmProperty)
480
- }
481
-
482
- /**
483
- * Deserializes a complex and complex collection value.
484
- * @param {EdmProperty} edmProperty the EDM property of this complex value
485
- * @param {?(Object|Object[])} propertyValue the JSON value
486
- * @param {EdmProperty[]} nesting the complex properties the complex value is nested in
487
- * @param {ExpandItem[]} expand the current expand items
488
- * @param {Object} additionalInformation additional information to be set in the deserializer
489
- * @throws {DeserializationError} if provided data can not be deserialized
490
- * @private
491
- */
492
- _deserializeComplex (edmProperty, propertyValue, nesting, expand, additionalInformation) {
493
- const type = edmProperty.getType()
494
- if (edmProperty.isCollection()) {
495
- for (let value of propertyValue) {
496
- this._assertPropertyNullable(edmProperty, value)
497
- if (value === null) continue
498
- this._deserializeStructuralType(type, value, nesting, false, expand, additionalInformation)
499
- }
500
- } else {
501
- this._assertPropertyNullable(edmProperty, propertyValue)
502
- if (propertyValue === null) return
503
- this._deserializeStructuralType(type, propertyValue, nesting, false, expand, additionalInformation)
504
- }
505
- }
506
-
507
- /**
508
- * Deserializes a delta annotation for a navigation property.
509
- * @param {EdmEntityType} edmType the EDM type of the parent entity
510
- * @param {string} propertyName the name of the navigation property
511
- * @param {any} value the value of the delta annotation of the navigation property
512
- * @param {Object} additionalInformation additional information to be set in the deserializer
513
- * @private
514
- */
515
- _deserializeDelta (edmType, propertyName, value, additionalInformation) {
516
- const edmNavigationProperty = edmType.getNavigationProperty(propertyName)
517
- this._assertPropertyExists(edmNavigationProperty, edmType, propertyName)
518
- if (!edmNavigationProperty.isCollection()) {
519
- throw new DeserializationError("'" + propertyName + "' must not have a delta annotation.")
520
- }
521
- if (!Array.isArray(value)) {
522
- throw new DeserializationError(
523
- "The value of the delta annotation of '" + propertyName + "' must be a collection."
524
- )
525
- }
526
- const innerEdmType = edmNavigationProperty.getEntityType()
527
- for (const entity of value) {
528
- this._deserializeStructuralType(innerEdmType, entity, [], true, [], additionalInformation)
529
- }
530
- }
531
-
532
- /**
533
- * Asserts that the provided property value is a collection if the corresponding EDM property is a collection.
534
- * @param {EdmProperty|EdmNavigationProperty} edmProperty the EDM property for the corresponding property value
535
- * @param {*} propertyValue the value of the property
536
- * @throws {DeserializationError} if the property value is a collection while EDM property is not and vice versa
537
- * @private
538
- */
539
- _assertPropertyIsCollection (edmProperty, propertyValue) {
540
- if (edmProperty.isCollection() && propertyValue && !Array.isArray(propertyValue)) {
541
- const type = edmProperty.getType ? edmProperty.getType() : edmProperty.getEntityType()
542
- throw new DeserializationError(
543
- `'${edmProperty.getName()}' must be a collection of type '${type.getFullQualifiedName()}'.`
544
- )
545
- }
546
- if (!edmProperty.isCollection() && Array.isArray(propertyValue)) {
547
- throw new DeserializationError(`'${edmProperty.getName()}' must not be a collection.`)
548
- }
549
- }
550
-
551
- /**
552
- * Asserts that the provided EDM property is defined.
553
- * @param {EdmProperty|EdmNavigationProperty} edmProperty the EDM property to check
554
- * @param {EdmType} edmType the EDM type in which the EDM property is defined
555
- * @param {string} propertyName the name of the property
556
- * @throws {DeserializationError} if the provided EDM property is not defined
557
- * @private
558
- */
559
- _assertPropertyExists (edmProperty, edmType, propertyName) {
560
- if (!edmProperty) {
561
- const fqn = edmType.getFullQualifiedName()
562
- throw new DeserializationError(`'${propertyName}' does not exist in type '${fqn}'.`)
563
- }
564
- }
565
-
566
- /**
567
- * Asserts that the provided EDM property is nullable if it has a null value.
568
- * @param {EdmProperty|EdmNavigationProperty} edmProperty the EDM property to check
569
- * @param {*} propertyValue the value of the property
570
- * @throws {DeserializationError} if null is not allowed
571
- * @private
572
- */
573
- _assertPropertyNullable (edmProperty, propertyValue) {
574
- if (propertyValue === null && !edmProperty.isNullable()) {
575
- throw new DeserializationError(
576
- `The property '${edmProperty.getName()}' is not nullable and must not have a null value.`
577
- )
578
- }
579
- }
580
-
581
- /**
582
- * Parses and checks a URI given as reference to an entity.
583
- * @param {EdmEntityType} edmEntityType the EDM type of the entity
584
- * @param {string} uri the URI
585
- * @returns {UriInfo} the parsed URI
586
- * @private
587
- */
588
- _parseEntityUri (edmEntityType, uri) {
589
- if (uri === null) return null
590
- if (typeof uri !== 'string') {
591
- throw new DeserializationError(
592
- `The reference URI for type '${edmEntityType.getFullQualifiedName()}' must be a string.`
593
- )
594
- }
595
- const uriInfo = new UriParser(this._edm).parseRelativeUri(uri)
596
- if (
597
- !uriInfo
598
- .getPathSegments()
599
- .every(
600
- segment =>
601
- segment.getKind() === UriResource.ResourceKind.ENTITY ||
602
- (segment.getKind() === UriResource.ResourceKind.NAVIGATION_TO_ONE &&
603
- segment.getNavigationProperty().containsTarget())
604
- ) ||
605
- uriInfo.getFinalEdmType() !== edmEntityType
606
- ) {
607
- throw new DeserializationError(
608
- `The reference URI '${uri}' is not suitable for type '${edmEntityType.getFullQualifiedName()}'.`
609
- )
610
- }
611
- return uriInfo
612
- }
613
-
614
- /**
615
- * Deserializes a provided entity-reference object.
616
- * @param {EdmType} edmType the EDM type of the entity
617
- * @param {Object} value the reference object to deserialize
618
- * @returns {UriInfo} the deserialized result
619
- * @throws {DeserializationError} if provided data can not be deserialized
620
- * @private
621
- */
622
- _deserializeReference (edmType, value) {
623
- const objectKeys = Object.keys(value)
624
- if (objectKeys.length === 0) {
625
- throw new DeserializationError(`Value for type '${edmType.getFullQualifiedName()}' has no properties.`)
626
- }
627
-
628
- let uriInfo
629
- for (const propertyName of objectKeys) {
630
- if (propertyName === JsonAnnotations.ID) {
631
- uriInfo = this._parseEntityUri(edmType, value[propertyName])
632
- if (uriInfo === null) {
633
- throw new DeserializationError(
634
- `The reference URI for type '${edmType.getFullQualifiedName()}' must be a string.`
635
- )
636
- }
637
- } else if (odataAnnotations.has(propertyName) || propertyName === JsonAnnotations.TYPE) {
638
- this._deserializeAnnotation(edmType, value, propertyName, value[propertyName])
639
- } else {
640
- throw new DeserializationError(`Property or annotation '${propertyName}' is not supported.`)
641
- }
642
- }
643
- return uriInfo
644
- }
645
-
646
- /**
647
- * Creates an expand item for a navigation property.
648
- * @param {EdmProperty[]} nesting the complex properties the navigation property is nested in
649
- * @param {EdmNavigationProperty} edmNavigationProperty the EDM navigation property
650
- * @returns {ExpandItem} the expand item
651
- * @private
652
- */
653
- _createExpandItem (nesting, edmNavigationProperty) {
654
- return new ExpandItem().setPathSegments(
655
- nesting
656
- .map(complexProperty =>
657
- new UriResource().setKind(UriResource.ResourceKind.COMPLEX_PROPERTY).setProperty(complexProperty)
658
- )
659
- .concat([
660
- new UriResource()
661
- .setKind(
662
- edmNavigationProperty.isCollection()
663
- ? UriResource.ResourceKind.NAVIGATION_TO_MANY
664
- : UriResource.ResourceKind.NAVIGATION_TO_ONE
665
- )
666
- .setNavigationProperty(edmNavigationProperty)
667
- .setIsCollection(edmNavigationProperty.isCollection())
668
- ])
669
- )
670
- }
671
- }
672
-
673
- module.exports = ResourceJsonDeserializer