@sap/cds 8.9.4 → 9.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/CHANGELOG.md +121 -680
  2. package/LICENSE +15 -21
  3. package/README.md +1 -1
  4. package/_i18n/i18n_sl.properties +3 -3
  5. package/_i18n/messages.properties +1 -1
  6. package/app/index.js +1 -1
  7. package/bin/serve.js +17 -19
  8. package/eslint.config.mjs +7 -1
  9. package/lib/compile/etc/_localized.js +3 -24
  10. package/lib/compile/etc/yaml.js +6 -15
  11. package/lib/compile/for/odata.js +2 -2
  12. package/lib/compile/load.js +15 -4
  13. package/lib/compile/minify.js +1 -0
  14. package/lib/compile/to/edm-files.js +4 -33
  15. package/lib/compile/to/hdbtabledata.js +16 -3
  16. package/lib/compile/to/sql.js +1 -2
  17. package/lib/core/linked-csn.js +7 -8
  18. package/lib/dbs/cds-deploy.js +4 -3
  19. package/lib/env/cds-env.js +9 -9
  20. package/lib/env/cds-requires.js +23 -50
  21. package/lib/env/defaults.js +15 -44
  22. package/lib/env/schemas/cds-package.js +1 -1
  23. package/lib/i18n/index.js +1 -0
  24. package/lib/i18n/locale.js +41 -0
  25. package/lib/index.js +25 -15
  26. package/lib/log/cds-error.js +13 -3
  27. package/lib/log/cds-log.js +43 -18
  28. package/lib/log/format/aspects/als.js +2 -15
  29. package/lib/plugins.js +11 -11
  30. package/lib/ql/CREATE.js +1 -1
  31. package/lib/ql/DELETE.js +1 -1
  32. package/lib/ql/DROP.js +1 -1
  33. package/lib/ql/INSERT.js +9 -18
  34. package/lib/ql/SELECT.js +12 -19
  35. package/lib/ql/UPDATE.js +1 -1
  36. package/lib/ql/UPSERT.js +1 -0
  37. package/lib/ql/Whereable.js +7 -6
  38. package/lib/ql/cds-ql.js +0 -12
  39. package/lib/ql/cds.ql-Query.js +28 -68
  40. package/lib/ql/cds.ql-infer.js +97 -108
  41. package/lib/ql/resolve.js +1 -3
  42. package/lib/req/context.js +5 -4
  43. package/lib/req/request.js +46 -42
  44. package/lib/req/response.js +5 -9
  45. package/lib/req/spawn.js +38 -0
  46. package/lib/req/validate.js +9 -8
  47. package/lib/srv/bindings.js +2 -1
  48. package/lib/srv/cds-connect.js +5 -2
  49. package/lib/srv/cds-serve.js +0 -2
  50. package/lib/srv/cds.Service.js +146 -86
  51. package/lib/srv/middlewares/auth/ias-auth.js +99 -88
  52. package/lib/srv/middlewares/auth/jwt-auth.js +44 -57
  53. package/lib/srv/middlewares/cds-context.js +1 -1
  54. package/lib/srv/middlewares/ctx-model.js +1 -1
  55. package/lib/srv/middlewares/errors.js +34 -42
  56. package/lib/srv/protocols/hcql.js +35 -25
  57. package/lib/srv/protocols/index.js +0 -9
  58. package/lib/srv/protocols/odata-v4.js +1 -6
  59. package/lib/srv/srv-dispatch.js +29 -31
  60. package/lib/srv/srv-handlers.js +14 -46
  61. package/lib/srv/srv-methods.js +15 -37
  62. package/lib/srv/srv-tx.js +19 -25
  63. package/lib/test/cds-test.js +4 -263
  64. package/lib/utils/cds-utils.js +18 -2
  65. package/lib/utils/tar.js +6 -8
  66. package/lib/utils/unit.js +19 -0
  67. package/libx/_runtime/.eslintrc +1 -1
  68. package/libx/_runtime/cds-services/util/assert.js +2 -72
  69. package/libx/_runtime/cds.js +13 -6
  70. package/libx/_runtime/common/Service.js +33 -75
  71. package/libx/_runtime/common/aspects/any.js +0 -38
  72. package/libx/_runtime/common/constants/events.js +5 -13
  73. package/libx/_runtime/common/generic/auth/autoexpose.js +10 -24
  74. package/libx/_runtime/common/generic/auth/capabilities.js +23 -20
  75. package/libx/_runtime/common/generic/auth/expand.js +3 -3
  76. package/libx/_runtime/common/generic/auth/index.js +3 -3
  77. package/libx/_runtime/common/generic/auth/insertOnly.js +3 -3
  78. package/libx/_runtime/common/generic/auth/readOnly.js +4 -4
  79. package/libx/_runtime/common/generic/auth/requires.js +4 -4
  80. package/libx/_runtime/common/generic/auth/restrict.js +12 -29
  81. package/libx/_runtime/common/generic/auth/service.js +3 -3
  82. package/libx/_runtime/common/generic/auth/utils.js +2 -12
  83. package/libx/_runtime/common/generic/crud.js +22 -53
  84. package/libx/_runtime/common/generic/etag.js +18 -31
  85. package/libx/_runtime/common/generic/input.js +51 -123
  86. package/libx/_runtime/common/generic/paging.js +4 -4
  87. package/libx/_runtime/common/generic/sorting.js +8 -19
  88. package/libx/_runtime/common/generic/stream-only.js +26 -0
  89. package/libx/_runtime/common/generic/stream.js +16 -48
  90. package/libx/_runtime/common/generic/temporal.js +15 -7
  91. package/libx/_runtime/common/utils/binary.js +1 -26
  92. package/libx/_runtime/common/utils/compareJson.js +1 -2
  93. package/libx/_runtime/common/utils/cqn.js +15 -14
  94. package/libx/_runtime/common/utils/differ.js +121 -44
  95. package/libx/_runtime/common/utils/keys.js +4 -5
  96. package/libx/_runtime/common/utils/normalizeTimestamp.js +10 -1
  97. package/libx/_runtime/common/utils/postProcess.js +2 -2
  98. package/libx/_runtime/common/utils/propagateForeignKeys.js +21 -36
  99. package/libx/_runtime/common/utils/resolveView.js +105 -141
  100. package/libx/_runtime/common/utils/rewriteAsterisks.js +45 -12
  101. package/libx/_runtime/common/utils/streamProp.js +3 -9
  102. package/libx/_runtime/common/utils/waitingTime.js +13 -1
  103. package/libx/_runtime/fiori/lean-draft.js +174 -196
  104. package/libx/_runtime/messaging/common-utils/connections.js +1 -1
  105. package/libx/_runtime/messaging/enterprise-messaging-utils/EMManagement.js +1 -0
  106. package/libx/_runtime/messaging/enterprise-messaging-utils/registerEndpoints.js +3 -3
  107. package/libx/_runtime/messaging/enterprise-messaging.js +2 -2
  108. package/libx/_runtime/messaging/file-based.js +2 -4
  109. package/libx/_runtime/messaging/redis-messaging.js +1 -1
  110. package/libx/_runtime/messaging/service.js +5 -19
  111. package/libx/_runtime/remote/Service.js +20 -33
  112. package/libx/_runtime/remote/utils/client.js +7 -25
  113. package/libx/_runtime/remote/utils/cloudSdkProvider.js +8 -13
  114. package/libx/_runtime/remote/utils/data.js +3 -34
  115. package/libx/_runtime/types/api.js +0 -8
  116. package/libx/_runtime/ucl/Service.js +1 -9
  117. package/libx/common/utils/path.js +2 -3
  118. package/libx/common/utils/streaming.js +2 -1
  119. package/libx/http/HttpRequest.js +13 -0
  120. package/libx/{odata/middleware → http}/body-parser.js +7 -5
  121. package/libx/http/location.js +41 -0
  122. package/libx/http/put.js +36 -0
  123. package/libx/odata/ODataAdapter.js +25 -59
  124. package/libx/odata/index.js +10 -23
  125. package/libx/odata/middleware/batch.js +29 -20
  126. package/libx/odata/middleware/create.js +6 -13
  127. package/libx/odata/middleware/delete.js +0 -4
  128. package/libx/odata/middleware/error.js +83 -27
  129. package/libx/odata/middleware/metadata.js +14 -25
  130. package/libx/odata/middleware/operation.js +10 -26
  131. package/libx/odata/middleware/read.js +10 -18
  132. package/libx/odata/middleware/stream.js +14 -34
  133. package/libx/odata/middleware/update.js +17 -26
  134. package/libx/odata/parse/afterburner.js +20 -16
  135. package/libx/odata/parse/cqn2odata.js +3 -1
  136. package/libx/odata/parse/grammar.peggy +221 -114
  137. package/libx/odata/parse/parser.js +1 -1
  138. package/libx/odata/utils/index.js +10 -38
  139. package/libx/odata/utils/metadata.js +10 -8
  140. package/libx/odata/utils/normalizeTimeData.js +5 -8
  141. package/libx/odata/utils/readAfterWrite.js +1 -1
  142. package/libx/{outbox/OutboxRunner.js → queue/TaskRunner.js} +17 -22
  143. package/libx/queue/index.js +531 -0
  144. package/libx/rest/RestAdapter.js +43 -82
  145. package/libx/rest/middleware/create.js +35 -33
  146. package/libx/rest/middleware/delete.js +9 -7
  147. package/libx/rest/middleware/error.js +11 -18
  148. package/libx/rest/middleware/operation.js +44 -137
  149. package/libx/rest/middleware/parse.js +114 -130
  150. package/libx/rest/middleware/read.js +23 -21
  151. package/libx/rest/middleware/update.js +20 -32
  152. package/libx/rest/middleware/upsert.js +31 -0
  153. package/libx/rest/pre-processing.js +8 -18
  154. package/package.json +6 -7
  155. package/srv/outbox.cds +1 -0
  156. package/bin/test.js +0 -125
  157. package/lib/env/plugins.js +0 -18
  158. package/lib/req/cds-context.js +0 -52
  159. package/lib/req/locale.js +0 -35
  160. package/lib/srv/cds.ServiceClient.js +0 -96
  161. package/lib/srv/cds.ServiceProvider.js +0 -20
  162. package/lib/srv/protocols/okra.js +0 -22
  163. package/lib/test/axios.js +0 -63
  164. package/lib/test/data.js +0 -52
  165. package/lib/test/expect.js +0 -343
  166. package/lib/test/reporter.js +0 -176
  167. package/libx/_runtime/cds-services/adapter/odata-v4/OData.js +0 -275
  168. package/libx/_runtime/cds-services/adapter/odata-v4/ODataRequest.js +0 -217
  169. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/action.js +0 -101
  170. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/create.js +0 -79
  171. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/debug.js +0 -6
  172. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/delete.js +0 -60
  173. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/error.js +0 -161
  174. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/language.js +0 -7
  175. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/metadata.js +0 -59
  176. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/read.js +0 -602
  177. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/request.js +0 -64
  178. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/update.js +0 -238
  179. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/ExpressionToCQN.js +0 -327
  180. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/applyToCQN.js +0 -243
  181. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/boundToCQN.js +0 -43
  182. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/createToCQN.js +0 -37
  183. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/deleteToCQN.js +0 -36
  184. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/expandToCQN.js +0 -250
  185. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/index.js +0 -81
  186. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/orderByToCQN.js +0 -51
  187. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/readToCQN.js +0 -389
  188. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/searchToCQN.js +0 -43
  189. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/selectToCQN.js +0 -35
  190. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/updateToCQN.js +0 -38
  191. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/utils.js +0 -217
  192. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/FeatureSupport.js +0 -70
  193. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/FullQualifiedName.js +0 -94
  194. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAction.js +0 -139
  195. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlActionImport.js +0 -82
  196. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAliasInfo.js +0 -44
  197. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAnnotation.js +0 -104
  198. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlAnnotations.js +0 -71
  199. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlComplexType.js +0 -133
  200. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityContainer.js +0 -142
  201. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityContainerInfo.js +0 -37
  202. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntitySet.js +0 -107
  203. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEntityType.js +0 -177
  204. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEnumMember.js +0 -61
  205. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlEnumType.js +0 -105
  206. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlFunction.js +0 -149
  207. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlFunctionImport.js +0 -105
  208. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlInclude.js +0 -68
  209. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlIncludeAnnotation.js +0 -71
  210. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlJsonProvider.js +0 -1365
  211. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlNavigationProperty.js +0 -190
  212. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlNavigationPropertyBinding.js +0 -37
  213. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlOnDelete.js +0 -70
  214. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlParameter.js +0 -227
  215. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlProperty.js +0 -250
  216. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlPropertyRef.js +0 -49
  217. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlProvider.js +0 -190
  218. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReference.js +0 -97
  219. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReferentialConstraint.js +0 -60
  220. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlReturnType.js +0 -216
  221. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlSchema.js +0 -328
  222. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlSingleton.js +0 -84
  223. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlTerm.js +0 -320
  224. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/CsdlTypeDefinition.js +0 -193
  225. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlAnnotationExpression.js +0 -73
  226. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlAnnotationPathExpression.js +0 -33
  227. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlApplyExpression.js +0 -105
  228. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlArithmeticExpression.js +0 -72
  229. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlBinaryExpression.js +0 -110
  230. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlCastExpression.js +0 -188
  231. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlCollectionExpression.js +0 -48
  232. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlConstantExpression.js +0 -116
  233. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlIfExpression.js +0 -62
  234. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlIsOfExpression.js +0 -200
  235. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlLabeledElementExpression.js +0 -42
  236. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlLabeledElementReferenceExpression.js +0 -31
  237. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlModelElementPathExpression.js +0 -29
  238. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNavigationPropertyPathExpression.js +0 -31
  239. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNegationExpression.js +0 -27
  240. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNotExpression.js +0 -31
  241. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlNullExpression.js +0 -18
  242. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPathExpression.js +0 -32
  243. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPropertyPathExpression.js +0 -32
  244. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlPropertyValueExpression.js +0 -55
  245. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlRecordExpression.js +0 -54
  246. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlUnknownExpression.js +0 -44
  247. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/csdl/annotationExpression/CsdlUrlRefExpression.js +0 -31
  248. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmBindingTarget.js +0 -163
  249. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmFaceted.js +0 -136
  250. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmOperation.js +0 -205
  251. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmOperationImport.js +0 -126
  252. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/AbstractEdmStructuredType.js +0 -275
  253. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/Edm.js +0 -775
  254. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAction.js +0 -15
  255. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmActionImport.js +0 -39
  256. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAnnotation.js +0 -106
  257. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmAnnotations.js +0 -57
  258. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmComplexType.js +0 -48
  259. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntityContainer.js +0 -455
  260. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntitySet.js +0 -43
  261. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntityType.js +0 -119
  262. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEnumMember.js +0 -69
  263. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEnumType.js +0 -117
  264. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmFunction.js +0 -39
  265. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmFunctionImport.js +0 -59
  266. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmInclude.js +0 -65
  267. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmIncludeAnnotation.js +0 -48
  268. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmKeyPropertyRef.js +0 -79
  269. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmNavigationProperty.js +0 -182
  270. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmNavigationPropertyBinding.js +0 -46
  271. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmOnDelete.js +0 -44
  272. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmParameter.js +0 -22
  273. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmPrimitiveType.js +0 -31
  274. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmPrimitiveTypeKind.js +0 -70
  275. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmProperty.js +0 -39
  276. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmProvider.js +0 -399
  277. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReference.js +0 -88
  278. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReferentialConstraint.js +0 -71
  279. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmReturnType.js +0 -14
  280. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmSchema.js +0 -355
  281. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmSingleton.js +0 -15
  282. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTerm.js +0 -75
  283. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmType.js +0 -95
  284. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTypeDefinition.js +0 -121
  285. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmTypeFactory.js +0 -28
  286. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmVocabularyTermType.js +0 -41
  287. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/KeyFactory.js +0 -67
  288. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/Target.js +0 -56
  289. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/TransientStructuredType.js +0 -244
  290. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/AnnotationExpressionFactory.js +0 -130
  291. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmAnnotationExpression.js +0 -28
  292. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmAnnotationPathExpression.js +0 -42
  293. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmApplyExpression.js +0 -85
  294. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmArithmeticExpression.js +0 -92
  295. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmBinaryExpression.js +0 -96
  296. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmCastExpression.js +0 -129
  297. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmCollectionExpression.js +0 -52
  298. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmConstantExpression.js +0 -83
  299. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmIfExpression.js +0 -103
  300. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmIsOfExpression.js +0 -125
  301. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmLabeledElementExpression.js +0 -83
  302. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmLabeledElementReferenceExpression.js +0 -41
  303. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmModelElementPathExpression.js +0 -35
  304. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNavigationPropertyPathExpression.js +0 -37
  305. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNegationExpression.js +0 -70
  306. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNotExpression.js +0 -75
  307. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmNullExpression.js +0 -50
  308. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPathExpression.js +0 -38
  309. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPropertyPathExpression.js +0 -37
  310. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmPropertyValueExpression.js +0 -72
  311. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmRecordExpression.js +0 -100
  312. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmUnknownExpression.js +0 -72
  313. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/annotationExpression/EdmUrlRefExpression.js +0 -73
  314. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/AbstractError.js +0 -82
  315. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/IllegalArgumentError.js +0 -58
  316. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/IllegalCallError.js +0 -21
  317. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/NotImplementedError.js +0 -19
  318. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriQueryOptionSemanticError.js +0 -49
  319. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriSemanticError.js +0 -48
  320. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/errors/UriSyntaxError.js +0 -65
  321. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/ContentTypeInfo.js +0 -105
  322. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/JsonContentTypeInfo.js +0 -83
  323. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/JsonFormat.js +0 -141
  324. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/format/RepresentationKind.js +0 -251
  325. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpHeader.js +0 -42
  326. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpHeaderReader.js +0 -318
  327. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpMethod.js +0 -25
  328. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/HttpStatusCode.js +0 -52
  329. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/http/Preferences.js +0 -32
  330. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/index.js +0 -69
  331. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/logging/LoggerFacade.js +0 -183
  332. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/AliasExpression.js +0 -47
  333. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ApplyParser.js +0 -946
  334. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/BinaryExpression.js +0 -124
  335. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpandItem.js +0 -76
  336. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpandParser.js +0 -384
  337. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/Expression.js +0 -46
  338. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ExpressionParser.js +0 -1988
  339. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/FilterParser.js +0 -34
  340. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/FunctionParameterParser.js +0 -106
  341. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/KeyPredicateParser.js +0 -155
  342. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/KeyValueParser.js +0 -213
  343. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/LiteralExpression.js +0 -43
  344. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/MemberExpression.js +0 -44
  345. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/MethodExpression.js +0 -146
  346. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/OrderByItem.js +0 -53
  347. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/OrderByParser.js +0 -69
  348. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ResourcePathParser.js +0 -848
  349. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SearchParser.js +0 -127
  350. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SelectItem.js +0 -80
  351. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/SelectParser.js +0 -294
  352. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/TypeLiteralExpression.js +0 -28
  353. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UnaryExpression.js +0 -64
  354. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriHelper.js +0 -65
  355. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriInfo.js +0 -165
  356. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParameter.js +0 -107
  357. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParser.js +0 -350
  358. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriResource.js +0 -602
  359. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriTokenizer.js +0 -1156
  360. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/AggregateExpression.js +0 -164
  361. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/AggregateTransformation.js +0 -38
  362. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/BottomTopTransformation.js +0 -93
  363. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ComputeExpression.js +0 -52
  364. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ComputeTransformation.js +0 -38
  365. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ConcatTransformation.js +0 -38
  366. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/CustomFunctionTransformation.js +0 -59
  367. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/ExpandTransformation.js +0 -37
  368. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/FilterTransformation.js +0 -37
  369. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/GroupByItem.js +0 -71
  370. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/GroupByTransformation.js +0 -58
  371. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/IdentityTransformation.js +0 -17
  372. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/OrderByTransformation.js +0 -37
  373. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/SearchTransformation.js +0 -37
  374. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/SkipTransformation.js +0 -37
  375. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/TopTransformation.js +0 -37
  376. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/apply/Transformation.js +0 -53
  377. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/info.md +0 -116
  378. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/PrimitiveValueDecoder.js +0 -667
  379. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/PrimitiveValueEncoder.js +0 -349
  380. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/ValueConverter.js +0 -545
  381. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ParameterValidator.js +0 -124
  382. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ValueValidator.js +0 -743
  383. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/ServiceFactory.js +0 -234
  384. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchContext.js +0 -351
  385. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchErrorInfo.js +0 -61
  386. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchExitHandler.js +0 -239
  387. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchProcessor.js +0 -281
  388. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchValidator.js +0 -133
  389. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/batch/BatchedRequestExecutor.js +0 -92
  390. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ComponentManager.js +0 -63
  391. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Context.js +0 -96
  392. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Dispatcher.js +0 -147
  393. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataRequest.js +0 -458
  394. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataRequestInBatch.js +0 -147
  395. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataResponse.js +0 -314
  396. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/OdataResponseInBatch.js +0 -83
  397. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/PlainHttpRequest.js +0 -175
  398. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/PlainHttpResponse.js +0 -106
  399. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/RequestContract.js +0 -111
  400. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseContract.js +0 -111
  401. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseHeaderSetter.js +0 -240
  402. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/Service.js +0 -417
  403. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ServiceResolutions.js +0 -24
  404. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ApplicationHttpReader.js +0 -157
  405. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/BatchJsonDeserializer.js +0 -171
  406. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/BatchRequestListBuilder.js +0 -196
  407. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/Cache.js +0 -154
  408. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ContentDeserializer.js +0 -222
  409. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/DataReader.js +0 -220
  410. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/DeserializerFactory.js +0 -240
  411. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/HeaderReader.js +0 -133
  412. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/LineReader.js +0 -61
  413. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/MultipartReader.js +0 -419
  414. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/PartReader.js +0 -99
  415. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/Reader.js +0 -52
  416. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/deserializer/ResourceJsonDeserializer.js +0 -673
  417. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/ApplicationError.js +0 -108
  418. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/BadRequestError.js +0 -21
  419. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/ConflictError.js +0 -11
  420. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/DeserializationError.js +0 -19
  421. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/InternalServerError.js +0 -20
  422. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/MethodNotAllowedError.js +0 -17
  423. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/NotAcceptableError.js +0 -21
  424. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/NotFoundError.js +0 -33
  425. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/PreconditionFailedError.js +0 -11
  426. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/PreconditionRequiredError.js +0 -11
  427. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/SerializationError.js +0 -19
  428. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/errors/UnauthorizedError.js +0 -17
  429. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/AcceptTypeInfo.js +0 -86
  430. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/CharsetInfo.js +0 -76
  431. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/FormatDescription.js +0 -43
  432. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/FormatManager.js +0 -91
  433. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/RequestContentNegotiator.js +0 -62
  434. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/format/ResponseContentNegotiator.js +0 -321
  435. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/BatchHandler.js +0 -36
  436. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/MetadataHandler.js +0 -21
  437. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/handler/ServiceHandler.js +0 -25
  438. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/CustomPreference.js +0 -31
  439. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HeaderInfo.js +0 -79
  440. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpHeader.js +0 -59
  441. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpHeaderReader.js +0 -452
  442. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/HttpStatusCode.js +0 -117
  443. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/Preferences.js +0 -222
  444. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/http/PreferencesApplied.js +0 -199
  445. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/index.js +0 -37
  446. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/Command.js +0 -31
  447. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/CommandExecutor.js +0 -94
  448. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/CommandFactory.js +0 -203
  449. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ConditionalRequestControlCommand.js +0 -52
  450. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ConditionalRequestPreValidationCommand.js +0 -59
  451. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ContentNegotiatorCommand.js +0 -70
  452. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugContentNegotiatorCommand.js +0 -59
  453. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugDeserializingCommand.js +0 -44
  454. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugSerializingCommand.js +0 -51
  455. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DeserializingCommand.js +0 -69
  456. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DispatcherCommand.js +0 -95
  457. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ErrorContentNegotiatorCommand.js +0 -44
  458. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ErrorSerializingCommand.js +0 -51
  459. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/EventListenerCommand.js +0 -59
  460. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/LocaleNegotiatorCommand.js +0 -56
  461. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/OdataVersionValidationCommand.js +0 -41
  462. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/OperationValidationCommand.js +0 -34
  463. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ParsePreferHeaderCommand.js +0 -47
  464. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/PresetResponseHeadersCommand.js +0 -47
  465. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/QueryOptionsParserCommand.js +0 -43
  466. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/QueryOptionsValidationCommand.js +0 -62
  467. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/RequestContentValidationCommand.js +0 -51
  468. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SendResponseCommand.js +0 -37
  469. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SerializingCommand.js +0 -159
  470. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetResponseHeadersCommand.js +0 -90
  471. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetStatuscodeCommand.js +0 -51
  472. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/UriParserCommand.js +0 -47
  473. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/logging/DebugLogger.js +0 -97
  474. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ApplicationHttpWriter.js +0 -65
  475. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/BatchJsonSerializer.js +0 -46
  476. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/BatchMultipartSerializer.js +0 -113
  477. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ContextURLFactory.js +0 -405
  478. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/DebugHtmlSerializer.js +0 -302
  479. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/DebugJsonSerializer.js +0 -515
  480. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorJsonSerializer.js +0 -47
  481. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorSerializer.js +0 -39
  482. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorXmlSerializer.js +0 -98
  483. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ExpressionTreeImage.js +0 -404
  484. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/MetadataXmlSerializer.js +0 -1416
  485. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/MultipartWriter.js +0 -202
  486. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/NextLinkSerializer.js +0 -330
  487. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ResourceJsonSerializer.js +0 -1220
  488. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/SerializerFactory.js +0 -484
  489. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ServiceJsonSerializer.js +0 -89
  490. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/TrustedResourceJsonSerializer.js +0 -612
  491. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/debugview.html +0 -157
  492. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/BufferedWriter.js +0 -59
  493. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/ExpandHelper.js +0 -96
  494. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/MetadataCache.js +0 -136
  495. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/PerformanceMonitor.js +0 -221
  496. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/UriHelper.js +0 -157
  497. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/ConditionalRequestValidator.js +0 -79
  498. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/OperationValidator.js +0 -199
  499. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/RequestValidator.js +0 -392
  500. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/VersionValidator.js +0 -62
  501. package/libx/_runtime/cds-services/adapter/odata-v4/to.js +0 -51
  502. package/libx/_runtime/cds-services/adapter/odata-v4/utils/data.js +0 -331
  503. package/libx/_runtime/cds-services/adapter/odata-v4/utils/handlerUtils.js +0 -159
  504. package/libx/_runtime/cds-services/adapter/odata-v4/utils/metaInfo.js +0 -404
  505. package/libx/_runtime/cds-services/adapter/odata-v4/utils/oDataConfiguration.js +0 -55
  506. package/libx/_runtime/cds-services/adapter/odata-v4/utils/omitValues.js +0 -86
  507. package/libx/_runtime/cds-services/adapter/odata-v4/utils/readAfterWrite.js +0 -107
  508. package/libx/_runtime/cds-services/adapter/odata-v4/utils/request.js +0 -64
  509. package/libx/_runtime/cds-services/adapter/odata-v4/utils/result.js +0 -385
  510. package/libx/_runtime/cds-services/adapter/odata-v4/utils/stream.js +0 -12
  511. package/libx/_runtime/cds-services/util/errors.js +0 -15
  512. package/libx/_runtime/common/aspects/relation.js +0 -40
  513. package/libx/_runtime/common/composition/data.js +0 -370
  514. package/libx/_runtime/common/composition/delete.js +0 -313
  515. package/libx/_runtime/common/composition/index.js +0 -22
  516. package/libx/_runtime/common/composition/insert.js +0 -108
  517. package/libx/_runtime/common/composition/tree.js +0 -275
  518. package/libx/_runtime/common/composition/update.js +0 -354
  519. package/libx/_runtime/common/composition/utils.js +0 -95
  520. package/libx/_runtime/common/error/constants.js +0 -20
  521. package/libx/_runtime/common/error/entry.js +0 -36
  522. package/libx/_runtime/common/error/frontend.js +0 -199
  523. package/libx/_runtime/common/error/index.js +0 -12
  524. package/libx/_runtime/common/error/log.js +0 -35
  525. package/libx/_runtime/common/error/standardError.js +0 -11
  526. package/libx/_runtime/common/error/utils.js +0 -18
  527. package/libx/_runtime/common/generic/auth/constants.js +0 -17
  528. package/libx/_runtime/common/generic/put.js +0 -85
  529. package/libx/_runtime/common/utils/columns.js +0 -177
  530. package/libx/_runtime/common/utils/compareJsonOLD.js +0 -280
  531. package/libx/_runtime/common/utils/cqn2cqn4sql.js +0 -1039
  532. package/libx/_runtime/common/utils/data.js +0 -16
  533. package/libx/_runtime/common/utils/dollar.js +0 -27
  534. package/libx/_runtime/common/utils/generateOnCond.js +0 -127
  535. package/libx/_runtime/common/utils/onlyKeysRemain.js +0 -10
  536. package/libx/_runtime/common/utils/path.js +0 -20
  537. package/libx/_runtime/common/utils/quotingStyles.js +0 -29
  538. package/libx/_runtime/common/utils/restrictions.js +0 -67
  539. package/libx/_runtime/common/utils/search2cqn4sql.js +0 -37
  540. package/libx/_runtime/common/utils/searchToLike.js +0 -56
  541. package/libx/_runtime/common/utils/stream.js +0 -103
  542. package/libx/_runtime/common/utils/ucsn.js +0 -119
  543. package/libx/_runtime/common/utils/union.js +0 -31
  544. package/libx/_runtime/common/utils/unionCqnTemplate.js +0 -174
  545. package/libx/_runtime/db/Service.js +0 -93
  546. package/libx/_runtime/db/data-conversion/post-processing.js +0 -175
  547. package/libx/_runtime/db/expand/expand-v2.js +0 -147
  548. package/libx/_runtime/db/expand/expandCQNToJoin.js +0 -1775
  549. package/libx/_runtime/db/expand/index.js +0 -13
  550. package/libx/_runtime/db/expand/rawToExpanded.js +0 -250
  551. package/libx/_runtime/db/generic/create.js +0 -30
  552. package/libx/_runtime/db/generic/delete.js +0 -18
  553. package/libx/_runtime/db/generic/index.js +0 -25
  554. package/libx/_runtime/db/generic/input.js +0 -227
  555. package/libx/_runtime/db/generic/read.js +0 -16
  556. package/libx/_runtime/db/generic/rewrite.js +0 -68
  557. package/libx/_runtime/db/generic/structured.js +0 -92
  558. package/libx/_runtime/db/generic/update.js +0 -97
  559. package/libx/_runtime/db/generic/virtual.js +0 -83
  560. package/libx/_runtime/db/query/delete.js +0 -39
  561. package/libx/_runtime/db/query/index.js +0 -13
  562. package/libx/_runtime/db/query/insert.js +0 -21
  563. package/libx/_runtime/db/query/read.js +0 -97
  564. package/libx/_runtime/db/query/run.js +0 -30
  565. package/libx/_runtime/db/query/update.js +0 -94
  566. package/libx/_runtime/db/result/InsertResult.js +0 -87
  567. package/libx/_runtime/db/sql-builder/BaseBuilder.js +0 -65
  568. package/libx/_runtime/db/sql-builder/CreateBuilder.js +0 -212
  569. package/libx/_runtime/db/sql-builder/DeleteBuilder.js +0 -87
  570. package/libx/_runtime/db/sql-builder/DropBuilder.js +0 -63
  571. package/libx/_runtime/db/sql-builder/ExpressionBuilder.js +0 -345
  572. package/libx/_runtime/db/sql-builder/FunctionBuilder.js +0 -232
  573. package/libx/_runtime/db/sql-builder/InsertBuilder.js +0 -494
  574. package/libx/_runtime/db/sql-builder/ReferenceBuilder.js +0 -135
  575. package/libx/_runtime/db/sql-builder/SelectBuilder.js +0 -482
  576. package/libx/_runtime/db/sql-builder/UpdateBuilder.js +0 -207
  577. package/libx/_runtime/db/sql-builder/UpsertBuilder.js +0 -25
  578. package/libx/_runtime/db/sql-builder/annotations.js +0 -50
  579. package/libx/_runtime/db/sql-builder/arrayed.js +0 -4
  580. package/libx/_runtime/db/sql-builder/dataTypes.js +0 -59
  581. package/libx/_runtime/db/sql-builder/dollar.js +0 -37
  582. package/libx/_runtime/db/sql-builder/index.js +0 -28
  583. package/libx/_runtime/db/sql-builder/sqlFactory.js +0 -104
  584. package/libx/_runtime/db/utils/coloredTxCommands.js +0 -7
  585. package/libx/_runtime/db/utils/columns.js +0 -41
  586. package/libx/_runtime/db/utils/deep.js +0 -71
  587. package/libx/_runtime/db/utils/generateAliases.js +0 -160
  588. package/libx/_runtime/db/utils/localized.js +0 -77
  589. package/libx/_runtime/db/utils/normalizeTimeData.js +0 -98
  590. package/libx/_runtime/db/utils/stream.js +0 -41
  591. package/libx/_runtime/hana/Service.js +0 -173
  592. package/libx/_runtime/hana/conversion.js +0 -73
  593. package/libx/_runtime/hana/customBuilder/CustomCreateBuilder.js +0 -11
  594. package/libx/_runtime/hana/customBuilder/CustomDeleteBuilder.js +0 -17
  595. package/libx/_runtime/hana/customBuilder/CustomDropBuilder.js +0 -12
  596. package/libx/_runtime/hana/customBuilder/CustomExpressionBuilder.js +0 -23
  597. package/libx/_runtime/hana/customBuilder/CustomFunctionBuilder.js +0 -34
  598. package/libx/_runtime/hana/customBuilder/CustomReferenceBuilder.js +0 -38
  599. package/libx/_runtime/hana/customBuilder/CustomSelectBuilder.js +0 -90
  600. package/libx/_runtime/hana/customBuilder/index.js +0 -11
  601. package/libx/_runtime/hana/driver.js +0 -205
  602. package/libx/_runtime/hana/dynatrace.js +0 -130
  603. package/libx/_runtime/hana/execute.js +0 -429
  604. package/libx/_runtime/hana/localized.js +0 -39
  605. package/libx/_runtime/hana/pool.js +0 -186
  606. package/libx/_runtime/hana/search.js +0 -20
  607. package/libx/_runtime/hana/search2Contains.js +0 -106
  608. package/libx/_runtime/hana/search2cqn4sql.js +0 -98
  609. package/libx/_runtime/hana/streaming.js +0 -248
  610. package/libx/_runtime/messaging/Outbox.js +0 -15
  611. package/libx/_runtime/sqlite/Service.js +0 -153
  612. package/libx/_runtime/sqlite/conversion.js +0 -47
  613. package/libx/_runtime/sqlite/convertAssocToOneManaged.js +0 -60
  614. package/libx/_runtime/sqlite/convertDraftAdminPathExpression.js +0 -74
  615. package/libx/_runtime/sqlite/customBuilder/CustomExpressionBuilder.js +0 -24
  616. package/libx/_runtime/sqlite/customBuilder/CustomFunctionBuilder.js +0 -102
  617. package/libx/_runtime/sqlite/customBuilder/CustomSelectBuilder.js +0 -16
  618. package/libx/_runtime/sqlite/customBuilder/CustomUpsertBuilder.js +0 -47
  619. package/libx/_runtime/sqlite/customBuilder/index.js +0 -49
  620. package/libx/_runtime/sqlite/execute.js +0 -345
  621. package/libx/_runtime/sqlite/localized.js +0 -49
  622. package/libx/outbox/index.js +0 -307
@@ -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