@azure/cosmos 4.8.0 → 4.9.0

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 (689) hide show
  1. package/dist/browser/common/constants.d.ts.map +1 -1
  2. package/dist/browser/common/constants.js +16 -1
  3. package/dist/browser/common/constants.js.map +1 -1
  4. package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
  5. package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
  6. package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.js +84 -0
  7. package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
  8. package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
  9. package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
  10. package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.js +39 -0
  11. package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
  12. package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
  13. package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
  14. package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.js +4 -0
  15. package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
  16. package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
  17. package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
  18. package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +174 -0
  19. package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
  20. package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
  21. package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
  22. package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +28 -0
  23. package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
  24. package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
  25. package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
  26. package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +129 -0
  27. package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
  28. package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
  29. package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
  30. package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +66 -0
  31. package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
  32. package/dist/browser/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
  33. package/dist/browser/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
  34. package/dist/browser/queryExecutionContext/ContinuationTokenParser.js +23 -0
  35. package/dist/browser/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
  36. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
  37. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
  38. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  39. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
  40. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
  41. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  42. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
  43. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
  44. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  45. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
  46. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
  47. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  48. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
  49. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
  50. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  51. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
  52. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
  53. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
  54. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  55. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
  56. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
  57. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
  58. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  59. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
  60. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
  61. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  62. package/dist/browser/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
  63. package/dist/browser/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
  64. package/dist/browser/queryExecutionContext/LegacyFetchImplementation.js +55 -0
  65. package/dist/browser/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
  66. package/dist/browser/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
  67. package/dist/browser/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
  68. package/dist/browser/queryExecutionContext/PartitionRangeManager.js +156 -0
  69. package/dist/browser/queryExecutionContext/PartitionRangeManager.js.map +1 -0
  70. package/dist/browser/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
  71. package/dist/browser/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
  72. package/dist/browser/queryExecutionContext/PartitionRangeUtils.js +105 -0
  73. package/dist/browser/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
  74. package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
  75. package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
  76. package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.js +93 -0
  77. package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
  78. package/dist/browser/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
  79. package/dist/browser/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
  80. package/dist/browser/queryExecutionContext/QueryValidationHelper.js +65 -0
  81. package/dist/browser/queryExecutionContext/QueryValidationHelper.js.map +1 -0
  82. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
  83. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
  84. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
  85. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  86. package/dist/browser/queryExecutionContext/documentProducer.d.ts +9 -3
  87. package/dist/browser/queryExecutionContext/documentProducer.d.ts.map +1 -1
  88. package/dist/browser/queryExecutionContext/documentProducer.js +17 -4
  89. package/dist/browser/queryExecutionContext/documentProducer.js.map +1 -1
  90. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
  91. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
  92. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
  93. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  94. package/dist/browser/queryExecutionContext/index.d.ts +7 -0
  95. package/dist/browser/queryExecutionContext/index.d.ts.map +1 -1
  96. package/dist/browser/queryExecutionContext/index.js +4 -0
  97. package/dist/browser/queryExecutionContext/index.js.map +1 -1
  98. package/dist/browser/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
  99. package/dist/browser/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
  100. package/dist/browser/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
  101. package/dist/browser/queryExecutionContext/orderByComparator.d.ts +11 -2
  102. package/dist/browser/queryExecutionContext/orderByComparator.d.ts.map +1 -1
  103. package/dist/browser/queryExecutionContext/orderByComparator.js +20 -3
  104. package/dist/browser/queryExecutionContext/orderByComparator.js.map +1 -1
  105. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
  106. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
  107. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
  108. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  109. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
  110. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
  111. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
  112. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  113. package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
  114. package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
  115. package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
  116. package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
  117. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
  118. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
  119. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
  120. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  121. package/dist/browser/queryExecutionContext/parallelQueryResult.d.ts +35 -0
  122. package/dist/browser/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
  123. package/dist/browser/queryExecutionContext/parallelQueryResult.js +23 -0
  124. package/dist/browser/queryExecutionContext/parallelQueryResult.js.map +1 -0
  125. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
  126. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
  127. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
  128. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  129. package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
  130. package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
  131. package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +4 -0
  132. package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
  133. package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
  134. package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
  135. package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +310 -0
  136. package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
  137. package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
  138. package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
  139. package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +102 -0
  140. package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
  141. package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
  142. package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
  143. package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +180 -0
  144. package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
  145. package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
  146. package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
  147. package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +93 -0
  148. package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
  149. package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
  150. package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
  151. package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +4 -0
  152. package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
  153. package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
  154. package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
  155. package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +53 -0
  156. package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
  157. package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
  158. package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
  159. package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +34 -0
  160. package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
  161. package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
  162. package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
  163. package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +4 -0
  164. package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
  165. package/dist/browser/queryExecutionContext/queryRangeMapping.d.ts +22 -0
  166. package/dist/browser/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
  167. package/dist/browser/queryExecutionContext/queryRangeMapping.js +4 -0
  168. package/dist/browser/queryExecutionContext/queryRangeMapping.js.map +1 -0
  169. package/dist/browser/queryIterator.js.map +1 -1
  170. package/dist/browser/utils/offers.d.ts.map +1 -1
  171. package/dist/browser/utils/offers.js +0 -1
  172. package/dist/browser/utils/offers.js.map +1 -1
  173. package/dist/commonjs/common/constants.d.ts.map +1 -1
  174. package/dist/commonjs/common/constants.js +13 -2
  175. package/dist/commonjs/common/constants.js.map +1 -1
  176. package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
  177. package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
  178. package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js +93 -0
  179. package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
  180. package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
  181. package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
  182. package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js +44 -0
  183. package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
  184. package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
  185. package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
  186. package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js +5 -0
  187. package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
  188. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
  189. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
  190. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +178 -0
  191. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
  192. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
  193. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
  194. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +31 -0
  195. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
  196. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
  197. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
  198. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +133 -0
  199. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
  200. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
  201. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
  202. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +70 -0
  203. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
  204. package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
  205. package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
  206. package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js +26 -0
  207. package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
  208. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
  209. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
  210. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  211. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
  212. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
  213. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  214. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
  215. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
  216. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  217. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
  218. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
  219. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  220. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
  221. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
  222. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  223. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
  224. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
  225. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
  226. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  227. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
  228. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
  229. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
  230. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  231. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
  232. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
  233. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  234. package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
  235. package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
  236. package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js +59 -0
  237. package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
  238. package/dist/commonjs/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
  239. package/dist/commonjs/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
  240. package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js +160 -0
  241. package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js.map +1 -0
  242. package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
  243. package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
  244. package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js +109 -0
  245. package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
  246. package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
  247. package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
  248. package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js +97 -0
  249. package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
  250. package/dist/commonjs/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
  251. package/dist/commonjs/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
  252. package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js +69 -0
  253. package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js.map +1 -0
  254. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
  255. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
  256. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
  257. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  258. package/dist/commonjs/queryExecutionContext/documentProducer.d.ts +9 -3
  259. package/dist/commonjs/queryExecutionContext/documentProducer.d.ts.map +1 -1
  260. package/dist/commonjs/queryExecutionContext/documentProducer.js +17 -4
  261. package/dist/commonjs/queryExecutionContext/documentProducer.js.map +1 -1
  262. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
  263. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
  264. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
  265. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  266. package/dist/commonjs/queryExecutionContext/index.d.ts +7 -0
  267. package/dist/commonjs/queryExecutionContext/index.d.ts.map +1 -1
  268. package/dist/commonjs/queryExecutionContext/index.js +10 -0
  269. package/dist/commonjs/queryExecutionContext/index.js.map +1 -1
  270. package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
  271. package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
  272. package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
  273. package/dist/commonjs/queryExecutionContext/orderByComparator.d.ts +11 -2
  274. package/dist/commonjs/queryExecutionContext/orderByComparator.d.ts.map +1 -1
  275. package/dist/commonjs/queryExecutionContext/orderByComparator.js +21 -3
  276. package/dist/commonjs/queryExecutionContext/orderByComparator.js.map +1 -1
  277. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
  278. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
  279. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
  280. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  281. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
  282. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
  283. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
  284. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  285. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
  286. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
  287. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
  288. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
  289. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
  290. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
  291. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
  292. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  293. package/dist/commonjs/queryExecutionContext/parallelQueryResult.d.ts +35 -0
  294. package/dist/commonjs/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
  295. package/dist/commonjs/queryExecutionContext/parallelQueryResult.js +26 -0
  296. package/dist/commonjs/queryExecutionContext/parallelQueryResult.js.map +1 -0
  297. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
  298. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
  299. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
  300. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  301. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
  302. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
  303. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +5 -0
  304. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
  305. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
  306. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
  307. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +314 -0
  308. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
  309. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
  310. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
  311. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +106 -0
  312. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
  313. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
  314. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
  315. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +184 -0
  316. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
  317. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
  318. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
  319. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +97 -0
  320. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
  321. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
  322. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
  323. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +5 -0
  324. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
  325. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
  326. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
  327. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +57 -0
  328. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
  329. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
  330. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
  331. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +38 -0
  332. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
  333. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
  334. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
  335. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +5 -0
  336. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
  337. package/dist/commonjs/queryExecutionContext/queryRangeMapping.d.ts +22 -0
  338. package/dist/commonjs/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
  339. package/dist/commonjs/queryExecutionContext/queryRangeMapping.js +5 -0
  340. package/dist/commonjs/queryExecutionContext/queryRangeMapping.js.map +1 -0
  341. package/dist/commonjs/queryIterator.js.map +1 -1
  342. package/dist/commonjs/utils/offers.d.ts.map +1 -1
  343. package/dist/commonjs/utils/offers.js +0 -1
  344. package/dist/commonjs/utils/offers.js.map +1 -1
  345. package/dist/esm/common/constants.d.ts.map +1 -1
  346. package/dist/esm/common/constants.js +16 -1
  347. package/dist/esm/common/constants.js.map +1 -1
  348. package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
  349. package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
  350. package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.js +84 -0
  351. package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
  352. package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
  353. package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
  354. package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.js +39 -0
  355. package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
  356. package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
  357. package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
  358. package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.js +4 -0
  359. package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
  360. package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
  361. package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
  362. package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +174 -0
  363. package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
  364. package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
  365. package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
  366. package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +28 -0
  367. package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
  368. package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
  369. package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
  370. package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +129 -0
  371. package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
  372. package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
  373. package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
  374. package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +66 -0
  375. package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
  376. package/dist/esm/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
  377. package/dist/esm/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
  378. package/dist/esm/queryExecutionContext/ContinuationTokenParser.js +23 -0
  379. package/dist/esm/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
  380. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
  381. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
  382. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  383. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
  384. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
  385. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  386. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
  387. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
  388. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  389. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
  390. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
  391. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  392. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
  393. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
  394. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  395. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
  396. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
  397. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
  398. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  399. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
  400. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
  401. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
  402. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  403. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
  404. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
  405. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  406. package/dist/esm/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
  407. package/dist/esm/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
  408. package/dist/esm/queryExecutionContext/LegacyFetchImplementation.js +55 -0
  409. package/dist/esm/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
  410. package/dist/esm/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
  411. package/dist/esm/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
  412. package/dist/esm/queryExecutionContext/PartitionRangeManager.js +156 -0
  413. package/dist/esm/queryExecutionContext/PartitionRangeManager.js.map +1 -0
  414. package/dist/esm/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
  415. package/dist/esm/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
  416. package/dist/esm/queryExecutionContext/PartitionRangeUtils.js +105 -0
  417. package/dist/esm/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
  418. package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
  419. package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
  420. package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.js +93 -0
  421. package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
  422. package/dist/esm/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
  423. package/dist/esm/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
  424. package/dist/esm/queryExecutionContext/QueryValidationHelper.js +65 -0
  425. package/dist/esm/queryExecutionContext/QueryValidationHelper.js.map +1 -0
  426. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
  427. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
  428. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
  429. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  430. package/dist/esm/queryExecutionContext/documentProducer.d.ts +9 -3
  431. package/dist/esm/queryExecutionContext/documentProducer.d.ts.map +1 -1
  432. package/dist/esm/queryExecutionContext/documentProducer.js +17 -4
  433. package/dist/esm/queryExecutionContext/documentProducer.js.map +1 -1
  434. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
  435. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
  436. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
  437. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  438. package/dist/esm/queryExecutionContext/index.d.ts +7 -0
  439. package/dist/esm/queryExecutionContext/index.d.ts.map +1 -1
  440. package/dist/esm/queryExecutionContext/index.js +4 -0
  441. package/dist/esm/queryExecutionContext/index.js.map +1 -1
  442. package/dist/esm/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
  443. package/dist/esm/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
  444. package/dist/esm/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
  445. package/dist/esm/queryExecutionContext/orderByComparator.d.ts +11 -2
  446. package/dist/esm/queryExecutionContext/orderByComparator.d.ts.map +1 -1
  447. package/dist/esm/queryExecutionContext/orderByComparator.js +20 -3
  448. package/dist/esm/queryExecutionContext/orderByComparator.js.map +1 -1
  449. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
  450. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
  451. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
  452. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  453. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
  454. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
  455. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
  456. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  457. package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
  458. package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
  459. package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
  460. package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
  461. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
  462. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
  463. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
  464. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  465. package/dist/esm/queryExecutionContext/parallelQueryResult.d.ts +35 -0
  466. package/dist/esm/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
  467. package/dist/esm/queryExecutionContext/parallelQueryResult.js +23 -0
  468. package/dist/esm/queryExecutionContext/parallelQueryResult.js.map +1 -0
  469. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
  470. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
  471. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
  472. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  473. package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
  474. package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
  475. package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +4 -0
  476. package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
  477. package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
  478. package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
  479. package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +310 -0
  480. package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
  481. package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
  482. package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
  483. package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +102 -0
  484. package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
  485. package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
  486. package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
  487. package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +180 -0
  488. package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
  489. package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
  490. package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
  491. package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +93 -0
  492. package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
  493. package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
  494. package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
  495. package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +4 -0
  496. package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
  497. package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
  498. package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
  499. package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +53 -0
  500. package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
  501. package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
  502. package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
  503. package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +34 -0
  504. package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
  505. package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
  506. package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
  507. package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +4 -0
  508. package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
  509. package/dist/esm/queryExecutionContext/queryRangeMapping.d.ts +22 -0
  510. package/dist/esm/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
  511. package/dist/esm/queryExecutionContext/queryRangeMapping.js +4 -0
  512. package/dist/esm/queryExecutionContext/queryRangeMapping.js.map +1 -0
  513. package/dist/esm/queryIterator.js.map +1 -1
  514. package/dist/esm/utils/offers.d.ts.map +1 -1
  515. package/dist/esm/utils/offers.js +0 -1
  516. package/dist/esm/utils/offers.js.map +1 -1
  517. package/dist/react-native/common/constants.d.ts.map +1 -1
  518. package/dist/react-native/common/constants.js +16 -1
  519. package/dist/react-native/common/constants.js.map +1 -1
  520. package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
  521. package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
  522. package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.js +84 -0
  523. package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
  524. package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
  525. package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
  526. package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.js +39 -0
  527. package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
  528. package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
  529. package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
  530. package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.js +4 -0
  531. package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
  532. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
  533. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
  534. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +174 -0
  535. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
  536. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
  537. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
  538. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +28 -0
  539. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
  540. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
  541. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
  542. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +129 -0
  543. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
  544. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
  545. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
  546. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +66 -0
  547. package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
  548. package/dist/react-native/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
  549. package/dist/react-native/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
  550. package/dist/react-native/queryExecutionContext/ContinuationTokenParser.js +23 -0
  551. package/dist/react-native/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
  552. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
  553. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
  554. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  555. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
  556. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
  557. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  558. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
  559. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
  560. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  561. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
  562. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
  563. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  564. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
  565. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
  566. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  567. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
  568. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
  569. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
  570. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  571. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
  572. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
  573. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
  574. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  575. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
  576. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
  577. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  578. package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
  579. package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
  580. package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.js +55 -0
  581. package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
  582. package/dist/react-native/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
  583. package/dist/react-native/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
  584. package/dist/react-native/queryExecutionContext/PartitionRangeManager.js +156 -0
  585. package/dist/react-native/queryExecutionContext/PartitionRangeManager.js.map +1 -0
  586. package/dist/react-native/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
  587. package/dist/react-native/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
  588. package/dist/react-native/queryExecutionContext/PartitionRangeUtils.js +105 -0
  589. package/dist/react-native/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
  590. package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
  591. package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
  592. package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.js +93 -0
  593. package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
  594. package/dist/react-native/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
  595. package/dist/react-native/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
  596. package/dist/react-native/queryExecutionContext/QueryValidationHelper.js +65 -0
  597. package/dist/react-native/queryExecutionContext/QueryValidationHelper.js.map +1 -0
  598. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
  599. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
  600. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
  601. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  602. package/dist/react-native/queryExecutionContext/documentProducer.d.ts +9 -3
  603. package/dist/react-native/queryExecutionContext/documentProducer.d.ts.map +1 -1
  604. package/dist/react-native/queryExecutionContext/documentProducer.js +17 -4
  605. package/dist/react-native/queryExecutionContext/documentProducer.js.map +1 -1
  606. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
  607. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
  608. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
  609. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  610. package/dist/react-native/queryExecutionContext/index.d.ts +7 -0
  611. package/dist/react-native/queryExecutionContext/index.d.ts.map +1 -1
  612. package/dist/react-native/queryExecutionContext/index.js +4 -0
  613. package/dist/react-native/queryExecutionContext/index.js.map +1 -1
  614. package/dist/react-native/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
  615. package/dist/react-native/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
  616. package/dist/react-native/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
  617. package/dist/react-native/queryExecutionContext/orderByComparator.d.ts +11 -2
  618. package/dist/react-native/queryExecutionContext/orderByComparator.d.ts.map +1 -1
  619. package/dist/react-native/queryExecutionContext/orderByComparator.js +20 -3
  620. package/dist/react-native/queryExecutionContext/orderByComparator.js.map +1 -1
  621. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
  622. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
  623. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
  624. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  625. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
  626. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
  627. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
  628. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  629. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
  630. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
  631. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
  632. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
  633. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
  634. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
  635. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
  636. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  637. package/dist/react-native/queryExecutionContext/parallelQueryResult.d.ts +35 -0
  638. package/dist/react-native/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
  639. package/dist/react-native/queryExecutionContext/parallelQueryResult.js +23 -0
  640. package/dist/react-native/queryExecutionContext/parallelQueryResult.js.map +1 -0
  641. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
  642. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
  643. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
  644. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  645. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
  646. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
  647. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +4 -0
  648. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
  649. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
  650. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
  651. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +310 -0
  652. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
  653. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
  654. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
  655. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +102 -0
  656. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
  657. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
  658. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
  659. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +180 -0
  660. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
  661. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
  662. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
  663. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +93 -0
  664. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
  665. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
  666. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
  667. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +4 -0
  668. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
  669. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
  670. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
  671. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +53 -0
  672. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
  673. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
  674. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
  675. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +34 -0
  676. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
  677. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
  678. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
  679. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +4 -0
  680. package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
  681. package/dist/react-native/queryExecutionContext/queryRangeMapping.d.ts +22 -0
  682. package/dist/react-native/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
  683. package/dist/react-native/queryExecutionContext/queryRangeMapping.js +4 -0
  684. package/dist/react-native/queryExecutionContext/queryRangeMapping.js.map +1 -0
  685. package/dist/react-native/queryIterator.js.map +1 -1
  686. package/dist/react-native/utils/offers.d.ts.map +1 -1
  687. package/dist/react-native/utils/offers.js +0 -1
  688. package/dist/react-native/utils/offers.js.map +1 -1
  689. package/package.json +1 -1
@@ -0,0 +1,310 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ /**
4
+ * Strategy for filtering partition ranges in ORDER BY query execution context
5
+ * Supports resuming from continuation tokens with proper range-token pair management
6
+ * @hidden
7
+ */
8
+ export class OrderByQueryRangeStrategy {
9
+ getStrategyType() {
10
+ return "OrderByQuery";
11
+ }
12
+ filterPartitionRanges(targetRanges, continuationRanges, queryInfo) {
13
+ if (!targetRanges ||
14
+ targetRanges.length === 0 ||
15
+ !continuationRanges ||
16
+ continuationRanges.length === 0) {
17
+ return {
18
+ rangeTokenPairs: [],
19
+ };
20
+ }
21
+ if (!queryInfo?.orderByItems ||
22
+ !Array.isArray(queryInfo.orderByItems) ||
23
+ queryInfo.orderByItems.length === 0) {
24
+ throw new Error("Unable to resume ORDER BY query from continuation token. orderByItems is required for ORDER BY queries.");
25
+ }
26
+ const result = {
27
+ rangeTokenPairs: [],
28
+ };
29
+ let filteredRanges = [];
30
+ let resumeRangeFound = false;
31
+ if (continuationRanges && continuationRanges.length > 0) {
32
+ resumeRangeFound = true;
33
+ // Find the range to resume from based on the composite token
34
+ const targetRangeMapping = continuationRanges[continuationRanges.length - 1].range;
35
+ // It is assumed that range mapping array is going to contain only range
36
+ const targetRange = targetRangeMapping;
37
+ const targetContinuationToken = continuationRanges[continuationRanges.length - 1].continuationToken;
38
+ const leftRanges = targetRanges.filter((mapping) => this.isRangeBeforeAnother(mapping.maxExclusive, targetRangeMapping.minInclusive));
39
+ const orderByItems = queryInfo.orderByItems;
40
+ // Create filtering condition for left ranges based on ORDER BY items and sort orders
41
+ const leftFilter = this.createRangeFilterCondition(orderByItems, queryInfo, "left");
42
+ const rightRanges = targetRanges.filter((mapping) => this.isRangeAfterAnother(mapping.minInclusive, targetRangeMapping.maxExclusive));
43
+ // Create filtering condition for right ranges based on ORDER BY items and sort orders
44
+ const rightFilter = this.createRangeFilterCondition(orderByItems, queryInfo, "right");
45
+ // Apply filtering logic for left ranges
46
+ if (leftRanges.length > 0) {
47
+ leftRanges.forEach((range) => {
48
+ result.rangeTokenPairs.push({
49
+ range: range,
50
+ continuationToken: undefined,
51
+ filteringCondition: leftFilter,
52
+ });
53
+ });
54
+ }
55
+ result.rangeTokenPairs.push({
56
+ range: targetRange,
57
+ continuationToken: targetContinuationToken,
58
+ filteringCondition: rightFilter,
59
+ });
60
+ // Apply filtering logic for right ranges
61
+ if (rightRanges.length > 0) {
62
+ rightRanges.forEach((range) => {
63
+ result.rangeTokenPairs.push({
64
+ range: range,
65
+ continuationToken: undefined,
66
+ filteringCondition: rightFilter,
67
+ });
68
+ });
69
+ }
70
+ }
71
+ // If we couldn't find a specific resume point, include all ranges
72
+ // This can happen with certain types of ORDER BY continuation tokens
73
+ if (!resumeRangeFound) {
74
+ filteredRanges = [...targetRanges];
75
+ filteredRanges.forEach((range) => {
76
+ result.rangeTokenPairs.push({
77
+ range: range,
78
+ continuationToken: undefined,
79
+ filteringCondition: undefined,
80
+ });
81
+ });
82
+ }
83
+ return result;
84
+ }
85
+ /**
86
+ * Creates a filter condition for ranges based on ORDER BY items and sort orders
87
+ * This filter ensures that ranges only return documents based on their position relative to the continuation point
88
+ * @param orderByItems - Array of order by items from the continuation token
89
+ * @param queryInfo - Query information containing sort orders and other metadata
90
+ * @param rangePosition - Whether this is for "left" or "right" ranges relative to continuation point
91
+ * @returns SQL filter condition string for the specified range position
92
+ */
93
+ createRangeFilterCondition(orderByItems, queryInfo, rangePosition) {
94
+ // Extract sort orders from query info
95
+ let sortOrders;
96
+ try {
97
+ sortOrders = this.extractSortOrders(queryInfo);
98
+ }
99
+ catch (error) {
100
+ // If we can't extract sort orders, we cannot create reliable filter conditions
101
+ throw new Error(`Unable to resume ORDER BY query from continuation token. The ORDER BY sort direction configuration ` +
102
+ `in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. ` +
103
+ `Please retry the query without a continuation token. Original error: ${error}`);
104
+ }
105
+ // Extract orderByExpressions from nested structure
106
+ let orderByExpressions;
107
+ if (queryInfo &&
108
+ queryInfo.queryInfo &&
109
+ typeof queryInfo.queryInfo === "object" &&
110
+ queryInfo.queryInfo.queryInfo &&
111
+ queryInfo.queryInfo.queryInfo.orderByExpressions &&
112
+ Array.isArray(queryInfo.queryInfo.queryInfo.orderByExpressions)) {
113
+ orderByExpressions = queryInfo.queryInfo.queryInfo.orderByExpressions;
114
+ }
115
+ if (!orderByExpressions || !Array.isArray(orderByExpressions)) {
116
+ throw new Error("Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration " +
117
+ "in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. " +
118
+ "Please retry the query without a continuation token.");
119
+ }
120
+ const filterConditions = [];
121
+ // Process each order by item to create filter conditions
122
+ for (let i = 0; i < orderByItems.length && i < sortOrders.length; i++) {
123
+ const orderByItem = orderByItems[i];
124
+ const sortOrder = sortOrders[i];
125
+ if (!orderByItem || orderByItem.item === undefined) {
126
+ continue;
127
+ }
128
+ try {
129
+ // Determine the field path from ORDER BY expressions in query plan
130
+ const fieldPath = this.extractFieldPath(queryInfo, i);
131
+ // Create the comparison condition based on sort order and range position
132
+ const condition = this.createComparisonCondition(fieldPath, orderByItem.item, sortOrder, rangePosition);
133
+ if (condition) {
134
+ filterConditions.push(condition);
135
+ }
136
+ }
137
+ catch (error) {
138
+ // If we can't extract field path for ORDER BY expressions, we cannot safely resume from continuation token
139
+ // This would lead to incorrect query results, so we must fail the entire request
140
+ throw new Error(`Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration ` +
141
+ `in the query plan is invalid or incompatible with the continuation token format. ` +
142
+ `This may indicate a client version mismatch or corrupted continuation token. ` +
143
+ `Please retry the query without a continuation token. Original error: ${error}`);
144
+ }
145
+ }
146
+ // Combine multiple conditions with AND for multi-field ORDER BY
147
+ const combinedFilter = filterConditions.length > 0 ? `(${filterConditions.join(" AND ")})` : "";
148
+ return combinedFilter;
149
+ }
150
+ /**
151
+ * Extracts sort orders from query info
152
+ * @throws Error if sort order information is missing or invalid
153
+ */
154
+ extractSortOrders(queryInfo) {
155
+ if (!queryInfo) {
156
+ throw new Error("Query information is required to determine ORDER BY sort directions");
157
+ }
158
+ // Extract orderBy from the nested structure: queryInfo.queryInfo.queryInfo.orderBy
159
+ let orderBy;
160
+ if (queryInfo.queryInfo &&
161
+ typeof queryInfo.queryInfo === "object" &&
162
+ queryInfo.queryInfo.queryInfo &&
163
+ typeof queryInfo.queryInfo.queryInfo === "object" &&
164
+ queryInfo.queryInfo.queryInfo.orderBy &&
165
+ Array.isArray(queryInfo.queryInfo.queryInfo.orderBy)) {
166
+ orderBy = queryInfo.queryInfo.queryInfo.orderBy;
167
+ }
168
+ if (!orderBy) {
169
+ throw new Error("ORDER BY sort direction information is missing from query plan");
170
+ }
171
+ return orderBy.map((order, index) => {
172
+ if (typeof order === "string") {
173
+ return order;
174
+ }
175
+ // Handle object format if needed
176
+ if (order && typeof order === "object") {
177
+ const sortOrder = order.direction || order.order || order.sortOrder;
178
+ if (sortOrder) {
179
+ return sortOrder;
180
+ }
181
+ }
182
+ throw new Error(`ORDER BY sort direction at position ${index + 1} has an invalid format in the query plan`);
183
+ });
184
+ }
185
+ /**
186
+ * Extracts field path from ORDER BY expressions in query plan
187
+ * @throws Error if orderByExpressions are not found or index is out of bounds or expression format is invalid
188
+ */
189
+ extractFieldPath(queryInfo, index) {
190
+ // Try multiple paths to find orderByExpressions due to nested structure
191
+ let orderByExpressions;
192
+ if (queryInfo) {
193
+ // Direct path
194
+ if (queryInfo.orderByExpressions && Array.isArray(queryInfo.orderByExpressions)) {
195
+ orderByExpressions = queryInfo.orderByExpressions;
196
+ }
197
+ // Nested path: queryInfo.queryInfo.queryInfo.orderByExpressions
198
+ else if (queryInfo.queryInfo &&
199
+ typeof queryInfo.queryInfo === "object" &&
200
+ queryInfo.queryInfo.queryInfo &&
201
+ queryInfo.queryInfo.queryInfo.orderByExpressions &&
202
+ Array.isArray(queryInfo.queryInfo.queryInfo.orderByExpressions)) {
203
+ orderByExpressions = queryInfo.queryInfo.queryInfo.orderByExpressions;
204
+ }
205
+ }
206
+ if (!orderByExpressions) {
207
+ throw new Error("ORDER BY field information is missing from query plan");
208
+ }
209
+ if (index >= orderByExpressions.length) {
210
+ throw new Error(`ORDER BY field configuration mismatch: expected at least ${index + 1} fields but found ${orderByExpressions.length}`);
211
+ }
212
+ const expression = orderByExpressions[index];
213
+ // Handle different formats of ORDER BY expressions
214
+ if (typeof expression === "string") {
215
+ // Simple string expression like "c.id" or "_FullTextScore(...)"
216
+ return expression;
217
+ }
218
+ if (expression && typeof expression === "object") {
219
+ // Object format like { expression: "c.id", type: "PropertyRef" }
220
+ if (expression.expression) {
221
+ return expression.expression;
222
+ }
223
+ if (expression.path) {
224
+ return expression.path.replace(/^\//, ""); // Remove leading slash
225
+ }
226
+ if (expression.field) {
227
+ return expression.field;
228
+ }
229
+ }
230
+ throw new Error(`ORDER BY field at position ${index + 1} has an unrecognized format in the query plan`);
231
+ }
232
+ /**
233
+ * Creates a comparison condition based on the field, value, sort order, and range position
234
+ */
235
+ createComparisonCondition(fieldPath, value, sortOrder, rangePosition) {
236
+ const isDescending = sortOrder.toLowerCase() === "descending" || sortOrder.toLowerCase() === "desc";
237
+ // For left ranges (ranges that come before the target):
238
+ // - In ascending order: field > value (left ranges should seek for larger values)
239
+ // - In descending order: field < value (left ranges should seek for smaller values)
240
+ // For right ranges (ranges that come after the target):
241
+ // - In ascending order: field >= value (right ranges have larger values)
242
+ // - In descending order: field <= value (right ranges have smaller values in desc order)
243
+ let operator;
244
+ if (rangePosition === "left") {
245
+ operator = isDescending ? "<" : ">";
246
+ }
247
+ else {
248
+ // right
249
+ operator = isDescending ? "<=" : ">=";
250
+ }
251
+ // Format the value based on its type
252
+ const formattedValue = this.formatValueForSQL(value);
253
+ // Create the condition with proper field reference
254
+ const condition = `${fieldPath} ${operator} ${formattedValue}`;
255
+ return condition;
256
+ }
257
+ /**
258
+ * Formats a value for use in SQL condition
259
+ */
260
+ formatValueForSQL(value) {
261
+ if (value === null || value === undefined) {
262
+ return "null";
263
+ }
264
+ const valueType = typeof value;
265
+ switch (valueType) {
266
+ case "string":
267
+ // Escape single quotes and wrap in quotes
268
+ return `'${value.toString().replace(/'/g, "''")}'`;
269
+ case "number":
270
+ case "bigint":
271
+ return value.toString();
272
+ case "boolean":
273
+ return value ? "true" : "false";
274
+ default:
275
+ // For objects and arrays, convert to JSON string
276
+ if (typeof value === "object") {
277
+ return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
278
+ }
279
+ return `'${value.toString().replace(/'/g, "''")}'`;
280
+ }
281
+ }
282
+ /**
283
+ * Compares partition key range boundaries with proper handling for inclusive/exclusive semantics
284
+ * @param boundary1 - First boundary to compare
285
+ * @param boundary2 - Second boundary to compare
286
+ * @returns negative if boundary1 is less than boundary2, positive if boundary1 is greater than boundary2, 0 if equal
287
+ */
288
+ comparePartitionKeyBoundaries(boundary1, boundary2) {
289
+ // Handle empty string cases (empty string represents the minimum boundary)
290
+ if (boundary1 === "" && boundary2 === "")
291
+ return 0;
292
+ if (boundary1 === "")
293
+ return -1; // "" < "AA"
294
+ if (boundary2 === "")
295
+ return 1; // "AA" > ""
296
+ // Use standard lexicographic comparison for non-empty boundaries
297
+ return boundary1.localeCompare(boundary2);
298
+ }
299
+ isRangeBeforeAnother(range1MaxExclusive, range2MinInclusive) {
300
+ // Since range1.maxExclusive is NOT part of range1, and range2.minInclusive IS part of range2,
301
+ // range1 comes before range2 if range1.maxExclusive <= range2.minInclusive
302
+ return this.comparePartitionKeyBoundaries(range1MaxExclusive, range2MinInclusive) <= 0;
303
+ }
304
+ isRangeAfterAnother(range1MinInclusive, range2MaxExclusive) {
305
+ // Since range2.maxExclusive is NOT part of range2, and range1.minInclusive IS part of range1,
306
+ // range1 comes after range2 if range1.minInclusive >= range2.maxExclusive
307
+ return this.comparePartitionKeyBoundaries(range1MinInclusive, range2MaxExclusive) >= 0;
308
+ }
309
+ }
310
+ //# sourceMappingURL=OrderByQueryRangeStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderByQueryRangeStrategy.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../../index.js\";\nimport type {\n TargetPartitionRangeStrategy,\n PartitionRangeFilterResult,\n} from \"./TargetPartitionRangeStrategy.js\";\nimport type { PartitionRangeWithContinuationToken } from \"./TargetPartitionRangeManager.js\";\n\n/**\n * Strategy for filtering partition ranges in ORDER BY query execution context\n * Supports resuming from continuation tokens with proper range-token pair management\n * @hidden\n */\nexport class OrderByQueryRangeStrategy implements TargetPartitionRangeStrategy {\n getStrategyType(): string {\n return \"OrderByQuery\";\n }\n\n filterPartitionRanges(\n targetRanges: PartitionKeyRange[],\n continuationRanges?: PartitionRangeWithContinuationToken[],\n queryInfo?: Record<string, unknown>,\n ): PartitionRangeFilterResult {\n if (\n !targetRanges ||\n targetRanges.length === 0 ||\n !continuationRanges ||\n continuationRanges.length === 0\n ) {\n return {\n rangeTokenPairs: [],\n };\n }\n\n if (\n !queryInfo?.orderByItems ||\n !Array.isArray(queryInfo.orderByItems) ||\n queryInfo.orderByItems.length === 0\n ) {\n throw new Error(\n \"Unable to resume ORDER BY query from continuation token. orderByItems is required for ORDER BY queries.\",\n );\n }\n\n const result: PartitionRangeFilterResult = {\n rangeTokenPairs: [],\n };\n let filteredRanges: PartitionKeyRange[] = [];\n let resumeRangeFound = false;\n\n if (continuationRanges && continuationRanges.length > 0) {\n resumeRangeFound = true;\n // Find the range to resume from based on the composite token\n const targetRangeMapping = continuationRanges[continuationRanges.length - 1].range;\n // It is assumed that range mapping array is going to contain only range\n const targetRange: PartitionKeyRange = targetRangeMapping;\n\n const targetContinuationToken =\n continuationRanges[continuationRanges.length - 1].continuationToken;\n\n const leftRanges = targetRanges.filter((mapping) =>\n this.isRangeBeforeAnother(mapping.maxExclusive, targetRangeMapping.minInclusive),\n );\n\n const orderByItems = queryInfo.orderByItems;\n\n // Create filtering condition for left ranges based on ORDER BY items and sort orders\n const leftFilter = this.createRangeFilterCondition(orderByItems, queryInfo, \"left\");\n\n const rightRanges = targetRanges.filter((mapping) =>\n this.isRangeAfterAnother(mapping.minInclusive, targetRangeMapping.maxExclusive),\n );\n\n // Create filtering condition for right ranges based on ORDER BY items and sort orders\n const rightFilter = this.createRangeFilterCondition(orderByItems, queryInfo, \"right\");\n\n // Apply filtering logic for left ranges\n if (leftRanges.length > 0) {\n leftRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: leftFilter,\n });\n });\n }\n\n result.rangeTokenPairs.push({\n range: targetRange,\n continuationToken: targetContinuationToken,\n filteringCondition: rightFilter,\n });\n\n // Apply filtering logic for right ranges\n if (rightRanges.length > 0) {\n rightRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: rightFilter,\n });\n });\n }\n }\n\n // If we couldn't find a specific resume point, include all ranges\n // This can happen with certain types of ORDER BY continuation tokens\n if (!resumeRangeFound) {\n filteredRanges = [...targetRanges];\n filteredRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: undefined,\n });\n });\n }\n return result;\n }\n\n /**\n * Creates a filter condition for ranges based on ORDER BY items and sort orders\n * This filter ensures that ranges only return documents based on their position relative to the continuation point\n * @param orderByItems - Array of order by items from the continuation token\n * @param queryInfo - Query information containing sort orders and other metadata\n * @param rangePosition - Whether this is for \"left\" or \"right\" ranges relative to continuation point\n * @returns SQL filter condition string for the specified range position\n */\n private createRangeFilterCondition(\n orderByItems: any[],\n queryInfo: Record<string, unknown> | undefined,\n rangePosition: \"left\" | \"right\",\n ): string {\n // Extract sort orders from query info\n let sortOrders: string[];\n try {\n sortOrders = this.extractSortOrders(queryInfo);\n } catch (error) {\n // If we can't extract sort orders, we cannot create reliable filter conditions\n throw new Error(\n `Unable to resume ORDER BY query from continuation token. The ORDER BY sort direction configuration ` +\n `in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. ` +\n `Please retry the query without a continuation token. Original error: ${error}`,\n );\n }\n\n // Extract orderByExpressions from nested structure\n let orderByExpressions: any[] | undefined;\n if (\n queryInfo &&\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n (queryInfo.queryInfo as any).queryInfo.orderByExpressions &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderByExpressions)\n ) {\n orderByExpressions = (queryInfo.queryInfo as any).queryInfo.orderByExpressions;\n }\n\n if (!orderByExpressions || !Array.isArray(orderByExpressions)) {\n throw new Error(\n \"Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration \" +\n \"in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. \" +\n \"Please retry the query without a continuation token.\",\n );\n }\n\n const filterConditions: string[] = [];\n\n // Process each order by item to create filter conditions\n for (let i = 0; i < orderByItems.length && i < sortOrders.length; i++) {\n const orderByItem = orderByItems[i];\n const sortOrder = sortOrders[i];\n\n if (!orderByItem || orderByItem.item === undefined) {\n continue;\n }\n\n try {\n // Determine the field path from ORDER BY expressions in query plan\n const fieldPath = this.extractFieldPath(queryInfo, i);\n\n // Create the comparison condition based on sort order and range position\n const condition = this.createComparisonCondition(\n fieldPath,\n orderByItem.item,\n sortOrder,\n rangePosition,\n );\n\n if (condition) {\n filterConditions.push(condition);\n }\n } catch (error) {\n // If we can't extract field path for ORDER BY expressions, we cannot safely resume from continuation token\n // This would lead to incorrect query results, so we must fail the entire request\n throw new Error(\n `Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration ` +\n `in the query plan is invalid or incompatible with the continuation token format. ` +\n `This may indicate a client version mismatch or corrupted continuation token. ` +\n `Please retry the query without a continuation token. Original error: ${error}`,\n );\n }\n }\n\n // Combine multiple conditions with AND for multi-field ORDER BY\n const combinedFilter = filterConditions.length > 0 ? `(${filterConditions.join(\" AND \")})` : \"\";\n return combinedFilter;\n }\n\n /**\n * Extracts sort orders from query info\n * @throws Error if sort order information is missing or invalid\n */\n private extractSortOrders(queryInfo?: Record<string, unknown>): string[] {\n if (!queryInfo) {\n throw new Error(\"Query information is required to determine ORDER BY sort directions\");\n }\n\n // Extract orderBy from the nested structure: queryInfo.queryInfo.queryInfo.orderBy\n let orderBy: any[] | undefined;\n\n if (\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n typeof (queryInfo.queryInfo as any).queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo.orderBy &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderBy)\n ) {\n orderBy = (queryInfo.queryInfo as any).queryInfo.orderBy;\n }\n\n if (!orderBy) {\n throw new Error(\"ORDER BY sort direction information is missing from query plan\");\n }\n\n return orderBy.map((order, index) => {\n if (typeof order === \"string\") {\n return order;\n }\n // Handle object format if needed\n if (order && typeof order === \"object\") {\n const sortOrder =\n (order as any).direction || (order as any).order || (order as any).sortOrder;\n if (sortOrder) {\n return sortOrder;\n }\n }\n throw new Error(\n `ORDER BY sort direction at position ${index + 1} has an invalid format in the query plan`,\n );\n });\n }\n\n /**\n * Extracts field path from ORDER BY expressions in query plan\n * @throws Error if orderByExpressions are not found or index is out of bounds or expression format is invalid\n */\n private extractFieldPath(queryInfo: Record<string, unknown> | undefined, index: number): string {\n // Try multiple paths to find orderByExpressions due to nested structure\n let orderByExpressions: any[] | undefined;\n\n if (queryInfo) {\n // Direct path\n if (queryInfo.orderByExpressions && Array.isArray(queryInfo.orderByExpressions)) {\n orderByExpressions = queryInfo.orderByExpressions;\n }\n // Nested path: queryInfo.queryInfo.queryInfo.orderByExpressions\n else if (\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n (queryInfo.queryInfo as any).queryInfo.orderByExpressions &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderByExpressions)\n ) {\n orderByExpressions = (queryInfo.queryInfo as any).queryInfo.orderByExpressions;\n }\n }\n\n if (!orderByExpressions) {\n throw new Error(\"ORDER BY field information is missing from query plan\");\n }\n\n if (index >= orderByExpressions.length) {\n throw new Error(\n `ORDER BY field configuration mismatch: expected at least ${index + 1} fields but found ${orderByExpressions.length}`,\n );\n }\n\n const expression = orderByExpressions[index];\n\n // Handle different formats of ORDER BY expressions\n if (typeof expression === \"string\") {\n // Simple string expression like \"c.id\" or \"_FullTextScore(...)\"\n return expression;\n }\n\n if (expression && typeof expression === \"object\") {\n // Object format like { expression: \"c.id\", type: \"PropertyRef\" }\n if (expression.expression) {\n return expression.expression;\n }\n if (expression.path) {\n return expression.path.replace(/^\\//, \"\"); // Remove leading slash\n }\n if (expression.field) {\n return expression.field;\n }\n }\n\n throw new Error(\n `ORDER BY field at position ${index + 1} has an unrecognized format in the query plan`,\n );\n }\n\n /**\n * Creates a comparison condition based on the field, value, sort order, and range position\n */\n private createComparisonCondition(\n fieldPath: string,\n value: any,\n sortOrder: string,\n rangePosition: \"left\" | \"right\",\n ): string {\n const isDescending =\n sortOrder.toLowerCase() === \"descending\" || sortOrder.toLowerCase() === \"desc\";\n\n // For left ranges (ranges that come before the target):\n // - In ascending order: field > value (left ranges should seek for larger values)\n // - In descending order: field < value (left ranges should seek for smaller values)\n\n // For right ranges (ranges that come after the target):\n // - In ascending order: field >= value (right ranges have larger values)\n // - In descending order: field <= value (right ranges have smaller values in desc order)\n\n let operator: string;\n\n if (rangePosition === \"left\") {\n operator = isDescending ? \"<\" : \">\";\n } else {\n // right\n operator = isDescending ? \"<=\" : \">=\";\n }\n\n // Format the value based on its type\n const formattedValue = this.formatValueForSQL(value);\n\n // Create the condition with proper field reference\n const condition = `${fieldPath} ${operator} ${formattedValue}`;\n return condition;\n }\n\n /**\n * Formats a value for use in SQL condition\n */\n private formatValueForSQL(value: any): string {\n if (value === null || value === undefined) {\n return \"null\";\n }\n\n const valueType = typeof value;\n\n switch (valueType) {\n case \"string\":\n // Escape single quotes and wrap in quotes\n return `'${value.toString().replace(/'/g, \"''\")}'`;\n case \"number\":\n case \"bigint\":\n return value.toString();\n case \"boolean\":\n return value ? \"true\" : \"false\";\n default:\n // For objects and arrays, convert to JSON string\n if (typeof value === \"object\") {\n return `'${JSON.stringify(value).replace(/'/g, \"''\")}'`;\n }\n return `'${value.toString().replace(/'/g, \"''\")}'`;\n }\n }\n\n /**\n * Compares partition key range boundaries with proper handling for inclusive/exclusive semantics\n * @param boundary1 - First boundary to compare\n * @param boundary2 - Second boundary to compare\n * @returns negative if boundary1 is less than boundary2, positive if boundary1 is greater than boundary2, 0 if equal\n */\n private comparePartitionKeyBoundaries(boundary1: string, boundary2: string): number {\n // Handle empty string cases (empty string represents the minimum boundary)\n if (boundary1 === \"\" && boundary2 === \"\") return 0;\n if (boundary1 === \"\") return -1; // \"\" < \"AA\"\n if (boundary2 === \"\") return 1; // \"AA\" > \"\"\n\n // Use standard lexicographic comparison for non-empty boundaries\n return boundary1.localeCompare(boundary2);\n }\n\n private isRangeBeforeAnother(range1MaxExclusive: string, range2MinInclusive: string): boolean {\n // Since range1.maxExclusive is NOT part of range1, and range2.minInclusive IS part of range2,\n // range1 comes before range2 if range1.maxExclusive <= range2.minInclusive\n return this.comparePartitionKeyBoundaries(range1MaxExclusive, range2MinInclusive) <= 0;\n }\n\n private isRangeAfterAnother(range1MinInclusive: string, range2MaxExclusive: string): boolean {\n // Since range2.maxExclusive is NOT part of range2, and range1.minInclusive IS part of range1,\n // range1 comes after range2 if range1.minInclusive >= range2.maxExclusive\n return this.comparePartitionKeyBoundaries(range1MinInclusive, range2MaxExclusive) >= 0;\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import type { PartitionKeyRange } from "../../index.js";
2
+ import type { TargetPartitionRangeStrategy, PartitionRangeFilterResult } from "./TargetPartitionRangeStrategy.js";
3
+ import type { PartitionRangeWithContinuationToken } from "./TargetPartitionRangeManager.js";
4
+ /**
5
+ * Strategy for filtering partition ranges in parallel query execution context
6
+ * Supports resuming from composite continuation tokens with multi-range aggregation
7
+ * @hidden
8
+ */
9
+ export declare class ParallelQueryRangeStrategy implements TargetPartitionRangeStrategy {
10
+ getStrategyType(): string;
11
+ validateContinuationToken(continuationToken: string): boolean;
12
+ filterPartitionRanges(targetRanges: PartitionKeyRange[], continuationRanges?: PartitionRangeWithContinuationToken[]): PartitionRangeFilterResult;
13
+ /**
14
+ * Checks if a partition is exhausted based on its continuation token
15
+ */
16
+ private isPartitionExhausted;
17
+ }
18
+ //# sourceMappingURL=ParallelQueryRangeStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParallelQueryRangeStrategy.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAC;AAE5F;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,4BAA4B;IAC7E,eAAe,IAAI,MAAM;IAIzB,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO;IA0B7D,qBAAqB,CACnB,YAAY,EAAE,iBAAiB,EAAE,EACjC,kBAAkB,CAAC,EAAE,mCAAmC,EAAE,GACzD,0BAA0B;IAgE7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAQ7B"}
@@ -0,0 +1,102 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ /**
4
+ * Strategy for filtering partition ranges in parallel query execution context
5
+ * Supports resuming from composite continuation tokens with multi-range aggregation
6
+ * @hidden
7
+ */
8
+ export class ParallelQueryRangeStrategy {
9
+ getStrategyType() {
10
+ return "ParallelQuery";
11
+ }
12
+ validateContinuationToken(continuationToken) {
13
+ // Check for null, undefined, or empty string inputs
14
+ if (!continuationToken) {
15
+ return false;
16
+ }
17
+ try {
18
+ const parsed = JSON.parse(continuationToken);
19
+ // Check if it's a composite continuation token (has rangeMappings)
20
+ if (!parsed || !Array.isArray(parsed.rangeMappings)) {
21
+ return false;
22
+ }
23
+ // Validate each range mapping has a non-null partitionKeyRange
24
+ for (const rangeMapping of parsed.rangeMappings) {
25
+ if (!rangeMapping || !rangeMapping.partitionKeyRange) {
26
+ return false;
27
+ }
28
+ }
29
+ return true;
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ }
35
+ filterPartitionRanges(targetRanges, continuationRanges) {
36
+ if (!targetRanges || targetRanges.length === 0) {
37
+ return { rangeTokenPairs: [] };
38
+ }
39
+ // If no continuation ranges, return all ranges as range-token pairs
40
+ if (!continuationRanges || continuationRanges.length === 0) {
41
+ const rangeTokenPairs = targetRanges.map((range) => ({
42
+ range,
43
+ continuationToken: undefined,
44
+ filteringCondition: undefined,
45
+ }));
46
+ return { rangeTokenPairs };
47
+ }
48
+ const rangeTokenPairs = [];
49
+ let lastProcessedRange = null;
50
+ // sort continuationRanges in ascending order using their minInclusive values
51
+ continuationRanges.sort((a, b) => {
52
+ return a.range.minInclusive.localeCompare(b.range.minInclusive);
53
+ });
54
+ for (const range of continuationRanges) {
55
+ // Always track the last processed range, even if it's exhausted
56
+ lastProcessedRange = range.range;
57
+ if (range && !this.isPartitionExhausted(range.continuationToken)) {
58
+ rangeTokenPairs.push({
59
+ range: range.range,
60
+ continuationToken: range.continuationToken,
61
+ filteringCondition: range.filteringCondition,
62
+ });
63
+ }
64
+ }
65
+ // Add any new target ranges that come after the last processed range
66
+ if (lastProcessedRange) {
67
+ for (const targetRange of targetRanges) {
68
+ // Only include ranges whose minInclusive value is greater than or equal to maxExclusive of lastProcessedRange
69
+ if (targetRange.minInclusive >= lastProcessedRange.maxExclusive) {
70
+ rangeTokenPairs.push({
71
+ range: targetRange,
72
+ continuationToken: undefined,
73
+ filteringCondition: undefined,
74
+ });
75
+ }
76
+ }
77
+ }
78
+ else {
79
+ // If no ranges were processed from continuation token, add all target ranges
80
+ for (const targetRange of targetRanges) {
81
+ rangeTokenPairs.push({
82
+ range: targetRange,
83
+ continuationToken: undefined,
84
+ filteringCondition: undefined,
85
+ });
86
+ }
87
+ }
88
+ return {
89
+ rangeTokenPairs,
90
+ };
91
+ }
92
+ /**
93
+ * Checks if a partition is exhausted based on its continuation token
94
+ */
95
+ isPartitionExhausted(continuationToken) {
96
+ return (!continuationToken ||
97
+ continuationToken === "" ||
98
+ continuationToken === "null" ||
99
+ continuationToken.toLowerCase() === "null");
100
+ }
101
+ }
102
+ //# sourceMappingURL=ParallelQueryRangeStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParallelQueryRangeStrategy.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../../index.js\";\nimport type {\n TargetPartitionRangeStrategy,\n PartitionRangeFilterResult,\n} from \"./TargetPartitionRangeStrategy.js\";\nimport type { PartitionRangeWithContinuationToken } from \"./TargetPartitionRangeManager.js\";\n\n/**\n * Strategy for filtering partition ranges in parallel query execution context\n * Supports resuming from composite continuation tokens with multi-range aggregation\n * @hidden\n */\nexport class ParallelQueryRangeStrategy implements TargetPartitionRangeStrategy {\n getStrategyType(): string {\n return \"ParallelQuery\";\n }\n\n validateContinuationToken(continuationToken: string): boolean {\n // Check for null, undefined, or empty string inputs\n if (!continuationToken) {\n return false;\n }\n\n try {\n const parsed = JSON.parse(continuationToken);\n // Check if it's a composite continuation token (has rangeMappings)\n if (!parsed || !Array.isArray(parsed.rangeMappings)) {\n return false;\n }\n\n // Validate each range mapping has a non-null partitionKeyRange\n for (const rangeMapping of parsed.rangeMappings) {\n if (!rangeMapping || !rangeMapping.partitionKeyRange) {\n return false;\n }\n }\n\n return true;\n } catch {\n return false;\n }\n }\n\n filterPartitionRanges(\n targetRanges: PartitionKeyRange[],\n continuationRanges?: PartitionRangeWithContinuationToken[],\n ): PartitionRangeFilterResult {\n if (!targetRanges || targetRanges.length === 0) {\n return { rangeTokenPairs: [] };\n }\n\n // If no continuation ranges, return all ranges as range-token pairs\n if (!continuationRanges || continuationRanges.length === 0) {\n const rangeTokenPairs = targetRanges.map((range) => ({\n range,\n continuationToken: undefined as string | undefined,\n filteringCondition: undefined as string | undefined,\n }));\n return { rangeTokenPairs };\n }\n\n const rangeTokenPairs: PartitionRangeWithContinuationToken[] = [];\n let lastProcessedRange: PartitionKeyRange | null = null;\n\n // sort continuationRanges in ascending order using their minInclusive values\n continuationRanges.sort((a, b) => {\n return a.range.minInclusive.localeCompare(b.range.minInclusive);\n });\n\n for (const range of continuationRanges) {\n // Always track the last processed range, even if it's exhausted\n lastProcessedRange = range.range;\n\n if (range && !this.isPartitionExhausted(range.continuationToken)) {\n rangeTokenPairs.push({\n range: range.range,\n continuationToken: range.continuationToken,\n filteringCondition: range.filteringCondition,\n });\n }\n }\n\n // Add any new target ranges that come after the last processed range\n if (lastProcessedRange) {\n for (const targetRange of targetRanges) {\n // Only include ranges whose minInclusive value is greater than or equal to maxExclusive of lastProcessedRange\n if (targetRange.minInclusive >= lastProcessedRange.maxExclusive) {\n rangeTokenPairs.push({\n range: targetRange,\n continuationToken: undefined as string | undefined,\n filteringCondition: undefined as string | undefined,\n });\n }\n }\n } else {\n // If no ranges were processed from continuation token, add all target ranges\n for (const targetRange of targetRanges) {\n rangeTokenPairs.push({\n range: targetRange,\n continuationToken: undefined as string | undefined,\n filteringCondition: undefined as string | undefined,\n });\n }\n }\n\n return {\n rangeTokenPairs,\n };\n }\n\n /**\n * Checks if a partition is exhausted based on its continuation token\n */\n private isPartitionExhausted(continuationToken: string | undefined): boolean {\n return (\n !continuationToken ||\n continuationToken === \"\" ||\n continuationToken === \"null\" ||\n continuationToken.toLowerCase() === \"null\"\n );\n }\n}\n"]}
@@ -0,0 +1,51 @@
1
+ import type { FilterContext, FilterStrategy } from "../index.js";
2
+ /**
3
+ * Implements post-fetch filtering for ORDER BY queries to handle continuation tokens correctly.
4
+ * This logic is applied only to the target partition from which a query is resumed.
5
+ * It filters out documents that have already been emitted in previous pages by comparing
6
+ * ORDER BY item values first, then document _rid, and finally using skip count for tie-breaking.
7
+ *
8
+ * Follows the .NET SDK FilterNextAsync logic:
9
+ * 1. Compare OrderBy values with continuation token values
10
+ * 2. Skip documents that come before continuation point
11
+ * 3. For exact OrderBy matches, use RID comparison
12
+ * 4. For exact RID matches, apply skip count logic
13
+ */
14
+ export declare class RidSkipCountFilter implements FilterStrategy {
15
+ private readonly filterContext;
16
+ private remainingSkipCount;
17
+ /**
18
+ * @param filterContext - The context containing values from the continuation token.
19
+ */
20
+ constructor(filterContext: FilterContext);
21
+ /**
22
+ * Applies the comprehensive OrderBy + RID + SkipCount filtering logic.
23
+ * @param documents - The documents fetched from the target partition.
24
+ * @returns A new array containing only the documents that should be processed.
25
+ */
26
+ applyFilter(documents: any[]): any[];
27
+ /**
28
+ * Determines if a document should be included based on OrderBy values, RID, and skip count.
29
+ * Implements the .NET SDK's FilterNextAsync logic with robust OrderBy comparison.
30
+ */
31
+ private shouldIncludeDocument;
32
+ /**
33
+ * Convert RID to BigInt for accurate comparison.
34
+ * Decodes base64 RID and extracts the Document ID portion (8 bytes at offset 8) as BigInt.
35
+ *
36
+ * RID Structure (from Java SDK ResourceId.java):
37
+ * - Bytes 0-3: Database ID (4 bytes)
38
+ * - Bytes 4-7: Collection ID (4 bytes)
39
+ * - Bytes 8-15: Document ID (8 bytes, stored in Big Endian but compared in Little Endian)
40
+ * - Bytes 16-19: Attachment ID (4 bytes, optional)
41
+ */
42
+ private ridToBigInt;
43
+ /**
44
+ * Compares the OrderBy items of a document with the continuation token's OrderBy items.
45
+ * Uses the exported compareOrderByItems utility function from orderByItemComparator.
46
+ * @param doc - The document to compare
47
+ * @returns negative if doc comes before continuation, 0 if same, positive if doc comes after
48
+ */
49
+ private compareOrderByItems;
50
+ }
51
+ //# sourceMappingURL=RidSkipCountFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RidSkipCountFilter.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGjE;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IAM3C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAL1C,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;OAEG;gBAC0B,aAAa,EAAE,aAAa;IAIzD;;;;OAIG;IACI,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IAc3C;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAwF7B;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IAoCnB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CAS5B"}