@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,1156 +0,0 @@
1
- 'use strict'
2
-
3
- const UriSyntaxError = require('../errors/UriSyntaxError')
4
-
5
- const IDENTIFIER = '([_\\p{L}\\p{Nl}][_\\p{L}\\p{Nl}\\p{Nd}\\p{Mn}\\p{Mc}\\p{Pc}\\p{Cf}]{0,127})'
6
- const IDENTIFIER_REGEXP = new RegExp('^' + IDENTIFIER, 'u')
7
- const QUALIFIED_NAME_REGEXP = new RegExp('^' + IDENTIFIER + '(\\.' + IDENTIFIER + ')+', 'u')
8
- const PARAMETER_ALIAS_NAME_REGEXP = new RegExp('^@' + IDENTIFIER, 'u')
9
-
10
- const BOOLEAN_VALUE_REGEXP = new RegExp('^(?:true|false)', 'i')
11
-
12
- const STRING_REGEXP = new RegExp("^'(?:''|[^'])*'")
13
-
14
- const HEX_DIGIT = '[A-Fa-f0-9]'
15
- const GUID_VALUE_REGEXP = new RegExp(
16
- '^(?:' + HEX_DIGIT + '{8}-' + HEX_DIGIT + '{4}-' + HEX_DIGIT + '{4}-' + HEX_DIGIT + '{4}-' + HEX_DIGIT + '{12})'
17
- )
18
-
19
- // regex for url-safe base64
20
- const BINARY_VALUE_REGEXP = /^[Bb][Ii][Nn][Aa][Rr][Yy]'(?:[A-Za-z0-9-_]{4})*(?:[A-Za-z0-9-_]{4}|[A-Za-z0-9-_]{3}=|[A-Za-z0-9-_]{2}={2}|[A-Za-z0-9-_]{2,3})'/
21
-
22
- const UNSIGNED_INTEGER_VALUE_REGEXP = new RegExp('^\\d+')
23
- const INTEGER_VALUE_REGEXP = new RegExp('^[-+]?\\d+')
24
- const DECIMAL_VALUE_REGEXP = new RegExp('^[-+]?\\d+\\.\\d+')
25
- const DOUBLE_VALUE_REGEXP = new RegExp('^(?:(?:[-+]?\\d+(?:\\.\\d+)?[Ee][-+]?\\d+)|NaN|-?INF)')
26
-
27
- const DURATION_REGEXP = new RegExp("^duration'[-+]?P(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+(?:\\.\\d+)?S)?)?'", 'i')
28
-
29
- const YEAR = '-?(?:0\\d{3}|[1-9]\\d{3,})'
30
- const MONTH = '(?:0[1-9]|1[012])'
31
- const DAY = '(?:0[1-9]|[12]\\d|3[01])'
32
- const HOUR = '(?:[01]\\d|2[0123])'
33
- const MINUTE = '[012345]\\d'
34
- const SECOND = '[012345]\\d'
35
- const DATE = YEAR + '-' + MONTH + '-' + DAY
36
- const TIME = HOUR + ':' + MINUTE + '(?::' + SECOND + '(?:\\.\\d{1,12})?)?'
37
- const DATE_REGEXP = new RegExp('^' + DATE)
38
- const TIME_OF_DAY_REGEXP = new RegExp('^' + TIME)
39
- const DATE_TIME_OFFSET_REGEXP = new RegExp('^' + DATE + 'T' + TIME + '(?:Z|[-+]' + HOUR + ':' + MINUTE + ')', 'i')
40
-
41
- const SRID = 'SRID=(\\d{1,8});'
42
- const NUMBER = '[-+]?\\d+(?:\\.\\d+)?(?:[Ee][-+]?\\d+)?'
43
- // A geo position is given by two space-separated numbers, like "1.23 4.56E-1".
44
- const POSITION = '(?:' + NUMBER + ' ' + NUMBER + ')'
45
- // A geo line is a comma-separated list of positions, like "1 2,3 4,5 6".
46
- const LINE = '(?:' + POSITION + '?(?:,' + POSITION + ')*)'
47
- // A geo multiposition is a comma-separated list of positions, each in parentheses, like "(1 2),(3 4),(5 6)".
48
- const MULTI_POSITION = '(?:(?:\\(' + POSITION + '\\))?(?:,\\(' + POSITION + '\\))*)'
49
- // A geo multiline is a comma-separated list of lines, each in parentheses, like "(1 1,2 2),(3 3,4 4)".
50
- // A geo polygon has exactly the same coordinate representation as a geo multiline.
51
- const MULTI_LINE = '(?:(?:\\(' + LINE + '\\))?(?:,\\(' + LINE + '\\))*)'
52
- // A geo multipolygon is a comma-separated list of multilines, each in parentheses, like
53
- // "((-1 -2,1 -2,1 2,-1 2,-1 -2),(-5 -10,-5 10,5 10,5 -10,-5 -10)),((-1 -2,-3 -4,-5 -6,-1 -2))".
54
- const MULTI_POLYGON = '(?:(?:\\(' + MULTI_LINE + '\\))?(?:,\\(' + MULTI_LINE + '\\))*)'
55
- // A geo literal is one of position, line, multiposition, multiline, multipolygon,
56
- // enclosed in parentheses and prefixed with a type name.
57
- const GEO_LITERAL =
58
- '(?:(?:Point\\(' +
59
- POSITION +
60
- '\\))' +
61
- '|(?:LineString\\(' +
62
- LINE +
63
- '\\))' +
64
- '|(?:Polygon\\(' +
65
- MULTI_LINE +
66
- '\\))' +
67
- '|(?:MultiPoint\\(' +
68
- MULTI_POSITION +
69
- '\\))' +
70
- '|(?:MultiLineString\\(' +
71
- MULTI_LINE +
72
- '\\))' +
73
- '|(?:MultiPolygon\\(' +
74
- MULTI_POLYGON +
75
- '\\)))'
76
- // A multigeoliteral (used for a collection) is a comma-separated list of geo literals.
77
- const MULTI_GEO_LITERAL = '(?:' + GEO_LITERAL + '?(?:,' + GEO_LITERAL + ')*)'
78
- // The validation regular expressions for geo literals must be all case-insensitive.
79
- // They are built as sequence of an SRID definition, a type name, and the coordinates;
80
- // the coordinates are enclosed in parentheses.
81
- const GEO_POINT_REGEXP = new RegExp('^' + SRID + 'Point\\(' + POSITION + '\\)', 'i')
82
- const GEO_LINE_STRING_REGEXP = new RegExp('^' + SRID + 'LineString\\(' + LINE + '\\)', 'i')
83
- const GEO_POLYGON_REGEXP = new RegExp('^' + SRID + 'Polygon\\(' + MULTI_LINE + '\\)', 'i')
84
- const GEO_MULTI_POINT_REGEXP = new RegExp('^' + SRID + 'MultiPoint\\(' + MULTI_POSITION + '\\)', 'i')
85
- const GEO_MULTI_LINE_STRING_REGEXP = new RegExp('^' + SRID + 'MultiLineString\\(' + MULTI_LINE + '\\)', 'i')
86
- const GEO_MULTI_POLYGON_REGEXP = new RegExp('^' + SRID + 'MultiPolygon\\(' + MULTI_POLYGON + '\\)', 'i')
87
- const GEO_COLLECTION_REGEXP = new RegExp('^' + SRID + 'Collection\\(' + MULTI_GEO_LITERAL + '\\)', 'i')
88
-
89
- const JSON_STRING_REGEXP = new RegExp('^"(?:(?:\\\\(?:[btnfr"/\\\\]|u' + HEX_DIGIT + '{4}))|[^\\\\"])*"')
90
-
91
- // A search word is a sequence of one or more non-whitespace characters, excluding
92
- // parentheses, double-quotes, and semicolons. It must not start with a single quote.
93
- const WORD_REGEXP = new RegExp('^[^\\s()";\'][^\\s()";]*', 'u')
94
- // A search phrase is a doublequoted string with backslash-escaped backslashes and doublequotes.
95
- const PHRASE_REGEXP = new RegExp('^"(?:[^\\\\"]|\\\\[\\\\"])*"')
96
-
97
- /**
98
- * <p>Simple OData URI tokenizer that works on a given string by keeping an index.</p>
99
- * <p>As far as feasible, it tries to work on regular-expression basis,
100
- * assuming this to be faster than character operations.
101
- * Since only the index is 'moved', backing out while parsing a token is easy and used throughout.
102
- * There is intentionally no method to push back tokens
103
- * (although it would be easy to add such a method)
104
- * because this tokenizer should behave like a classical token-consuming tokenizer.
105
- * There is, however, the possibility to save the current state and return to it later.</p>
106
- * <p>Whitespace is not an extra token but consumed with the tokens that require whitespace.
107
- * Optional whitespace is not supported.</p>
108
- */
109
- class UriTokenizer {
110
- /**
111
- * Constructor which accepts the URI string.
112
- * @param {string} parseString the URI string
113
- */
114
- constructor (parseString) {
115
- this._index = 0
116
- this._parseString = parseString || ''
117
- this._startIndex = 0
118
- this._savedStartIndex = null
119
- this._savedIndex = null
120
- }
121
-
122
- /**
123
- * Save the current state.
124
- *
125
- * @see #returnToSavedState()
126
- */
127
- saveState () {
128
- this._savedStartIndex = this._startIndex
129
- this._savedIndex = this._index
130
- }
131
-
132
- /**
133
- * Return to the previously saved state.
134
- *
135
- * @see #saveState()
136
- */
137
- returnToSavedState () {
138
- this._startIndex = this._savedStartIndex
139
- this._index = this._savedIndex
140
- }
141
-
142
- /**
143
- * Return the whole parse string.
144
- * @returns {string} the parse string
145
- */
146
- getParseString () {
147
- return this._parseString
148
- }
149
-
150
- /**
151
- * Return the current position in the parse string.
152
- * @returns {number} position, starting at 1
153
- */
154
- getPosition () {
155
- return this._index + 1
156
- }
157
-
158
- /**
159
- * Return the string value corresponding to the last successful {@link #next(TokenKind)} call.
160
- * @returns {string} the token text
161
- */
162
- getText () {
163
- return this._parseString.substring(this._startIndex, this._index)
164
- }
165
-
166
- /**
167
- * Try to find a token of the given token kind at the current index.
168
- * The order in which this method is called with different token kinds is important,
169
- * not only for performance reasons but also if tokens can start with the same characters
170
- * (e.g., a qualified name starts with an OData identifier).
171
- * The index is advanced to the end of this token if the token is found.
172
- *
173
- * @param {UriTokenizer.TokenKind} allowedTokenKind the kind of token to expect
174
- * @returns {boolean} <code>true</code> if the token is found; <code>false</code> otherwise
175
- * @see #getText()
176
- */
177
- next (allowedTokenKind) {
178
- if (!allowedTokenKind) {
179
- return false
180
- }
181
-
182
- const previousIndex = this._index
183
-
184
- let found = false
185
- switch (allowedTokenKind) {
186
- case UriTokenizer.TokenKind.EOF:
187
- found = this._nextEOF()
188
- break
189
-
190
- // Constants
191
- case UriTokenizer.TokenKind.REF:
192
- found = this._nextConstant('$ref')
193
- break
194
- case UriTokenizer.TokenKind.VALUE:
195
- found = this._nextConstant('$value')
196
- break
197
- case UriTokenizer.TokenKind.COUNT:
198
- found = this._nextConstant('$count')
199
- break
200
- case UriTokenizer.TokenKind.METADATA:
201
- found = this._nextConstant('$metadata')
202
- break
203
- case UriTokenizer.TokenKind.BATCH:
204
- found = this._nextConstant('$batch')
205
- break
206
- case UriTokenizer.TokenKind.CROSSJOIN:
207
- found = this._nextConstant('$crossjoin')
208
- break
209
- case UriTokenizer.TokenKind.ALL:
210
- found = this._nextConstant('$all')
211
- break
212
- case UriTokenizer.TokenKind.ENTITY:
213
- found = this._nextConstant('$entity')
214
- break
215
- case UriTokenizer.TokenKind.ROOT:
216
- found = this._nextConstant('$root')
217
- break
218
- case UriTokenizer.TokenKind.IT:
219
- found = this._nextConstant('$it')
220
- break
221
-
222
- case UriTokenizer.TokenKind.APPLY:
223
- found = this._nextConstant('$apply')
224
- break
225
- case UriTokenizer.TokenKind.EXPAND:
226
- found = this._nextConstant('$expand')
227
- break
228
- case UriTokenizer.TokenKind.FILTER:
229
- found = this._nextConstant('$filter')
230
- break
231
- case UriTokenizer.TokenKind.LEVELS:
232
- found = this._nextConstant('$levels')
233
- break
234
- case UriTokenizer.TokenKind.ORDERBY:
235
- found = this._nextConstant('$orderby')
236
- break
237
- case UriTokenizer.TokenKind.SEARCH:
238
- found = this._nextConstant('$search')
239
- break
240
- case UriTokenizer.TokenKind.SELECT:
241
- found = this._nextConstant('$select')
242
- break
243
- case UriTokenizer.TokenKind.SKIP:
244
- found = this._nextConstant('$skip')
245
- break
246
- case UriTokenizer.TokenKind.TOP:
247
- found = this._nextConstant('$top')
248
- break
249
-
250
- case UriTokenizer.TokenKind.LAMBDA_ANY:
251
- found = this._nextConstant('any')
252
- break
253
- case UriTokenizer.TokenKind.LAMBDA_ALL:
254
- found = this._nextConstant('all')
255
- break
256
-
257
- case UriTokenizer.TokenKind.OPEN:
258
- found = this._nextCharacter('(')
259
- break
260
- case UriTokenizer.TokenKind.CLOSE:
261
- found = this._nextCharacter(')')
262
- break
263
- case UriTokenizer.TokenKind.COMMA:
264
- found = this._nextCharacter(',')
265
- break
266
- case UriTokenizer.TokenKind.SEMI:
267
- found = this._nextCharacter(';')
268
- break
269
- case UriTokenizer.TokenKind.COLON:
270
- found = this._nextCharacter(':')
271
- break
272
- case UriTokenizer.TokenKind.DOT:
273
- found = this._nextCharacter('.')
274
- break
275
- case UriTokenizer.TokenKind.SLASH:
276
- found = this._nextCharacter('/')
277
- break
278
- case UriTokenizer.TokenKind.EQ:
279
- found = this._nextCharacter('=')
280
- break
281
- case UriTokenizer.TokenKind.STAR:
282
- found = this._nextCharacter('*')
283
- break
284
- case UriTokenizer.TokenKind.PLUS:
285
- found = this._nextCharacter('+')
286
- break
287
-
288
- case UriTokenizer.TokenKind.NULL:
289
- found = this._nextConstant('null')
290
- break
291
- case UriTokenizer.TokenKind.MAX:
292
- found = this._nextConstant('max')
293
- break
294
-
295
- case UriTokenizer.TokenKind.AVERAGE:
296
- found = this._nextConstant('average')
297
- break
298
- case UriTokenizer.TokenKind.COUNTDISTINCT:
299
- found = this._nextConstant('countdistinct')
300
- break
301
- case UriTokenizer.TokenKind.IDENTITY:
302
- found = this._nextConstant('identity')
303
- break
304
- case UriTokenizer.TokenKind.MIN:
305
- found = this._nextConstant('min')
306
- break
307
- case UriTokenizer.TokenKind.SUM:
308
- found = this._nextConstant('sum')
309
- break
310
-
311
- // Identifiers
312
- case UriTokenizer.TokenKind.ODataIdentifier:
313
- found = this._nextWithRegularExpression(IDENTIFIER_REGEXP)
314
- break
315
- case UriTokenizer.TokenKind.QualifiedName:
316
- found = this._nextWithRegularExpression(QUALIFIED_NAME_REGEXP)
317
- break
318
- case UriTokenizer.TokenKind.ParameterAliasName:
319
- found = this._nextWithRegularExpression(PARAMETER_ALIAS_NAME_REGEXP)
320
- break
321
-
322
- // Primitive Values
323
- case UriTokenizer.TokenKind.BooleanValue:
324
- found = this._nextWithRegularExpression(BOOLEAN_VALUE_REGEXP)
325
- break
326
- case UriTokenizer.TokenKind.StringValue:
327
- found = this._nextWithRegularExpression(STRING_REGEXP)
328
- break
329
- case UriTokenizer.TokenKind.IntegerValue:
330
- found = this._nextIntegerValue()
331
- break
332
- case UriTokenizer.TokenKind.UnsignedIntegerValue:
333
- found = this._nextWithRegularExpression(UNSIGNED_INTEGER_VALUE_REGEXP)
334
- break
335
- case UriTokenizer.TokenKind.GuidValue:
336
- found = this._nextWithRegularExpression(GUID_VALUE_REGEXP)
337
- break
338
- case UriTokenizer.TokenKind.DateValue:
339
- found = this._nextWithRegularExpression(DATE_REGEXP)
340
- break
341
- case UriTokenizer.TokenKind.DateTimeOffsetValue:
342
- found = this._nextWithRegularExpression(DATE_TIME_OFFSET_REGEXP)
343
- break
344
- case UriTokenizer.TokenKind.TimeOfDayValue:
345
- found = this._nextWithRegularExpression(TIME_OF_DAY_REGEXP)
346
- break
347
- case UriTokenizer.TokenKind.DecimalValue:
348
- found = this._nextDecimalValue()
349
- break
350
- case UriTokenizer.TokenKind.DoubleValue:
351
- found = this._nextDoubleValue()
352
- break
353
- case UriTokenizer.TokenKind.DurationValue:
354
- found = this._nextWithRegularExpression(DURATION_REGEXP)
355
- break
356
- case UriTokenizer.TokenKind.BinaryValue:
357
- found = this._nextWithRegularExpression(BINARY_VALUE_REGEXP)
358
- break
359
- case UriTokenizer.TokenKind.EnumValue:
360
- found = this._nextEnumValue()
361
- break
362
-
363
- // Geo Values
364
- case UriTokenizer.TokenKind.GeographyPoint:
365
- found = this._nextGeoValue(true, GEO_POINT_REGEXP)
366
- break
367
- case UriTokenizer.TokenKind.GeometryPoint:
368
- found = this._nextGeoValue(false, GEO_POINT_REGEXP)
369
- break
370
- case UriTokenizer.TokenKind.GeographyLineString:
371
- found = this._nextGeoValue(true, GEO_LINE_STRING_REGEXP)
372
- break
373
- case UriTokenizer.TokenKind.GeometryLineString:
374
- found = this._nextGeoValue(false, GEO_LINE_STRING_REGEXP)
375
- break
376
- case UriTokenizer.TokenKind.GeographyPolygon:
377
- found = this._nextGeoValue(true, GEO_POLYGON_REGEXP)
378
- break
379
- case UriTokenizer.TokenKind.GeometryPolygon:
380
- found = this._nextGeoValue(false, GEO_POLYGON_REGEXP)
381
- break
382
- case UriTokenizer.TokenKind.GeographyMultiPoint:
383
- found = this._nextGeoValue(true, GEO_MULTI_POINT_REGEXP)
384
- break
385
- case UriTokenizer.TokenKind.GeometryMultiPoint:
386
- found = this._nextGeoValue(false, GEO_MULTI_POINT_REGEXP)
387
- break
388
- case UriTokenizer.TokenKind.GeographyMultiLineString:
389
- found = this._nextGeoValue(true, GEO_MULTI_LINE_STRING_REGEXP)
390
- break
391
- case UriTokenizer.TokenKind.GeometryMultiLineString:
392
- found = this._nextGeoValue(false, GEO_MULTI_LINE_STRING_REGEXP)
393
- break
394
- case UriTokenizer.TokenKind.GeographyMultiPolygon:
395
- found = this._nextGeoValue(true, GEO_MULTI_POLYGON_REGEXP)
396
- break
397
- case UriTokenizer.TokenKind.GeometryMultiPolygon:
398
- found = this._nextGeoValue(false, GEO_MULTI_POLYGON_REGEXP)
399
- break
400
- case UriTokenizer.TokenKind.GeographyCollection:
401
- found = this._nextGeoValue(true, GEO_COLLECTION_REGEXP)
402
- break
403
- case UriTokenizer.TokenKind.GeometryCollection:
404
- found = this._nextGeoValue(false, GEO_COLLECTION_REGEXP)
405
- break
406
-
407
- // Complex or Collection Value
408
- case UriTokenizer.TokenKind.jsonArrayOrObject:
409
- found = this._nextJsonArrayOrObject()
410
- break
411
-
412
- // Search
413
- case UriTokenizer.TokenKind.Word:
414
- found = this._nextWord()
415
- break
416
- case UriTokenizer.TokenKind.Phrase:
417
- found = this._nextWithRegularExpression(PHRASE_REGEXP)
418
- break
419
-
420
- // Operators in Search Expressions
421
- case UriTokenizer.TokenKind.OrOperatorSearch:
422
- found = this._nextBinaryOperator('OR')
423
- break
424
- case UriTokenizer.TokenKind.AndOperatorSearch:
425
- found = this._nextAndOperatorSearch()
426
- break
427
- case UriTokenizer.TokenKind.NotOperatorSearch:
428
- found = this._nextUnaryOperator('NOT')
429
- break
430
-
431
- // Operators
432
- case UriTokenizer.TokenKind.OrOperator:
433
- found = this._nextBinaryOperator('or')
434
- break
435
- case UriTokenizer.TokenKind.AndOperator:
436
- found = this._nextBinaryOperator('and')
437
- break
438
- case UriTokenizer.TokenKind.EqualsOperator:
439
- found = this._nextBinaryOperator('eq')
440
- break
441
- case UriTokenizer.TokenKind.NotEqualsOperator:
442
- found = this._nextBinaryOperator('ne')
443
- break
444
- case UriTokenizer.TokenKind.GreaterThanOperator:
445
- found = this._nextBinaryOperator('gt')
446
- break
447
- case UriTokenizer.TokenKind.GreaterThanOrEqualsOperator:
448
- found = this._nextBinaryOperator('ge')
449
- break
450
- case UriTokenizer.TokenKind.LessThanOperator:
451
- found = this._nextBinaryOperator('lt')
452
- break
453
- case UriTokenizer.TokenKind.LessThanOrEqualsOperator:
454
- found = this._nextBinaryOperator('le')
455
- break
456
- case UriTokenizer.TokenKind.HasOperator:
457
- found = this._nextBinaryOperator('has')
458
- break
459
- case UriTokenizer.TokenKind.AddOperator:
460
- found = this._nextBinaryOperator('add')
461
- break
462
- case UriTokenizer.TokenKind.SubOperator:
463
- found = this._nextBinaryOperator('sub')
464
- break
465
- case UriTokenizer.TokenKind.MulOperator:
466
- found = this._nextBinaryOperator('mul')
467
- break
468
- case UriTokenizer.TokenKind.DivOperator:
469
- found = this._nextBinaryOperator('div')
470
- break
471
- case UriTokenizer.TokenKind.ModOperator:
472
- found = this._nextBinaryOperator('mod')
473
- break
474
- case UriTokenizer.TokenKind.MinusOperator:
475
- found = this._nextMinusOperator()
476
- break
477
- case UriTokenizer.TokenKind.NotOperator:
478
- found = this._nextUnaryOperator('not')
479
- break
480
-
481
- // Operators for the aggregation extension
482
- case UriTokenizer.TokenKind.AsOperator:
483
- found = this._nextBinaryOperator('as')
484
- break
485
- case UriTokenizer.TokenKind.FromOperator:
486
- found = this._nextBinaryOperator('from')
487
- break
488
- case UriTokenizer.TokenKind.WithOperator:
489
- found = this._nextBinaryOperator('with')
490
- break
491
-
492
- // Methods
493
- case UriTokenizer.TokenKind.CastMethod:
494
- found = this._nextMethod('cast')
495
- break
496
- case UriTokenizer.TokenKind.CeilingMethod:
497
- found = this._nextMethod('ceiling')
498
- break
499
- case UriTokenizer.TokenKind.ConcatMethod:
500
- found = this._nextMethod('concat')
501
- break
502
- case UriTokenizer.TokenKind.ContainsMethod:
503
- found = this._nextMethod('contains')
504
- break
505
- case UriTokenizer.TokenKind.DateMethod:
506
- found = this._nextMethod('date')
507
- break
508
- case UriTokenizer.TokenKind.DayMethod:
509
- found = this._nextMethod('day')
510
- break
511
- case UriTokenizer.TokenKind.EndswithMethod:
512
- found = this._nextMethod('endswith')
513
- break
514
- case UriTokenizer.TokenKind.FloorMethod:
515
- found = this._nextMethod('floor')
516
- break
517
- case UriTokenizer.TokenKind.FractionalsecondsMethod:
518
- found = this._nextMethod('fractionalseconds')
519
- break
520
- case UriTokenizer.TokenKind.GeoDistanceMethod:
521
- found = this._nextMethod('geo.distance')
522
- break
523
- case UriTokenizer.TokenKind.GeoIntersectsMethod:
524
- found = this._nextMethod('geo.intersects')
525
- break
526
- case UriTokenizer.TokenKind.GeoLengthMethod:
527
- found = this._nextMethod('geo.length')
528
- break
529
- case UriTokenizer.TokenKind.HourMethod:
530
- found = this._nextMethod('hour')
531
- break
532
- case UriTokenizer.TokenKind.IndexofMethod:
533
- found = this._nextMethod('indexof')
534
- break
535
- case UriTokenizer.TokenKind.IsofMethod:
536
- found = this._nextMethod('isof')
537
- break
538
- case UriTokenizer.TokenKind.LengthMethod:
539
- found = this._nextMethod('length')
540
- break
541
- case UriTokenizer.TokenKind.MaxdatetimeMethod:
542
- found = this._nextMethod('maxdatetime')
543
- break
544
- case UriTokenizer.TokenKind.MindatetimeMethod:
545
- found = this._nextMethod('mindatetime')
546
- break
547
- case UriTokenizer.TokenKind.MinuteMethod:
548
- found = this._nextMethod('minute')
549
- break
550
- case UriTokenizer.TokenKind.MonthMethod:
551
- found = this._nextMethod('month')
552
- break
553
- case UriTokenizer.TokenKind.NowMethod:
554
- found = this._nextMethod('now')
555
- break
556
- case UriTokenizer.TokenKind.RoundMethod:
557
- found = this._nextMethod('round')
558
- break
559
- case UriTokenizer.TokenKind.SecondMethod:
560
- found = this._nextMethod('second')
561
- break
562
- case UriTokenizer.TokenKind.StartswithMethod:
563
- found = this._nextMethod('startswith')
564
- break
565
- case UriTokenizer.TokenKind.SubstringMethod:
566
- found = this._nextMethod('substring')
567
- break
568
- case UriTokenizer.TokenKind.TimeMethod:
569
- found = this._nextMethod('time')
570
- break
571
- case UriTokenizer.TokenKind.TolowerMethod:
572
- found = this._nextMethod('tolower')
573
- break
574
- case UriTokenizer.TokenKind.TotaloffsetminutesMethod:
575
- found = this._nextMethod('totaloffsetminutes')
576
- break
577
- case UriTokenizer.TokenKind.TotalsecondsMethod:
578
- found = this._nextMethod('totalseconds')
579
- break
580
- case UriTokenizer.TokenKind.ToupperMethod:
581
- found = this._nextMethod('toupper')
582
- break
583
- case UriTokenizer.TokenKind.TrimMethod:
584
- found = this._nextMethod('trim')
585
- break
586
- case UriTokenizer.TokenKind.YearMethod:
587
- found = this._nextMethod('year')
588
- break
589
-
590
- // Method for the aggregation extension
591
- case UriTokenizer.TokenKind.IsDefinedMethod:
592
- found = this._nextMethod('isdefined')
593
- break
594
-
595
- // Transformations for the aggregation extension
596
- case UriTokenizer.TokenKind.AggregateTrafo:
597
- found = this._nextMethod('aggregate')
598
- break
599
- case UriTokenizer.TokenKind.BottomCountTrafo:
600
- found = this._nextMethod('bottomcount')
601
- break
602
- case UriTokenizer.TokenKind.BottomPercentTrafo:
603
- found = this._nextMethod('bottompercent')
604
- break
605
- case UriTokenizer.TokenKind.BottomSumTrafo:
606
- found = this._nextMethod('bottomsum')
607
- break
608
- case UriTokenizer.TokenKind.ComputeTrafo:
609
- found = this._nextMethod('compute')
610
- break
611
- case UriTokenizer.TokenKind.ExpandTrafo:
612
- found = this._nextMethod('expand')
613
- break
614
- case UriTokenizer.TokenKind.FilterTrafo:
615
- found = this._nextMethod('filter')
616
- break
617
- case UriTokenizer.TokenKind.GroupByTrafo:
618
- found = this._nextMethod('groupby')
619
- break
620
- case UriTokenizer.TokenKind.OrderByTrafo:
621
- found = this._nextMethod('orderby')
622
- break
623
- case UriTokenizer.TokenKind.SearchTrafo:
624
- found = this._nextMethod('search')
625
- break
626
- case UriTokenizer.TokenKind.SkipTrafo:
627
- found = this._nextMethod('skip')
628
- break
629
- case UriTokenizer.TokenKind.TopTrafo:
630
- found = this._nextMethod('top')
631
- break
632
- case UriTokenizer.TokenKind.TopCountTrafo:
633
- found = this._nextMethod('topcount')
634
- break
635
- case UriTokenizer.TokenKind.TopPercentTrafo:
636
- found = this._nextMethod('toppercent')
637
- break
638
- case UriTokenizer.TokenKind.TopSumTrafo:
639
- found = this._nextMethod('topsum')
640
- break
641
-
642
- // Roll-up specification for the aggregation extension
643
- case UriTokenizer.TokenKind.RollUpSpec:
644
- found = this._nextMethod('rollup')
645
- break
646
-
647
- // Suffixes
648
- case UriTokenizer.TokenKind.AscSuffix:
649
- found = this._nextSuffix('asc')
650
- break
651
- case UriTokenizer.TokenKind.DescSuffix:
652
- found = this._nextSuffix('desc')
653
- break
654
-
655
- default:
656
- }
657
-
658
- if (found) {
659
- this._startIndex = previousIndex
660
- } else {
661
- this._index = previousIndex
662
- }
663
- return found
664
- }
665
-
666
- /**
667
- * Determine whether the index is at the end of the string to be parsed; leave the index unchanged.
668
- * @returns {boolean} whether the current index is at the end of the string to be parsed
669
- * @private
670
- */
671
- _nextEOF () {
672
- return this._index >= this._parseString.length
673
- }
674
-
675
- /**
676
- * Move past the given string constant if found; otherwise leave the index unchanged.
677
- * @param {string} constant the string constant
678
- * @returns {boolean} whether the constant has been found at the current index
679
- * @private
680
- */
681
- _nextConstant (constant, caseInsensitive) {
682
- if ((caseInsensitive ? this._parseString.toLowerCase() : this._parseString).startsWith(constant, this._index)) {
683
- this._index += constant.length
684
- return true
685
- }
686
- return false
687
- }
688
-
689
- /**
690
- * Move past the given regular expression, if found; otherwise leave the index unchanged.
691
- * @param {RegExp} regexp the regular expression
692
- * @returns {boolean} whether the regular expression has been found at the current index
693
- * @private
694
- */
695
- _nextWithRegularExpression (regexp) {
696
- const matched = this._parseString.substring(this._index).match(regexp)
697
- if (!matched) return false
698
- this._index += matched[0].length
699
- return true
700
- }
701
-
702
- /**
703
- * Move past the given character if found; otherwise leave the index unchanged.
704
- * @param {string} character the character
705
- * @returns {boolean} whether the given character has been found at the current index
706
- * @private
707
- */
708
- _nextCharacter (character) {
709
- if (this._index < this._parseString.length && this._parseString.charAt(this._index) === character) {
710
- this._index++
711
- return true
712
- }
713
- return false
714
- }
715
-
716
- /**
717
- * Move past a digit character ('0' to '9') if found; otherwise leave the index unchanged.
718
- * @returns {boolean} whether a digit character has been found at the current index
719
- * @private
720
- */
721
- _nextDigit () {
722
- if (this._index < this._parseString.length) {
723
- const code = this._parseString.charAt(this._index)
724
- if (code >= '0' && code <= '9') {
725
- this._index++
726
- return true
727
- }
728
- }
729
- return false
730
- }
731
-
732
- /**
733
- * Move past whitespace (space or horizontal tabulator) characters if found; otherwise leave the index unchanged.
734
- * @returns {boolean} whether whitespace characters have been found at the current index
735
- * @private
736
- */
737
- _nextWhitespace () {
738
- let count = 0
739
- while (this._nextCharacter(' ') || this._nextCharacter('\t')) count++
740
- return count > 0
741
- }
742
-
743
- /**
744
- * Move past the given whitespace-surrounded operator constant if found.
745
- * @param {string} operator the name of the operator
746
- * @returns {boolean} whether the operator has been found at the current index
747
- * @private
748
- */
749
- _nextBinaryOperator (operator) {
750
- return this._nextWhitespace() && this._nextConstant(operator) && this._nextWhitespace()
751
- }
752
-
753
- /**
754
- * Move past the given whitespace-suffixed operator constant if found.
755
- * @param {string} operator the name of the operator
756
- * @returns {boolean} whether the operator has been found at the current index
757
- * @private
758
- */
759
- _nextUnaryOperator (operator) {
760
- return this._nextConstant(operator) && this._nextWhitespace()
761
- }
762
-
763
- /**
764
- * Move past the minus operator if found.
765
- * @returns {boolean} whether the operator has been found at the current index
766
- * @private
767
- */
768
- _nextMinusOperator () {
769
- // In order to avoid unnecessary minus operators for negative numbers,
770
- // we have to check what follows the minus sign.
771
- return this._nextCharacter('-') && !this._nextDigit() && !this._nextConstant('INF')
772
- }
773
-
774
- /**
775
- * Move past the given method name and its immediately following opening parenthesis if found.
776
- * @param {string} methodName the name of the method
777
- * @returns {boolean} whether the method has been found at the current index
778
- * @private
779
- */
780
- _nextMethod (methodName) {
781
- return this._nextConstant(methodName, true) && this._nextCharacter('(')
782
- }
783
-
784
- /**
785
- * Move past (required) whitespace and the given suffix name if found.
786
- * @param {string} suffixName the name of the suffix
787
- * @returns {boolean} whether the suffix has been found at the current index
788
- * @private
789
- */
790
- _nextSuffix (suffixName) {
791
- return this._nextWhitespace() && this._nextConstant(suffixName)
792
- }
793
-
794
- /**
795
- * Move past an integer value if found; otherwise leave the index unchanged.
796
- * @returns {boolean} whether an integer value has been found at the current index
797
- * @private
798
- */
799
- _nextIntegerValue () {
800
- return this._nextWithRegularExpression(INTEGER_VALUE_REGEXP)
801
- }
802
-
803
- /**
804
- * Move past a decimal value with a fractional part if found; otherwise leave the index unchanged.
805
- * Whole numbers must be found with {@link #nextIntegerValue()}.
806
- *
807
- * @returns {boolean} whether a decimal value has been found at the current index
808
- * @private
809
- */
810
- _nextDecimalValue () {
811
- return this._nextWithRegularExpression(DECIMAL_VALUE_REGEXP)
812
- }
813
-
814
- /**
815
- * Move past a floating-point-number value with an exponential part
816
- * or one of the special constants 'NaN', '-INF', and 'INF' if found;
817
- * otherwise leave the index unchanged.
818
- * Whole numbers must be found with {@link #nextIntegerValue()}.
819
- * Decimal numbers must be found with {@link #nextDecimalValue()}.
820
- *
821
- * @returns {boolean} whether a double value has been found at the current index
822
- * @private
823
- */
824
- _nextDoubleValue () {
825
- return this._nextWithRegularExpression(DOUBLE_VALUE_REGEXP)
826
- }
827
-
828
- /**
829
- * Move past an enumeration-type value if found; otherwise leave the index unchanged.
830
- * @returns {boolean} whether an enumeration-type value has been found at the current index
831
- * @private
832
- */
833
- _nextEnumValue () {
834
- const lastGoodIndex = this._index
835
- if (this._nextWithRegularExpression(QUALIFIED_NAME_REGEXP) && this._nextCharacter("'")) {
836
- do {
837
- if (!(this._nextWithRegularExpression(IDENTIFIER_REGEXP) || this._nextIntegerValue(true))) {
838
- this._index = lastGoodIndex
839
- return false
840
- }
841
- } while (this._nextCharacter(','))
842
- if (this._nextCharacter("'")) return true
843
- }
844
- this._index = lastGoodIndex
845
- return false
846
- }
847
-
848
- /**
849
- * Move past a geography or geometry value if found.
850
- * @param {boolean} isGeography if true the suffix must be 'geography', if false it must be 'geometry'
851
- * @param {RegExp} regexp the regular expression for the value within the quotes
852
- * @returns {boolean} whether a geography/geometry value has been found at the current index
853
- * @private
854
- */
855
- _nextGeoValue (isGeography, regexp) {
856
- const prefix = isGeography ? 'geography' : 'geometry'
857
- if (
858
- this._index + prefix.length - 1 < this._parseString.length &&
859
- this._parseString.substring(this._index, this._index + prefix.length).toLowerCase() === prefix
860
- ) {
861
- this._index += prefix.length
862
- } else {
863
- return false
864
- }
865
- return this._nextCharacter("'") && this._nextWithRegularExpression(regexp) && this._nextCharacter("'")
866
- }
867
-
868
- /**
869
- * Move past a JSON string if found; otherwise leave the index unchanged.
870
- * @returns {boolean} whether a JSON string has been found at the current index
871
- * @private
872
- */
873
- _nextJsonString () {
874
- return this._nextWithRegularExpression(JSON_STRING_REGEXP)
875
- }
876
-
877
- /**
878
- * Move past a JSON value if found; otherwise leave the index unchanged.
879
- * @returns {boolean} whether a JSON value has been found at the current index
880
- * @private
881
- */
882
- _nextJsonValue () {
883
- return (
884
- this._nextConstant('null') ||
885
- this._nextConstant('true') ||
886
- this._nextConstant('false') ||
887
- this._nextDoubleValue() ||
888
- this._nextDecimalValue() ||
889
- this._nextIntegerValue() ||
890
- this._nextJsonString() ||
891
- this._nextJsonArrayOrObject()
892
- )
893
- }
894
-
895
- /**
896
- * Move past a JSON object member if found; otherwise leave the index unchanged.
897
- * @returns {boolean} whether a JSON object member has been found at the current index
898
- * @private
899
- */
900
- _nextJsonMember () {
901
- const lastGoodIndex = this._index
902
- if (this._nextJsonString() && this._nextCharacter(':') && this._nextJsonValue()) {
903
- return true
904
- }
905
- this._index = lastGoodIndex
906
- return false
907
- }
908
-
909
- /**
910
- * Move past a JSON array or object if found; otherwise leave the index unchanged.
911
- * @returns {boolean} whether a JSON array or object has been found at the current index
912
- * @private
913
- */
914
- _nextJsonArrayOrObject () {
915
- const lastGoodIndex = this._index
916
- if (this._nextCharacter('[')) {
917
- if (this._nextJsonValue()) {
918
- while (this._nextCharacter(',')) {
919
- if (!this._nextJsonValue()) {
920
- this._index = lastGoodIndex
921
- return false
922
- }
923
- }
924
- }
925
- if (this._nextCharacter(']')) return true
926
- this._index = lastGoodIndex
927
- return false
928
- } else if (this._nextCharacter('{')) {
929
- if (this._nextJsonMember()) {
930
- while (this._nextCharacter(',')) {
931
- if (!this._nextJsonMember()) {
932
- this._index = lastGoodIndex
933
- return false
934
- }
935
- }
936
- }
937
- if (this._nextCharacter('}')) return true
938
- this._index = lastGoodIndex
939
- return false
940
- }
941
-
942
- return false
943
- }
944
-
945
- /**
946
- * Move past a search operator AND if found.
947
- * @returns {boolean} whether the search operator AND has been found at the current index
948
- * @private
949
- */
950
- _nextAndOperatorSearch () {
951
- if (this._nextWhitespace()) {
952
- const lastGoodIndex = this._index
953
- if (this._nextUnaryOperator('OR')) return false
954
- if (!this._nextUnaryOperator('AND')) this._index = lastGoodIndex // implicit AND
955
- return true
956
- }
957
- return false
958
- }
959
-
960
- /**
961
- * Move past a search word if found.
962
- * @returns {boolean} whether a search word has been found at the current index
963
- * @private
964
- */
965
- _nextWord () {
966
- const lastGoodIndex = this._index
967
- if (this._nextWithRegularExpression(WORD_REGEXP)) {
968
- const word = this._parseString.substring(lastGoodIndex, this._index)
969
- if (word !== 'OR' && word !== 'AND' && word !== 'NOT') return true
970
- }
971
- this._index = lastGoodIndex
972
- return false
973
- }
974
-
975
- /**
976
- * Require the next requested token. If the next token is not of the requested kind an exception is thrown.
977
- * @param {UriTokenizer.TokenKind} tokenKind next token
978
- * @returns {boolean} true if reading next token was successful
979
- * @throws {UriSyntaxError} if the token has not been found
980
- */
981
- requireNext (tokenKind) {
982
- if (this.next(tokenKind)) return true
983
- throw new UriSyntaxError(UriSyntaxError.Message.TOKEN_REQUIRED, tokenKind, this._parseString, this.getPosition())
984
- }
985
- }
986
-
987
- UriTokenizer.TokenKind = {
988
- EOF: 'EOF', // signals the end of the string to be parsed
989
-
990
- // constant-value tokens (convention: uppercase)
991
- REF: 'REF',
992
- VALUE: 'VALUE',
993
- COUNT: 'COUNT',
994
- METADATA: 'METADATA',
995
- BATCH: 'BATCH',
996
- CROSSJOIN: 'CROSSJOIN',
997
- ALL: 'ALL',
998
- ENTITY: 'ENTITY',
999
- ROOT: 'ROOT',
1000
- IT: 'IT',
1001
-
1002
- APPLY: 'APPLY', // for the aggregation extension
1003
- EXPAND: 'EXPAND',
1004
- FILTER: 'FILTER',
1005
- LEVELS: 'LEVELS',
1006
- ORDERBY: 'ORDERBY',
1007
- SEARCH: 'SEARCH',
1008
- SELECT: 'SELECT',
1009
- SKIP: 'SKIP',
1010
- TOP: 'TOP',
1011
-
1012
- LAMBDA_ANY: 'LAMBDA_ANY',
1013
- LAMBDA_ALL: 'LAMBDA_ALL',
1014
-
1015
- OPEN: 'OPEN',
1016
- CLOSE: 'CLOSE',
1017
- COMMA: 'COMMA',
1018
- SEMI: 'SEMI',
1019
- COLON: 'COLON',
1020
- DOT: 'DOT',
1021
- SLASH: 'SLASH',
1022
- EQ: 'EQ',
1023
- STAR: 'STAR',
1024
- PLUS: 'PLUS',
1025
-
1026
- NULL: 'NULL',
1027
- MAX: 'MAX',
1028
-
1029
- AVERAGE: 'AVERAGE', // for the aggregation extension
1030
- COUNTDISTINCT: 'COUNTDISTINCT', // for the aggregation extension
1031
- IDENTITY: 'IDENTITY', // for the aggregation extension
1032
- MIN: 'MIN', // for the aggregation extension
1033
- SUM: 'SUM', // for the aggregation extension
1034
-
1035
- // variable-value tokens (convention: mixed case)
1036
- ODataIdentifier: 'ODataIdentifier',
1037
- QualifiedName: 'QualifiedName',
1038
- ParameterAliasName: 'ParameterAliasName',
1039
-
1040
- BooleanValue: 'BooleanValue',
1041
- StringValue: 'StringValue',
1042
- UnsignedIntegerValue: 'UnsignedIntegerValue',
1043
- IntegerValue: 'IntegerValue',
1044
- GuidValue: 'GuidValue',
1045
- DateValue: 'DateValue',
1046
- DateTimeOffsetValue: 'DateTimeOffsetValue',
1047
- TimeOfDayValue: 'TimeOfDayValue',
1048
- DecimalValue: 'DecimalValue',
1049
- DoubleValue: 'DoubleValue',
1050
- DurationValue: 'DurationValue',
1051
- BinaryValue: 'BinaryValue',
1052
- EnumValue: 'EnumValue',
1053
-
1054
- GeographyPoint: 'GeographyPoint',
1055
- GeometryPoint: 'GeometryPoint',
1056
- GeographyLineString: 'GeographyLineString',
1057
- GeometryLineString: 'GeometryLineString',
1058
- GeographyPolygon: 'GeographyPolygon',
1059
- GeometryPolygon: 'GeometryPolygon',
1060
- GeographyMultiPoint: 'GeographyMultiPoint',
1061
- GeometryMultiPoint: 'GeometryMultiPoint',
1062
- GeographyMultiLineString: 'GeographyMultiLineString',
1063
- GeometryMultiLineString: 'GeometryMultiLineString',
1064
- GeographyMultiPolygon: 'GeographyMultiPolygon',
1065
- GeometryMultiPolygon: 'GeometryMultiPolygon',
1066
- GeographyCollection: 'GeographyCollection',
1067
- GeometryCollection: 'GeometryCollection',
1068
-
1069
- jsonArrayOrObject: 'jsonArrayOrObject',
1070
-
1071
- Word: 'Word',
1072
- Phrase: 'Phrase',
1073
-
1074
- OrOperatorSearch: 'OrOperatorSearch',
1075
- AndOperatorSearch: 'AndOperatorSearch',
1076
- NotOperatorSearch: 'NotOperatorSearch',
1077
-
1078
- OrOperator: 'OrOperator',
1079
- AndOperator: 'AndOperator',
1080
- EqualsOperator: 'EqualsOperator',
1081
- NotEqualsOperator: 'NotEqualsOperator',
1082
- GreaterThanOperator: 'GreaterThanOperator',
1083
- GreaterThanOrEqualsOperator: 'GreaterThanOrEqualsOperator',
1084
- LessThanOperator: 'LessThanOperator',
1085
- LessThanOrEqualsOperator: 'LessThanOrEqualsOperator',
1086
- HasOperator: 'HasOperator',
1087
- AddOperator: 'AddOperator',
1088
- SubOperator: 'SubOperator',
1089
- MulOperator: 'MulOperator',
1090
- DivOperator: 'DivOperator',
1091
- ModOperator: 'ModOperator',
1092
- MinusOperator: 'MinusOperator',
1093
- NotOperator: 'NotOperator',
1094
-
1095
- AsOperator: 'AsOperator', // for the aggregation extension
1096
- FromOperator: 'FromOperator', // for the aggregation extension
1097
- WithOperator: 'WithOperator', // for the aggregation extension
1098
-
1099
- CastMethod: 'CastMethod',
1100
- CeilingMethod: 'CeilingMethod',
1101
- ConcatMethod: 'ConcatMethod',
1102
- ContainsMethod: 'ContainsMethod',
1103
- DateMethod: 'DateMethod',
1104
- DayMethod: 'DayMethod',
1105
- EndswithMethod: 'EndswithMethod',
1106
- FloorMethod: 'FloorMethod',
1107
- FractionalsecondsMethod: 'FractionalsecondsMethod',
1108
- GeoDistanceMethod: 'GeoDistanceMethod',
1109
- GeoIntersectsMethod: 'GeoIntersectsMethod',
1110
- GeoLengthMethod: 'GeoLengthMethod',
1111
- HourMethod: 'HourMethod',
1112
- IndexofMethod: 'IndexofMethod',
1113
- IsofMethod: 'IsofMethod',
1114
- LengthMethod: 'LengthMethod',
1115
- MaxdatetimeMethod: 'MaxdatetimeMethod',
1116
- MindatetimeMethod: 'MindatetimeMethod',
1117
- MinuteMethod: 'MinuteMethod',
1118
- MonthMethod: 'MonthMethod',
1119
- NowMethod: 'NowMethod',
1120
- RoundMethod: 'RoundMethod',
1121
- SecondMethod: 'SecondMethod',
1122
- StartswithMethod: 'StartswithMethod',
1123
- SubstringMethod: 'SubstringMethod',
1124
- TimeMethod: 'TimeMethod',
1125
- TolowerMethod: 'TolowerMethod',
1126
- TotaloffsetminutesMethod: 'TotaloffsetminutesMethod',
1127
- TotalsecondsMethod: 'TotalsecondsMethod',
1128
- ToupperMethod: 'ToupperMethod',
1129
- TrimMethod: 'TrimMethod',
1130
- YearMethod: 'YearMethod',
1131
-
1132
- IsDefinedMethod: 'IsDefinedMethod', // for the aggregation extension
1133
-
1134
- AggregateTrafo: 'AggregateTrafo', // for the aggregation extension
1135
- BottomCountTrafo: 'BottomCountTrafo', // for the aggregation extension
1136
- BottomPercentTrafo: 'BottomPercentTrafo', // for the aggregation extension
1137
- BottomSumTrafo: 'BottomSumTrafo', // for the aggregation extension
1138
- ComputeTrafo: 'ComputeTrafo', // for the aggregation extension
1139
- ExpandTrafo: 'ExpandTrafo', // for the aggregation extension
1140
- FilterTrafo: 'FilterTrafo', // for the aggregation extension
1141
- GroupByTrafo: 'GroupByTrafo', // for the aggregation extension
1142
- OrderByTrafo: 'OrderByTrafo', // for the aggregation extension
1143
- SearchTrafo: 'SearchTrafo', // for the aggregation extension
1144
- SkipTrafo: 'SkipTrafo', // for the aggregation extension
1145
- TopTrafo: 'TopTrafo', // for the aggregation extension
1146
- TopCountTrafo: 'TopCountTrafo', // for the aggregation extension
1147
- TopPercentTrafo: 'TopPercentTrafo', // for the aggregation extension
1148
- TopSumTrafo: 'TopSumTrafo', // for the aggregation extension
1149
-
1150
- RollUpSpec: 'RollUpSpec', // for the aggregation extension
1151
-
1152
- AscSuffix: 'AscSuffix',
1153
- DescSuffix: 'DescSuffix'
1154
- }
1155
-
1156
- module.exports = UriTokenizer