@sap/cds 8.9.4 → 9.0.3

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