@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 @@
1
+ {"version":3,"file":"OrderByQueryContinuationTokenManager.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAGjF,OAAO,EACL,mCAAmC,EACnC,kCAAkC,EAClC,sCAAsC,GACvC,MAAM,oEAAoE,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,sEAAsE,CAAC;AAEvH;;;;GAIG;AACH,MAAM,OAAO,oCAAqC,SAAQ,4BAA4B;IAC5E,iBAAiB,CAA4C;IACpD,iBAAiB,CAAuB;IACxC,cAAc,CAAS;IAExC,YAAY,cAAsB,EAAE,wBAAiC;QACnE,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,wBAAwB,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,kCAAkC,CAAC,wBAAwB,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAES,4BAA4B,CAAC,cAAmC;QACxE,gFAAgF;QAChF,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAES,4BAA4B,CAAC,gBAA0B,EAAE,QAAgB;QACjF,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEO,sBAAsB,CAAC,QAAgB;QAC7C,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAChE,sCAAsC;YACtC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAES,0BAA0B,CAClC,QAAgB,EAChB,kBAA2B,KAAK;QAEhC,4EAA4E;QAC5E,IAAI,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,IAAI,qBAAqB,CAAC;YAE1B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1F,CAAC;YAED,MAAM,EAAE,wBAAwB,EAAE,GAAG,qBAAqB,CAAC;YAC3D,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,mEAAmE;gBACnE,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG;oBACrC,+BAA+B,CAAC,wBAAwB,CAAC;iBAC1D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,oDAAoD;gBACpD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACrC,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;gBACxC,eAAe,EAAE,qBAAqB,CAAC,eAAe;aACvD,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACnF,MAAM,EAAE,wBAAwB,EAAE,GAAG,qBAAqB,CAAC;QAE3D,kDAAkD;QAClD,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACnC,OAAO;gBACL,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;gBACxC,eAAe,EAAE,qBAAqB,CAAC,eAAe;aACvD,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,+BAA+B,CAAC,wBAAwB,CAAC,CAAC;QAE7E,wDAAwD;QACxD,IAAI,gBAAmC,CAAC;QACxC,IAAI,WAAmB,CAAC;QACxB,IAAI,SAAS,GAAW,CAAC,CAAC;QAC1B,IAAI,qBAAqB,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5E,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,QAAQ,GAAG,CAAC,CAAC;YAE/D,IAAI,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBACxD,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC;gBAC5E,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC;gBAC/D,+EAA+E;gBAC/E,2EAA2E;gBAC3E,SAAS,GAAG,CAAC,CAAC;gBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBACnD,SAAS,EAAE,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,sFAAsF;QACtF,mGAAmG;QACnG,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACnC,OAAO;gBACL,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;gBACxC,eAAe,EAAE,qBAAqB,CAAC,eAAe;aACvD,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnC,yCAAyC;QACzC,IAAI,CAAC,iBAAiB,GAAG,mCAAmC,CAC1D,aAAa,EACb,gBAAgB,EAChB,IAAI,CAAC,cAAc,EAAE,qBAAqB;QAC1C,SAAS,EAAE,0DAA0D;QACrE,WAAW,EAAE,8CAA8C;QAC3D,wBAAwB,CAAC,MAAM,EAAE,0CAA0C;QAC3E,wBAAwB,CAAC,KAAK,EAAE,yCAAyC;QACzE,wBAAwB,CAAC,gBAAgB,CAC1C,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;YACxC,eAAe,EAAE,qBAAqB,CAAC,eAAe;SACvD,CAAC;IACJ,CAAC;IAES,2BAA2B;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAES,wBAAwB;QAChC,OAAO,sCAAsC,CAAC;IAChD,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { BaseContinuationTokenManager } from \"./BaseContinuationTokenManager.js\";\nimport type { ParallelQueryResult, OrderByItemWithRid } from \"../parallelQueryResult.js\";\nimport type { OrderByQueryContinuationToken } from \"../../documents/ContinuationToken/OrderByQueryContinuationToken.js\";\nimport {\n createOrderByQueryContinuationToken,\n parseOrderByQueryContinuationToken,\n serializeOrderByQueryContinuationToken,\n} from \"../../documents/ContinuationToken/OrderByQueryContinuationToken.js\";\nimport { convertRangeMappingToQueryRange } from \"../../documents/ContinuationToken/CompositeQueryContinuationToken.js\";\n\n/**\n * Manages continuation tokens for ORDER BY queries using single-range sequential processing.\n * Uses OrderByQueryContinuationToken for tracking ORDER BY items and skip counts.\n * @internal\n */\nexport class OrderByQueryContinuationTokenManager extends BaseContinuationTokenManager {\n private continuationToken: OrderByQueryContinuationToken | undefined;\n private readonly orderByItemsArray: OrderByItemWithRid[];\n private readonly collectionLink: string;\n\n constructor(collectionLink: string, initialContinuationToken?: string) {\n super(initialContinuationToken);\n this.collectionLink = collectionLink;\n this.orderByItemsArray = [];\n if (initialContinuationToken) {\n this.continuationToken = parseOrderByQueryContinuationToken(initialContinuationToken);\n }\n }\n\n protected processQuerySpecificResponse(responseResult: ParallelQueryResult): void {\n // Clear existing items and add new ones without reassigning the array reference\n this.orderByItemsArray.length = 0;\n if (responseResult.orderByItems) {\n this.orderByItemsArray.push(...responseResult.orderByItems);\n }\n }\n\n protected performQuerySpecificDataTrim(_processedRanges: string[], endIndex: number): void {\n this.sliceOrderByItemsArray(endIndex);\n }\n\n private sliceOrderByItemsArray(endIndex: number): void {\n if (endIndex === 0 || endIndex >= this.orderByItemsArray.length) {\n // Clear the array without reassigning\n this.orderByItemsArray.length = 0;\n } else {\n // Remove items from 0 to endIndex-1, keeping items from endIndex onwards\n this.orderByItemsArray.splice(0, endIndex);\n }\n }\n\n protected processRangesForPagination(\n pageSize: number,\n isResponseEmpty: boolean = false,\n ): { endIndex: number; processedRanges: string[] } {\n // Handle empty response case - update the previous valid continuation token\n if (isResponseEmpty && this.continuationToken) {\n let rangeProcessingResult;\n\n if (this.rangeList.length === 0) {\n rangeProcessingResult = this.partitionManager.processOrderByRanges(pageSize);\n } else {\n rangeProcessingResult = this.partitionManager.processEmptyOrderByRanges(this.rangeList);\n }\n\n const { lastRangeBeforePageLimit } = rangeProcessingResult;\n if (lastRangeBeforePageLimit) {\n // Use the range matching the continuation token for empty response\n this.continuationToken.rangeMappings = [\n convertRangeMappingToQueryRange(lastRangeBeforePageLimit),\n ];\n } else {\n // Range is exhausted - clear the continuation token\n this.continuationToken = undefined;\n }\n return {\n endIndex: rangeProcessingResult.endIndex,\n processedRanges: rangeProcessingResult.processedRanges,\n };\n }\n\n // Normal processing path - handle non-empty responses\n const rangeProcessingResult = this.partitionManager.processOrderByRanges(pageSize);\n const { lastRangeBeforePageLimit } = rangeProcessingResult;\n\n // Check if we have a valid range to continue with\n if (!lastRangeBeforePageLimit) {\n this.continuationToken = undefined;\n return {\n endIndex: rangeProcessingResult.endIndex,\n processedRanges: rangeProcessingResult.processedRanges,\n };\n }\n\n const queryRange = convertRangeMappingToQueryRange(lastRangeBeforePageLimit);\n\n // Extract ORDER BY items from the last item on the page\n let lastOrderByItems: any[] | undefined;\n let documentRid: string;\n let skipCount: number = 0;\n if (rangeProcessingResult.endIndex > 0 && this.orderByItemsArray.length > 0) {\n const lastItemIndexOnPage = rangeProcessingResult.endIndex - 1;\n\n if (lastItemIndexOnPage < this.orderByItemsArray.length) {\n lastOrderByItems = this.orderByItemsArray[lastItemIndexOnPage].orderByItems;\n documentRid = this.orderByItemsArray[lastItemIndexOnPage]._rid;\n // Calculate skip count: count how many documents in the page have the same RID\n // This handles JOIN queries where multiple documents can have the same RID\n skipCount = 0;\n for (let i = 0; i <= lastItemIndexOnPage; i++) {\n if (this.orderByItemsArray[i]._rid === documentRid) {\n skipCount++;\n }\n }\n }\n }\n\n // If we don't have valid ORDER BY items, we cannot create a proper continuation token\n // This can happen when the response doesn't contain ORDER BY metadata or when there are no results\n if (!lastOrderByItems || lastOrderByItems.length === 0) {\n this.continuationToken = undefined;\n return {\n endIndex: rangeProcessingResult.endIndex,\n processedRanges: rangeProcessingResult.processedRanges,\n };\n }\n\n const rangeMappings = [queryRange];\n\n // Create new ORDER BY continuation token\n this.continuationToken = createOrderByQueryContinuationToken(\n rangeMappings,\n lastOrderByItems,\n this.collectionLink, // Container RID/link\n skipCount, // Number of documents with the same RID already processed\n documentRid, // Document RID from the last item in the page\n lastRangeBeforePageLimit.offset, // Current offset for OFFSET/LIMIT queries\n lastRangeBeforePageLimit.limit, // Current limit for OFFSET/LIMIT queries\n lastRangeBeforePageLimit.hashedLastResult, // Hash for distinct queries\n );\n\n return {\n endIndex: rangeProcessingResult.endIndex,\n processedRanges: rangeProcessingResult.processedRanges,\n };\n }\n\n protected getCurrentContinuationToken(): OrderByQueryContinuationToken | undefined {\n return this.continuationToken;\n }\n\n protected getSerializationFunction(): (token: OrderByQueryContinuationToken) => string {\n return serializeOrderByQueryContinuationToken;\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ParallelQueryContinuationTokenManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParallelQueryContinuationTokenManager.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { BaseContinuationTokenManager } from "./BaseContinuationTokenManager.js";
4
+ import { createCompositeQueryContinuationToken, serializeCompositeToken, parseCompositeQueryContinuationToken, convertRangeMappingToQueryRange, } from "../../documents/ContinuationToken/CompositeQueryContinuationToken.js";
5
+ /**
6
+ * Manages continuation tokens for parallel queries using multi-range aggregation.
7
+ * Uses CompositeQueryContinuationToken for range tracking across multiple partitions.
8
+ * @internal
9
+ */
10
+ export class ParallelQueryContinuationTokenManager extends BaseContinuationTokenManager {
11
+ continuationToken;
12
+ collectionLink;
13
+ constructor(collectionLink, initialContinuationToken) {
14
+ super(initialContinuationToken);
15
+ this.collectionLink = collectionLink;
16
+ if (initialContinuationToken) {
17
+ this.continuationToken = parseCompositeQueryContinuationToken(initialContinuationToken);
18
+ }
19
+ }
20
+ processRangesForPagination(pageSize, _isResponseEmpty) {
21
+ const result = this.partitionManager.processParallelRanges(pageSize);
22
+ if (!result || !result.processedRangeMappings || result.processedRangeMappings.length === 0) {
23
+ return { endIndex: 0, processedRanges: [] };
24
+ }
25
+ const rangeMappings = result.processedRangeMappings.map((mapping) => convertRangeMappingToQueryRange(mapping));
26
+ if (!this.continuationToken) {
27
+ this.continuationToken = createCompositeQueryContinuationToken(this.collectionLink, rangeMappings);
28
+ }
29
+ else {
30
+ this.updateExistingCompositeContinuationToken(rangeMappings);
31
+ }
32
+ if (result.lastPartitionBeforeCutoff && result.lastPartitionBeforeCutoff.mapping) {
33
+ this.continuationToken.offset = result.lastPartitionBeforeCutoff.mapping.offset;
34
+ this.continuationToken.limit = result.lastPartitionBeforeCutoff.mapping.limit;
35
+ }
36
+ return { endIndex: result.endIndex, processedRanges: result.processedRanges };
37
+ }
38
+ getCurrentContinuationToken() {
39
+ return this.continuationToken;
40
+ }
41
+ getSerializationFunction() {
42
+ return serializeCompositeToken;
43
+ }
44
+ processQuerySpecificResponse(_responseResult) {
45
+ // Parallel queries don't need additional response processing
46
+ }
47
+ performQuerySpecificDataTrim(_processedRanges, _endIndex) {
48
+ // Parallel queries don't need additional cleanup
49
+ }
50
+ updateExistingCompositeContinuationToken(rangeMappings) {
51
+ for (const newRange of rangeMappings) {
52
+ // Check if this range already exists in the token
53
+ const existingRangeIndex = this.continuationToken.rangeMappings.findIndex((existingRange) => existingRange.queryRange.min === newRange.queryRange.min &&
54
+ existingRange.queryRange.max === newRange.queryRange.max);
55
+ if (existingRangeIndex >= 0) {
56
+ // Range exists - update the continuation token
57
+ this.continuationToken.rangeMappings[existingRangeIndex] = newRange;
58
+ }
59
+ else {
60
+ // New range - add to the rangeMappings array
61
+ this.continuationToken.rangeMappings.push(newRange);
62
+ }
63
+ }
64
+ }
65
+ }
66
+ //# sourceMappingURL=ParallelQueryContinuationTokenManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParallelQueryContinuationTokenManager.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAMjF,OAAO,EACL,qCAAqC,EACrC,uBAAuB,EACvB,oCAAoC,EACpC,+BAA+B,GAChC,MAAM,sEAAsE,CAAC;AAG9E;;;;GAIG;AACH,MAAM,OAAO,qCAAsC,SAAQ,4BAA4B;IAC7E,iBAAiB,CAA8C;IACtD,cAAc,CAAS;IAExC,YAAY,cAAsB,EAAE,wBAAiC;QACnE,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,wBAAwB,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,oCAAoC,CAAC,wBAAwB,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAES,0BAA0B,CAClC,QAAgB,EAChB,gBAAyB;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5F,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QAC9C,CAAC;QAED,MAAM,aAAa,GAAsC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CACxF,CAAC,OAA0B,EAAE,EAAE,CAAC,+BAA+B,CAAC,OAAO,CAAC,CACzE,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,qCAAqC,CAC5D,IAAI,CAAC,cAAc,EACnB,aAAa,CACd,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,wCAAwC,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,MAAM,CAAC,yBAAyB,IAAI,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC;YACjF,IAAI,CAAC,iBAAkB,CAAC,MAAM,GAAG,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC;YACjF,IAAI,CAAC,iBAAkB,CAAC,KAAK,GAAG,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC;QACjF,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;IAChF,CAAC;IAES,2BAA2B;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAES,wBAAwB;QAChC,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAES,4BAA4B,CAAC,eAAoC;QACzE,6DAA6D;IAC/D,CAAC;IAES,4BAA4B,CAAC,gBAA0B,EAAE,SAAiB;QAClF,iDAAiD;IACnD,CAAC;IAEO,wCAAwC,CAC9C,aAAgD;QAEhD,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,kDAAkD;YAClD,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAkB,CAAC,aAAa,CAAC,SAAS,CACxE,CAAC,aAAa,EAAE,EAAE,CAChB,aAAa,CAAC,UAAU,CAAC,GAAG,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG;gBACxD,aAAa,CAAC,UAAU,CAAC,GAAG,KAAK,QAAQ,CAAC,UAAU,CAAC,GAAG,CAC3D,CAAC;YAEF,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;gBAC5B,+CAA+C;gBAC/C,IAAI,CAAC,iBAAkB,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,IAAI,CAAC,iBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { BaseContinuationTokenManager } from \"./BaseContinuationTokenManager.js\";\nimport type { ParallelQueryResult } from \"../parallelQueryResult.js\";\nimport type {\n CompositeQueryContinuationToken,\n QueryRangeWithContinuationToken,\n} from \"../../documents/ContinuationToken/CompositeQueryContinuationToken.js\";\nimport {\n createCompositeQueryContinuationToken,\n serializeCompositeToken,\n parseCompositeQueryContinuationToken,\n convertRangeMappingToQueryRange,\n} from \"../../documents/ContinuationToken/CompositeQueryContinuationToken.js\";\nimport type { QueryRangeMapping } from \"../queryRangeMapping.js\";\n\n/**\n * Manages continuation tokens for parallel queries using multi-range aggregation.\n * Uses CompositeQueryContinuationToken for range tracking across multiple partitions.\n * @internal\n */\nexport class ParallelQueryContinuationTokenManager extends BaseContinuationTokenManager {\n private continuationToken: CompositeQueryContinuationToken | undefined;\n private readonly collectionLink: string;\n\n constructor(collectionLink: string, initialContinuationToken?: string) {\n super(initialContinuationToken);\n this.collectionLink = collectionLink;\n if (initialContinuationToken) {\n this.continuationToken = parseCompositeQueryContinuationToken(initialContinuationToken);\n }\n }\n\n protected processRangesForPagination(\n pageSize: number,\n _isResponseEmpty: boolean,\n ): { endIndex: number; processedRanges: string[] } {\n const result = this.partitionManager.processParallelRanges(pageSize);\n if (!result || !result.processedRangeMappings || result.processedRangeMappings.length === 0) {\n return { endIndex: 0, processedRanges: [] };\n }\n\n const rangeMappings: QueryRangeWithContinuationToken[] = result.processedRangeMappings.map(\n (mapping: QueryRangeMapping) => convertRangeMappingToQueryRange(mapping),\n );\n\n if (!this.continuationToken) {\n this.continuationToken = createCompositeQueryContinuationToken(\n this.collectionLink,\n rangeMappings,\n );\n } else {\n this.updateExistingCompositeContinuationToken(rangeMappings);\n }\n\n if (result.lastPartitionBeforeCutoff && result.lastPartitionBeforeCutoff.mapping) {\n this.continuationToken!.offset = result.lastPartitionBeforeCutoff.mapping.offset;\n this.continuationToken!.limit = result.lastPartitionBeforeCutoff.mapping.limit;\n }\n return { endIndex: result.endIndex, processedRanges: result.processedRanges };\n }\n\n protected getCurrentContinuationToken(): CompositeQueryContinuationToken | undefined {\n return this.continuationToken;\n }\n\n protected getSerializationFunction(): (token: CompositeQueryContinuationToken) => string {\n return serializeCompositeToken;\n }\n\n protected processQuerySpecificResponse(_responseResult: ParallelQueryResult): void {\n // Parallel queries don't need additional response processing\n }\n\n protected performQuerySpecificDataTrim(_processedRanges: string[], _endIndex: number): void {\n // Parallel queries don't need additional cleanup\n }\n\n private updateExistingCompositeContinuationToken(\n rangeMappings: QueryRangeWithContinuationToken[],\n ): void {\n for (const newRange of rangeMappings) {\n // Check if this range already exists in the token\n const existingRangeIndex = this.continuationToken!.rangeMappings.findIndex(\n (existingRange) =>\n existingRange.queryRange.min === newRange.queryRange.min &&\n existingRange.queryRange.max === newRange.queryRange.max,\n );\n\n if (existingRangeIndex >= 0) {\n // Range exists - update the continuation token\n this.continuationToken!.rangeMappings[existingRangeIndex] = newRange;\n } else {\n // New range - add to the rangeMappings array\n this.continuationToken!.rangeMappings.push(newRange);\n }\n }\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ContinuationTokenParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContinuationTokenParser.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/ContinuationTokenParser.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ /**
4
+ * Parses a continuation token string to extract specific fields without full deserialization
5
+ * Supports both CompositeQueryContinuationToken and OrderByQueryContinuationToken formats
6
+ * @param continuationToken - The continuation token string to parse
7
+ * @returns Object containing offset, limit, and hashedLastResult if present
8
+ * @internal
9
+ */
10
+ export function parseContinuationTokenFields(continuationToken) {
11
+ try {
12
+ const parsed = JSON.parse(continuationToken);
13
+ return {
14
+ offset: parsed.offset,
15
+ limit: parsed.limit,
16
+ hashedLastResult: parsed.hashedLastResult,
17
+ };
18
+ }
19
+ catch (error) {
20
+ throw new Error(`Failed to parse continuation token: ${error instanceof Error ? error.message : String(error)}`);
21
+ }
22
+ }
23
+ //# sourceMappingURL=ContinuationTokenParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContinuationTokenParser.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/ContinuationTokenParser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAYlC;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,iBAAyB;IACpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE7C,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Lightweight interface for continuation token fields needed by pipeline\n * @internal\n */\nexport interface ContinuationTokenFields {\n offset?: number;\n limit?: number;\n hashedLastResult?: string;\n}\n\n/**\n * Parses a continuation token string to extract specific fields without full deserialization\n * Supports both CompositeQueryContinuationToken and OrderByQueryContinuationToken formats\n * @param continuationToken - The continuation token string to parse\n * @returns Object containing offset, limit, and hashedLastResult if present\n * @internal\n */\nexport function parseContinuationTokenFields(continuationToken: string): ContinuationTokenFields {\n try {\n const parsed = JSON.parse(continuationToken);\n\n return {\n offset: parsed.offset,\n limit: parsed.limit,\n hashedLastResult: parsed.hashedLastResult,\n };\n } catch (error) {\n throw new Error(\n `Failed to parse continuation token: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupByEndpointComponent.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAMhE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAO1F,cAAc;AACd,qBAAa,wBAAyB,YAAW,gBAAgB;IAE7D,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;gBADT,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS;IAG9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmD;IAC7E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IAClD,OAAO,CAAC,SAAS,CAAkB;IAE5B,cAAc,IAAI,OAAO;IAInB,SAAS,CAAC,cAAc,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAkEtF,OAAO,CAAC,uBAAuB;CAWhC"}
1
+ {"version":3,"file":"GroupByEndpointComponent.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAMhE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAS1F,cAAc;AACd,qBAAa,wBAAyB,YAAW,gBAAgB;IAE7D,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;gBADT,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS;IAG9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmD;IAC7E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IAClD,OAAO,CAAC,SAAS,CAAkB;IAE5B,cAAc,IAAI,OAAO;IAInB,SAAS,CAAC,cAAc,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAsFtF,OAAO,CAAC,uBAAuB;CAehC"}
@@ -2,6 +2,7 @@ import { hashObject } from "../../utils/hashObject.js";
2
2
  import { createAggregator } from "../Aggregators/index.js";
3
3
  import { getInitialHeader, mergeHeaders } from "../headerUtils.js";
4
4
  import { emptyGroup, extractAggregateResult } from "./emptyGroup.js";
5
+ import { createParallelQueryResult } from "../parallelQueryResult.js";
5
6
  /** @hidden */
6
7
  export class GroupByEndpointComponent {
7
8
  executionContext;
@@ -25,15 +26,27 @@ export class GroupByEndpointComponent {
25
26
  }
26
27
  const aggregateHeaders = getInitialHeader();
27
28
  const response = await this.executionContext.fetchMore(diagnosticNode);
29
+ if (!response) {
30
+ // If there are any groupings, consolidate and return them
31
+ if (this.groupings.size > 0) {
32
+ return this.consolidateGroupResults(aggregateHeaders);
33
+ }
34
+ return { result: undefined, headers: aggregateHeaders };
35
+ }
28
36
  mergeHeaders(aggregateHeaders, response.headers);
29
- if (response === undefined || response.result === undefined) {
37
+ if (response.result === undefined ||
38
+ !Array.isArray(response.result.buffer) ||
39
+ response.result.buffer.length === 0) {
30
40
  // If there are any groupings, consolidate and return them
31
41
  if (this.groupings.size > 0) {
32
42
  return this.consolidateGroupResults(aggregateHeaders);
33
43
  }
34
44
  return { result: undefined, headers: aggregateHeaders };
35
45
  }
36
- for (const item of response.result) {
46
+ const parallelResult = response.result;
47
+ const dataToProcess = parallelResult.buffer;
48
+ // Process GROUP BY aggregation logic
49
+ for (const item of dataToProcess) {
37
50
  // If it exists, process it via aggregators
38
51
  if (item) {
39
52
  const group = item.groupByItems ? await hashObject(item.groupByItems) : emptyGroup;
@@ -72,10 +85,10 @@ export class GroupByEndpointComponent {
72
85
  }
73
86
  }
74
87
  if (this.executionContext.hasMoreResults()) {
75
- return {
76
- result: [],
77
- headers: aggregateHeaders,
78
- };
88
+ // Return empty buffer but preserve the structure and pass-through fields
89
+ const result = createParallelQueryResult([], // empty buffer
90
+ new Map());
91
+ return { result, headers: aggregateHeaders };
79
92
  }
80
93
  else {
81
94
  return this.consolidateGroupResults(aggregateHeaders);
@@ -90,7 +103,9 @@ export class GroupByEndpointComponent {
90
103
  this.aggregateResultArray.push(groupResult);
91
104
  }
92
105
  this.completed = true;
93
- return { result: this.aggregateResultArray, headers: aggregateHeaders };
106
+ // Return in the new structure format using the utility function
107
+ const result = createParallelQueryResult(this.aggregateResultArray, new Map());
108
+ return { result, headers: aggregateHeaders };
94
109
  }
95
110
  }
96
111
  //# sourceMappingURL=GroupByEndpointComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GroupByEndpointComponent.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport type { CosmosHeaders } from \"../CosmosHeaders.js\";\nimport type { QueryInfo } from \"../../request/ErrorResponse.js\";\nimport { hashObject } from \"../../utils/hashObject.js\";\nimport type { Aggregator } from \"../Aggregators/index.js\";\nimport { createAggregator } from \"../Aggregators/index.js\";\nimport { getInitialHeader, mergeHeaders } from \"../headerUtils.js\";\nimport { emptyGroup, extractAggregateResult } from \"./emptyGroup.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\n\ninterface GroupByResult {\n groupByItems: any[];\n payload: any;\n}\n\n/** @hidden */\nexport class GroupByEndpointComponent implements ExecutionContext {\n constructor(\n private executionContext: ExecutionContext,\n private queryInfo: QueryInfo,\n ) {}\n\n private readonly groupings: Map<string, Map<string, Aggregator>> = new Map();\n private readonly aggregateResultArray: any[] = [];\n private completed: boolean = false;\n\n public hasMoreResults(): boolean {\n return this.executionContext.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n if (this.completed) {\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n const aggregateHeaders = getInitialHeader();\n const response = await this.executionContext.fetchMore(diagnosticNode);\n mergeHeaders(aggregateHeaders, response.headers);\n\n if (response === undefined || response.result === undefined) {\n // If there are any groupings, consolidate and return them\n if (this.groupings.size > 0) {\n return this.consolidateGroupResults(aggregateHeaders);\n }\n return { result: undefined, headers: aggregateHeaders };\n }\n\n for (const item of response.result as GroupByResult[]) {\n // If it exists, process it via aggregators\n if (item) {\n const group = item.groupByItems ? await hashObject(item.groupByItems) : emptyGroup;\n const aggregators = this.groupings.get(group);\n const payload = item.payload;\n if (aggregators) {\n // Iterator over all results in the payload\n for (const key of Object.keys(payload)) {\n // in case the value of a group is null make sure we create a dummy payload with item2==null\n const effectiveGroupByValue = payload[key]\n ? payload[key]\n : new Map().set(\"item2\", null);\n const aggregateResult = extractAggregateResult(effectiveGroupByValue);\n aggregators.get(key).aggregate(aggregateResult);\n }\n } else {\n // This is the first time we have seen a grouping. Setup the initial result without aggregate values\n const grouping = new Map();\n this.groupings.set(group, grouping);\n // Iterator over all results in the payload\n for (const key of Object.keys(payload)) {\n const aggregateType = this.queryInfo.groupByAliasToAggregateType[key];\n // Create a new aggregator for this specific aggregate field\n const aggregator = createAggregator(aggregateType);\n grouping.set(key, aggregator);\n if (aggregateType) {\n const aggregateResult = extractAggregateResult(payload[key]);\n aggregator.aggregate(aggregateResult);\n } else {\n aggregator.aggregate(payload[key]);\n }\n }\n }\n }\n }\n\n if (this.executionContext.hasMoreResults()) {\n return {\n result: [],\n headers: aggregateHeaders,\n };\n } else {\n return this.consolidateGroupResults(aggregateHeaders);\n }\n }\n\n private consolidateGroupResults(aggregateHeaders: CosmosHeaders): Response<any> {\n for (const grouping of this.groupings.values()) {\n const groupResult: any = {};\n for (const [aggregateKey, aggregator] of grouping.entries()) {\n groupResult[aggregateKey] = aggregator.getResult();\n }\n this.aggregateResultArray.push(groupResult);\n }\n this.completed = true;\n return { result: this.aggregateResultArray, headers: aggregateHeaders };\n }\n}\n"]}
1
+ {"version":3,"file":"GroupByEndpointComponent.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport type { CosmosHeaders } from \"../CosmosHeaders.js\";\nimport type { QueryInfo } from \"../../request/ErrorResponse.js\";\nimport { hashObject } from \"../../utils/hashObject.js\";\nimport type { Aggregator } from \"../Aggregators/index.js\";\nimport { createAggregator } from \"../Aggregators/index.js\";\nimport { getInitialHeader, mergeHeaders } from \"../headerUtils.js\";\nimport { emptyGroup, extractAggregateResult } from \"./emptyGroup.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport type { ParallelQueryResult } from \"../parallelQueryResult.js\";\nimport { createParallelQueryResult } from \"../parallelQueryResult.js\";\n\ninterface GroupByResult {\n groupByItems: any[];\n payload: any;\n}\n\n/** @hidden */\nexport class GroupByEndpointComponent implements ExecutionContext {\n constructor(\n private executionContext: ExecutionContext,\n private queryInfo: QueryInfo,\n ) {}\n\n private readonly groupings: Map<string, Map<string, Aggregator>> = new Map();\n private readonly aggregateResultArray: any[] = [];\n private completed: boolean = false;\n\n public hasMoreResults(): boolean {\n return this.executionContext.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n if (this.completed) {\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n const aggregateHeaders = getInitialHeader();\n const response = await this.executionContext.fetchMore(diagnosticNode);\n\n if (!response) {\n // If there are any groupings, consolidate and return them\n if (this.groupings.size > 0) {\n return this.consolidateGroupResults(aggregateHeaders);\n }\n return { result: undefined, headers: aggregateHeaders };\n }\n\n mergeHeaders(aggregateHeaders, response.headers);\n\n if (\n response.result === undefined ||\n !Array.isArray(response.result.buffer) ||\n response.result.buffer.length === 0\n ) {\n // If there are any groupings, consolidate and return them\n if (this.groupings.size > 0) {\n return this.consolidateGroupResults(aggregateHeaders);\n }\n return { result: undefined, headers: aggregateHeaders };\n }\n\n const parallelResult = response.result as ParallelQueryResult;\n const dataToProcess: GroupByResult[] = parallelResult.buffer as GroupByResult[];\n\n // Process GROUP BY aggregation logic\n for (const item of dataToProcess) {\n // If it exists, process it via aggregators\n if (item) {\n const group = item.groupByItems ? await hashObject(item.groupByItems) : emptyGroup;\n const aggregators = this.groupings.get(group);\n const payload = item.payload;\n if (aggregators) {\n // Iterator over all results in the payload\n for (const key of Object.keys(payload)) {\n // in case the value of a group is null make sure we create a dummy payload with item2==null\n const effectiveGroupByValue = payload[key]\n ? payload[key]\n : new Map().set(\"item2\", null);\n const aggregateResult = extractAggregateResult(effectiveGroupByValue);\n aggregators.get(key).aggregate(aggregateResult);\n }\n } else {\n // This is the first time we have seen a grouping. Setup the initial result without aggregate values\n const grouping = new Map();\n this.groupings.set(group, grouping);\n // Iterator over all results in the payload\n for (const key of Object.keys(payload)) {\n const aggregateType = this.queryInfo.groupByAliasToAggregateType[key];\n // Create a new aggregator for this specific aggregate field\n const aggregator = createAggregator(aggregateType);\n grouping.set(key, aggregator);\n if (aggregateType) {\n const aggregateResult = extractAggregateResult(payload[key]);\n aggregator.aggregate(aggregateResult);\n } else {\n aggregator.aggregate(payload[key]);\n }\n }\n }\n }\n }\n\n if (this.executionContext.hasMoreResults()) {\n // Return empty buffer but preserve the structure and pass-through fields\n const result = createParallelQueryResult(\n [], // empty buffer\n new Map(),\n );\n\n return { result, headers: aggregateHeaders };\n } else {\n return this.consolidateGroupResults(aggregateHeaders);\n }\n }\n\n private consolidateGroupResults(aggregateHeaders: CosmosHeaders): Response<any> {\n for (const grouping of this.groupings.values()) {\n const groupResult: any = {};\n for (const [aggregateKey, aggregator] of grouping.entries()) {\n groupResult[aggregateKey] = aggregator.getResult();\n }\n this.aggregateResultArray.push(groupResult);\n }\n this.completed = true;\n\n // Return in the new structure format using the utility function\n const result = createParallelQueryResult(this.aggregateResultArray, new Map());\n\n return { result, headers: aggregateHeaders };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupByValueEndpointComponent.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAM/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAO1F,cAAc;AACd,qBAAa,6BAA8B,YAAW,gBAAgB;IAOlE,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;IAPnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IAClD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAkB;gBAGzB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS;IAMvB,cAAc,IAAI,OAAO;IAInB,SAAS,CAAC,cAAc,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAiEtF,OAAO,CAAC,yBAAyB;CAalC"}
1
+ {"version":3,"file":"GroupByValueEndpointComponent.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAM/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAS1F,cAAc;AACd,qBAAa,6BAA8B,YAAW,gBAAgB;IAOlE,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;IAPnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IAClD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAkB;gBAGzB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS;IAMvB,cAAc,IAAI,OAAO;IAInB,SAAS,CAAC,cAAc,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAwFtF,OAAO,CAAC,yBAAyB;CAgBlC"}
@@ -2,6 +2,7 @@ import { hashObject } from "../../utils/hashObject.js";
2
2
  import { createAggregator } from "../Aggregators/index.js";
3
3
  import { getInitialHeader, mergeHeaders } from "../headerUtils.js";
4
4
  import { emptyGroup, extractAggregateResult } from "./emptyGroup.js";
5
+ import { createParallelQueryResult } from "../parallelQueryResult.js";
5
6
  /** @hidden */
6
7
  export class GroupByValueEndpointComponent {
7
8
  executionContext;
@@ -28,14 +29,24 @@ export class GroupByValueEndpointComponent {
28
29
  }
29
30
  const aggregateHeaders = getInitialHeader();
30
31
  const response = await this.executionContext.fetchMore(diagnosticNode);
32
+ if (!response) {
33
+ if (this.aggregators.size > 0) {
34
+ return this.generateAggregateResponse(aggregateHeaders);
35
+ }
36
+ return { result: undefined, headers: aggregateHeaders };
37
+ }
31
38
  mergeHeaders(aggregateHeaders, response.headers);
32
- if (response === undefined || response.result === undefined) {
39
+ if (response.result === undefined ||
40
+ !Array.isArray(response.result.buffer) ||
41
+ response.result.buffer.length === 0) {
33
42
  if (this.aggregators.size > 0) {
34
43
  return this.generateAggregateResponse(aggregateHeaders);
35
44
  }
36
45
  return { result: undefined, headers: aggregateHeaders };
37
46
  }
38
- for (const item of response.result) {
47
+ const parallelResult = response.result;
48
+ const dataToProcess = parallelResult.buffer;
49
+ for (const item of dataToProcess) {
39
50
  if (item) {
40
51
  let grouping = emptyGroup;
41
52
  let payload = item;
@@ -66,13 +77,17 @@ export class GroupByValueEndpointComponent {
66
77
  }
67
78
  // We bail early since we got an undefined result back `[{}]`
68
79
  if (this.completed) {
80
+ const result = createParallelQueryResult([], new Map());
69
81
  return {
70
- result: undefined,
82
+ result,
71
83
  headers: aggregateHeaders,
72
84
  };
73
85
  }
74
86
  if (this.executionContext.hasMoreResults()) {
75
- return { result: [], headers: aggregateHeaders };
87
+ // Return empty buffer but preserve the structure and pass-through fields
88
+ const result = createParallelQueryResult([], // empty buffer
89
+ new Map());
90
+ return { result, headers: aggregateHeaders };
76
91
  }
77
92
  else {
78
93
  // If no results are left in the underlying execution context, convert our aggregate results to an array
@@ -87,8 +102,9 @@ export class GroupByValueEndpointComponent {
87
102
  }
88
103
  }
89
104
  this.completed = true;
105
+ const result = createParallelQueryResult(this.aggregateResultArray, new Map());
90
106
  return {
91
- result: this.aggregateResultArray,
107
+ result,
92
108
  headers: aggregateHeaders,
93
109
  };
94
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GroupByValueEndpointComponent.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport type { CosmosHeaders } from \"../CosmosHeaders.js\";\nimport type { AggregateType, QueryInfo } from \"../../request/ErrorResponse.js\";\nimport { hashObject } from \"../../utils/hashObject.js\";\nimport type { Aggregator } from \"../Aggregators/index.js\";\nimport { createAggregator } from \"../Aggregators/index.js\";\nimport { getInitialHeader, mergeHeaders } from \"../headerUtils.js\";\nimport { emptyGroup, extractAggregateResult } from \"./emptyGroup.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\n\ninterface GroupByResult {\n groupByItems: any[];\n payload: any;\n}\n\n/** @hidden */\nexport class GroupByValueEndpointComponent implements ExecutionContext {\n private readonly aggregators: Map<string, Aggregator> = new Map();\n private readonly aggregateResultArray: any[] = [];\n private aggregateType: AggregateType;\n private completed: boolean = false;\n\n constructor(\n private executionContext: ExecutionContext,\n private queryInfo: QueryInfo,\n ) {\n // VALUE queries will only every have a single grouping\n this.aggregateType = this.queryInfo.aggregates[0];\n }\n\n public hasMoreResults(): boolean {\n return this.executionContext.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n if (this.completed) {\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n const aggregateHeaders = getInitialHeader();\n const response = await this.executionContext.fetchMore(diagnosticNode);\n mergeHeaders(aggregateHeaders, response.headers);\n\n if (response === undefined || response.result === undefined) {\n if (this.aggregators.size > 0) {\n return this.generateAggregateResponse(aggregateHeaders);\n }\n return { result: undefined, headers: aggregateHeaders };\n }\n\n for (const item of response.result as GroupByResult[]) {\n if (item) {\n let grouping: string = emptyGroup;\n let payload: any = item;\n if (item.groupByItems) {\n // If the query contains a GROUP BY clause, it will have a payload property and groupByItems\n payload = item.payload;\n grouping = await hashObject(item.groupByItems);\n }\n\n const aggregator = this.aggregators.get(grouping);\n if (!aggregator) {\n // This is the first time we have seen a grouping so create a new aggregator\n this.aggregators.set(grouping, createAggregator(this.aggregateType));\n }\n\n if (this.aggregateType) {\n const aggregateResult = extractAggregateResult(payload[0]);\n // if aggregate result is null, we need to short circuit aggregation and return undefined\n if (aggregateResult === null) {\n this.completed = true;\n }\n this.aggregators.get(grouping).aggregate(aggregateResult);\n } else {\n // Queries with no aggregates pass the payload directly to the aggregator\n // Example: SELECT VALUE c.team FROM c GROUP BY c.team\n this.aggregators.get(grouping).aggregate(payload);\n }\n }\n }\n\n // We bail early since we got an undefined result back `[{}]`\n if (this.completed) {\n return {\n result: undefined,\n headers: aggregateHeaders,\n };\n }\n\n if (this.executionContext.hasMoreResults()) {\n return { result: [], headers: aggregateHeaders };\n } else {\n // If no results are left in the underlying execution context, convert our aggregate results to an array\n return this.generateAggregateResponse(aggregateHeaders);\n }\n }\n\n private generateAggregateResponse(aggregateHeaders: CosmosHeaders): Response<any> {\n for (const aggregator of this.aggregators.values()) {\n const result = aggregator.getResult();\n if (result !== undefined) {\n this.aggregateResultArray.push(result);\n }\n }\n this.completed = true;\n return {\n result: this.aggregateResultArray,\n headers: aggregateHeaders,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"GroupByValueEndpointComponent.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport type { CosmosHeaders } from \"../CosmosHeaders.js\";\nimport type { AggregateType, QueryInfo } from \"../../request/ErrorResponse.js\";\nimport { hashObject } from \"../../utils/hashObject.js\";\nimport type { Aggregator } from \"../Aggregators/index.js\";\nimport { createAggregator } from \"../Aggregators/index.js\";\nimport { getInitialHeader, mergeHeaders } from \"../headerUtils.js\";\nimport { emptyGroup, extractAggregateResult } from \"./emptyGroup.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport type { ParallelQueryResult } from \"../parallelQueryResult.js\";\nimport { createParallelQueryResult } from \"../parallelQueryResult.js\";\n\ninterface GroupByResult {\n groupByItems: any[];\n payload: any;\n}\n\n/** @hidden */\nexport class GroupByValueEndpointComponent implements ExecutionContext {\n private readonly aggregators: Map<string, Aggregator> = new Map();\n private readonly aggregateResultArray: any[] = [];\n private aggregateType: AggregateType;\n private completed: boolean = false;\n\n constructor(\n private executionContext: ExecutionContext,\n private queryInfo: QueryInfo,\n ) {\n // VALUE queries will only every have a single grouping\n this.aggregateType = this.queryInfo.aggregates[0];\n }\n\n public hasMoreResults(): boolean {\n return this.executionContext.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n if (this.completed) {\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n const aggregateHeaders = getInitialHeader();\n const response = await this.executionContext.fetchMore(diagnosticNode);\n\n if (!response) {\n if (this.aggregators.size > 0) {\n return this.generateAggregateResponse(aggregateHeaders);\n }\n return { result: undefined, headers: aggregateHeaders };\n }\n\n mergeHeaders(aggregateHeaders, response.headers);\n\n if (\n response.result === undefined ||\n !Array.isArray(response.result.buffer) ||\n response.result.buffer.length === 0\n ) {\n if (this.aggregators.size > 0) {\n return this.generateAggregateResponse(aggregateHeaders);\n }\n return { result: undefined, headers: aggregateHeaders };\n }\n\n const parallelResult = response.result as ParallelQueryResult;\n const dataToProcess: GroupByResult[] = parallelResult.buffer as GroupByResult[];\n\n for (const item of dataToProcess) {\n if (item) {\n let grouping: string = emptyGroup;\n let payload: any = item;\n if (item.groupByItems) {\n // If the query contains a GROUP BY clause, it will have a payload property and groupByItems\n payload = item.payload;\n grouping = await hashObject(item.groupByItems);\n }\n\n const aggregator = this.aggregators.get(grouping);\n if (!aggregator) {\n // This is the first time we have seen a grouping so create a new aggregator\n this.aggregators.set(grouping, createAggregator(this.aggregateType));\n }\n\n if (this.aggregateType) {\n const aggregateResult = extractAggregateResult(payload[0]);\n // if aggregate result is null, we need to short circuit aggregation and return undefined\n if (aggregateResult === null) {\n this.completed = true;\n }\n this.aggregators.get(grouping).aggregate(aggregateResult);\n } else {\n // Queries with no aggregates pass the payload directly to the aggregator\n // Example: SELECT VALUE c.team FROM c GROUP BY c.team\n this.aggregators.get(grouping).aggregate(payload);\n }\n }\n }\n\n // We bail early since we got an undefined result back `[{}]`\n if (this.completed) {\n const result = createParallelQueryResult([], new Map());\n\n return {\n result,\n headers: aggregateHeaders,\n };\n }\n\n if (this.executionContext.hasMoreResults()) {\n // Return empty buffer but preserve the structure and pass-through fields\n const result = createParallelQueryResult(\n [], // empty buffer\n new Map(),\n );\n\n return { result, headers: aggregateHeaders };\n } else {\n // If no results are left in the underlying execution context, convert our aggregate results to an array\n return this.generateAggregateResponse(aggregateHeaders);\n }\n }\n\n private generateAggregateResponse(aggregateHeaders: CosmosHeaders): Response<any> {\n for (const aggregator of this.aggregators.values()) {\n const result = aggregator.getResult();\n if (result !== undefined) {\n this.aggregateResultArray.push(result);\n }\n }\n this.completed = true;\n\n const result = createParallelQueryResult(this.aggregateResultArray, new Map());\n\n return {\n result,\n headers: aggregateHeaders,\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NonStreamingOrderByDistinctEndpointComponent.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAO1F;;;GAGG;AACH,qBAAa,4CAA6C,YAAW,gBAAgB;IAqBjF,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,qBAAqB;IAvB/B;;OAEG;IACH,OAAO,CAAC,YAAY,CAAoD;IACxE;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAAoD;IACjF;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,OAAO,CAAC,UAAU,CAAW;IAC7B;;OAEG;IACH,OAAO,CAAC,WAAW,CAAkB;gBAG3B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,MAAM,EAC/B,qBAAqB,GAAE,OAAe;IAiBhD;;OAEG;YACW,qBAAqB;IA2B5B,cAAc,IAAI,OAAO;IAKnB,SAAS,CAAC,cAAc,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;CA+DxF"}
1
+ {"version":3,"file":"NonStreamingOrderByDistinctEndpointComponent.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAS1F;;;GAGG;AACH,qBAAa,4CAA6C,YAAW,gBAAgB;IAqBjF,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,qBAAqB;IAvB/B;;OAEG;IACH,OAAO,CAAC,YAAY,CAAoD;IACxE;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAAoD;IACjF;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,OAAO,CAAC,UAAU,CAAW;IAC7B;;OAEG;IACH,OAAO,CAAC,WAAW,CAAkB;gBAG3B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,MAAM,EAC/B,qBAAqB,GAAE,OAAe;IAiBhD;;OAEG;YACW,qBAAqB;IA2B5B,cAAc,IAAI,OAAO;IAKnB,SAAS,CAAC,cAAc,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;CAoGxF"}
@@ -3,6 +3,7 @@ import { hashObject } from "../../utils/hashObject.js";
3
3
  import { FixedSizePriorityQueue } from "../../utils/fixedSizePriorityQueue.js";
4
4
  import { NonStreamingOrderByMap } from "../../utils/nonStreamingOrderByMap.js";
5
5
  import { OrderByComparator } from "../orderByComparator.js";
6
+ import { createParallelQueryResult } from "../parallelQueryResult.js";
6
7
  /**
7
8
  * @hidden
8
9
  * Represents an endpoint in handling an non-streaming order by distinct query.
@@ -96,19 +97,36 @@ export class NonStreamingOrderByDistinctEndpointComponent {
96
97
  if (this.executionContext.hasMoreResults()) {
97
98
  // Grab the next result
98
99
  const response = await this.executionContext.fetchMore(diagnosticNode);
99
- if (response === undefined || response.result === undefined) {
100
+ if (!response) {
100
101
  this.isCompleted = true;
101
102
  if (this.aggregateMap.size() > 0) {
102
103
  await this.buildFinalResultArray();
104
+ const result = createParallelQueryResult(this.finalResultArray, new Map(), {}, undefined);
103
105
  return {
104
- result: this.finalResultArray,
106
+ result,
107
+ headers: resHeaders,
108
+ };
109
+ }
110
+ return { result: undefined, headers: resHeaders };
111
+ }
112
+ if (response.result === undefined ||
113
+ !Array.isArray(response.result.buffer) ||
114
+ response.result.buffer.length === 0) {
115
+ this.isCompleted = true;
116
+ if (this.aggregateMap.size() > 0) {
117
+ await this.buildFinalResultArray();
118
+ const result = createParallelQueryResult(this.finalResultArray, new Map(), {}, undefined);
119
+ return {
120
+ result,
105
121
  headers: response.headers,
106
122
  };
107
123
  }
108
124
  return { result: undefined, headers: response.headers };
109
125
  }
110
126
  resHeaders = response.headers;
111
- for (const item of response.result) {
127
+ const parallelResult = response.result;
128
+ const dataToProcess = parallelResult.buffer;
129
+ for (const item of dataToProcess) {
112
130
  if (item) {
113
131
  const key = await hashObject(item?.payload);
114
132
  this.aggregateMap.set(key, item);
@@ -116,8 +134,10 @@ export class NonStreamingOrderByDistinctEndpointComponent {
116
134
  }
117
135
  // return [] to signal that there are more results to fetch.
118
136
  if (this.executionContext.hasMoreResults()) {
137
+ const result = createParallelQueryResult([], // empty buffer
138
+ new Map(), undefined, undefined);
119
139
  return {
120
- result: [],
140
+ result,
121
141
  headers: resHeaders,
122
142
  };
123
143
  }
@@ -126,14 +146,16 @@ export class NonStreamingOrderByDistinctEndpointComponent {
126
146
  if (!this.executionContext.hasMoreResults() && !this.isCompleted) {
127
147
  this.isCompleted = true;
128
148
  await this.buildFinalResultArray();
149
+ const result = createParallelQueryResult(this.finalResultArray, new Map());
129
150
  return {
130
- result: this.finalResultArray,
151
+ result,
131
152
  headers: resHeaders,
132
153
  };
133
154
  }
134
155
  // Signal that there are no more results.
156
+ const result = createParallelQueryResult([], new Map());
135
157
  return {
136
- result: undefined,
158
+ result,
137
159
  headers: resHeaders,
138
160
  };
139
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NonStreamingOrderByDistinctEndpointComponent.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { QueryInfo, Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport { getInitialHeader } from \"../headerUtils.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport { hashObject } from \"../../utils/hashObject.js\";\nimport type { NonStreamingOrderByResult } from \"../nonStreamingOrderByResult.js\";\nimport { FixedSizePriorityQueue } from \"../../utils/fixedSizePriorityQueue.js\";\nimport { NonStreamingOrderByMap } from \"../../utils/nonStreamingOrderByMap.js\";\nimport { OrderByComparator } from \"../orderByComparator.js\";\n\n/**\n * @hidden\n * Represents an endpoint in handling an non-streaming order by distinct query.\n */\nexport class NonStreamingOrderByDistinctEndpointComponent implements ExecutionContext {\n /**\n * A Map that holds the distinct values of the items before storing in priority queue.\n */\n private aggregateMap: NonStreamingOrderByMap<NonStreamingOrderByResult>;\n /**\n * A priority queue to compute the final sorted results.\n */\n private nonStreamingOrderByPQ: FixedSizePriorityQueue<NonStreamingOrderByResult>;\n /**\n * Array to store the final sorted results.\n */\n private finalResultArray: NonStreamingOrderByResult[];\n\n private sortOrders: string[];\n /**\n * Flag to determine if all results are fetched from backend and results can be returned.\n */\n private isCompleted: boolean = false;\n\n constructor(\n private executionContext: ExecutionContext,\n private queryInfo: QueryInfo,\n private priorityQueueBufferSize: number,\n private emitRawOrderByPayload: boolean = false,\n ) {\n this.sortOrders = this.queryInfo.orderBy;\n const comparator = new OrderByComparator(this.sortOrders);\n this.aggregateMap = new NonStreamingOrderByMap<NonStreamingOrderByResult>(\n (a: NonStreamingOrderByResult, b: NonStreamingOrderByResult) => {\n return comparator.compareItems(a, b);\n },\n );\n this.nonStreamingOrderByPQ = new FixedSizePriorityQueue<NonStreamingOrderByResult>(\n (a: NonStreamingOrderByResult, b: NonStreamingOrderByResult) => {\n return comparator.compareItems(b, a);\n },\n this.priorityQueueBufferSize,\n );\n }\n\n /**\n * Build final sorted result array from which responses will be served.\n */\n private async buildFinalResultArray(): Promise<void> {\n // Fetch all distinct values from the map and store in priority queue.\n const allValues = this.aggregateMap.getAllValuesAndReset();\n for (const value of allValues) {\n this.nonStreamingOrderByPQ.enqueue(value);\n }\n\n // Compute the final result array size based on offset and limit.\n const offSet = this.queryInfo.offset ? this.queryInfo.offset : 0;\n const queueSize = this.nonStreamingOrderByPQ.size();\n const finalArraySize = queueSize - offSet;\n\n if (finalArraySize <= 0) {\n this.finalResultArray = [];\n } else {\n this.finalResultArray = new Array(finalArraySize);\n // Only keep the final result array size number of items in the final result array and discard the rest.\n for (let count = finalArraySize - 1; count >= 0; count--) {\n if (this.emitRawOrderByPayload) {\n this.finalResultArray[count] = this.nonStreamingOrderByPQ.dequeue();\n } else {\n this.finalResultArray[count] = this.nonStreamingOrderByPQ.dequeue()?.payload;\n }\n }\n }\n }\n\n public hasMoreResults(): boolean {\n if (this.priorityQueueBufferSize === 0) return false;\n return this.executionContext.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n if (this.isCompleted) {\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n let resHeaders = getInitialHeader();\n // if size is 0, just return undefined to signal to more results. Valid if query is TOP 0 or LIMIT 0\n if (this.priorityQueueBufferSize <= 0) {\n return {\n result: undefined,\n headers: resHeaders,\n };\n }\n\n // If there are more results in backend, keep filling map.\n if (this.executionContext.hasMoreResults()) {\n // Grab the next result\n const response = await this.executionContext.fetchMore(diagnosticNode);\n if (response === undefined || response.result === undefined) {\n this.isCompleted = true;\n if (this.aggregateMap.size() > 0) {\n await this.buildFinalResultArray();\n return {\n result: this.finalResultArray,\n headers: response.headers,\n };\n }\n return { result: undefined, headers: response.headers };\n }\n resHeaders = response.headers;\n for (const item of response.result) {\n if (item) {\n const key = await hashObject(item?.payload);\n this.aggregateMap.set(key, item);\n }\n }\n\n // return [] to signal that there are more results to fetch.\n if (this.executionContext.hasMoreResults()) {\n return {\n result: [],\n headers: resHeaders,\n };\n }\n }\n\n // If all results are fetched from backend, prepare final results\n if (!this.executionContext.hasMoreResults() && !this.isCompleted) {\n this.isCompleted = true;\n await this.buildFinalResultArray();\n return {\n result: this.finalResultArray,\n headers: resHeaders,\n };\n }\n // Signal that there are no more results.\n return {\n result: undefined,\n headers: resHeaders,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"NonStreamingOrderByDistinctEndpointComponent.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { QueryInfo, Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport { getInitialHeader } from \"../headerUtils.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport { hashObject } from \"../../utils/hashObject.js\";\nimport type { NonStreamingOrderByResult } from \"../nonStreamingOrderByResult.js\";\nimport { FixedSizePriorityQueue } from \"../../utils/fixedSizePriorityQueue.js\";\nimport { NonStreamingOrderByMap } from \"../../utils/nonStreamingOrderByMap.js\";\nimport { OrderByComparator } from \"../orderByComparator.js\";\nimport type { ParallelQueryResult } from \"../parallelQueryResult.js\";\nimport { createParallelQueryResult } from \"../parallelQueryResult.js\";\n\n/**\n * @hidden\n * Represents an endpoint in handling an non-streaming order by distinct query.\n */\nexport class NonStreamingOrderByDistinctEndpointComponent implements ExecutionContext {\n /**\n * A Map that holds the distinct values of the items before storing in priority queue.\n */\n private aggregateMap: NonStreamingOrderByMap<NonStreamingOrderByResult>;\n /**\n * A priority queue to compute the final sorted results.\n */\n private nonStreamingOrderByPQ: FixedSizePriorityQueue<NonStreamingOrderByResult>;\n /**\n * Array to store the final sorted results.\n */\n private finalResultArray: NonStreamingOrderByResult[];\n\n private sortOrders: string[];\n /**\n * Flag to determine if all results are fetched from backend and results can be returned.\n */\n private isCompleted: boolean = false;\n\n constructor(\n private executionContext: ExecutionContext,\n private queryInfo: QueryInfo,\n private priorityQueueBufferSize: number,\n private emitRawOrderByPayload: boolean = false,\n ) {\n this.sortOrders = this.queryInfo.orderBy;\n const comparator = new OrderByComparator(this.sortOrders);\n this.aggregateMap = new NonStreamingOrderByMap<NonStreamingOrderByResult>(\n (a: NonStreamingOrderByResult, b: NonStreamingOrderByResult) => {\n return comparator.compareItems(a, b);\n },\n );\n this.nonStreamingOrderByPQ = new FixedSizePriorityQueue<NonStreamingOrderByResult>(\n (a: NonStreamingOrderByResult, b: NonStreamingOrderByResult) => {\n return comparator.compareItems(b, a);\n },\n this.priorityQueueBufferSize,\n );\n }\n\n /**\n * Build final sorted result array from which responses will be served.\n */\n private async buildFinalResultArray(): Promise<void> {\n // Fetch all distinct values from the map and store in priority queue.\n const allValues = this.aggregateMap.getAllValuesAndReset();\n for (const value of allValues) {\n this.nonStreamingOrderByPQ.enqueue(value);\n }\n\n // Compute the final result array size based on offset and limit.\n const offSet = this.queryInfo.offset ? this.queryInfo.offset : 0;\n const queueSize = this.nonStreamingOrderByPQ.size();\n const finalArraySize = queueSize - offSet;\n\n if (finalArraySize <= 0) {\n this.finalResultArray = [];\n } else {\n this.finalResultArray = new Array(finalArraySize);\n // Only keep the final result array size number of items in the final result array and discard the rest.\n for (let count = finalArraySize - 1; count >= 0; count--) {\n if (this.emitRawOrderByPayload) {\n this.finalResultArray[count] = this.nonStreamingOrderByPQ.dequeue();\n } else {\n this.finalResultArray[count] = this.nonStreamingOrderByPQ.dequeue()?.payload;\n }\n }\n }\n }\n\n public hasMoreResults(): boolean {\n if (this.priorityQueueBufferSize === 0) return false;\n return this.executionContext.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n if (this.isCompleted) {\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n let resHeaders = getInitialHeader();\n // if size is 0, just return undefined to signal to more results. Valid if query is TOP 0 or LIMIT 0\n if (this.priorityQueueBufferSize <= 0) {\n return {\n result: undefined,\n headers: resHeaders,\n };\n }\n\n // If there are more results in backend, keep filling map.\n if (this.executionContext.hasMoreResults()) {\n // Grab the next result\n const response = await this.executionContext.fetchMore(diagnosticNode);\n\n if (!response) {\n this.isCompleted = true;\n if (this.aggregateMap.size() > 0) {\n await this.buildFinalResultArray();\n const result = createParallelQueryResult(this.finalResultArray, new Map(), {}, undefined);\n\n return {\n result,\n headers: resHeaders,\n };\n }\n return { result: undefined, headers: resHeaders };\n }\n\n if (\n response.result === undefined ||\n !Array.isArray(response.result.buffer) ||\n response.result.buffer.length === 0\n ) {\n this.isCompleted = true;\n if (this.aggregateMap.size() > 0) {\n await this.buildFinalResultArray();\n const result = createParallelQueryResult(this.finalResultArray, new Map(), {}, undefined);\n\n return {\n result,\n headers: response.headers,\n };\n }\n return { result: undefined, headers: response.headers };\n }\n resHeaders = response.headers;\n\n const parallelResult = response.result as ParallelQueryResult;\n const dataToProcess: NonStreamingOrderByResult[] =\n parallelResult.buffer as NonStreamingOrderByResult[];\n\n for (const item of dataToProcess) {\n if (item) {\n const key = await hashObject(item?.payload);\n this.aggregateMap.set(key, item);\n }\n }\n\n // return [] to signal that there are more results to fetch.\n if (this.executionContext.hasMoreResults()) {\n const result = createParallelQueryResult(\n [], // empty buffer\n new Map(),\n undefined,\n undefined,\n );\n\n return {\n result,\n headers: resHeaders,\n };\n }\n }\n\n // If all results are fetched from backend, prepare final results\n if (!this.executionContext.hasMoreResults() && !this.isCompleted) {\n this.isCompleted = true;\n await this.buildFinalResultArray();\n const result = createParallelQueryResult(this.finalResultArray, new Map());\n\n return {\n result,\n headers: resHeaders,\n };\n }\n // Signal that there are no more results.\n const result = createParallelQueryResult([], new Map());\n\n return {\n result,\n headers: resHeaders,\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NonStreamingOrderByEndpointComponent.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO/D;;;GAGG;AACH,qBAAa,oCAAqC,YAAW,gBAAgB;IAiBzE,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,qBAAqB;IApB/B;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAAoD;IACjF;;OAEG;IACH,OAAO,CAAC,WAAW,CAAkB;IACrC;;;;;;OAMG;gBAEO,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,GAAG,EAAE,EACjB,uBAAuB,EAAE,MAAM,EAC/B,MAAM,GAAE,MAAU,EAClB,qBAAqB,GAAE,OAAe;IAWhD;;;OAGG;IACI,cAAc,IAAI,OAAO;IAIhC;;;OAGG;IACU,SAAS,CAAC,cAAc,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAuDzE,qBAAqB;CAkCpC"}
1
+ {"version":3,"file":"NonStreamingOrderByEndpointComponent.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAU/D;;;GAGG;AACH,qBAAa,oCAAqC,YAAW,gBAAgB;IAiBzE,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,qBAAqB;IApB/B;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAAoD;IACjF;;OAEG;IACH,OAAO,CAAC,WAAW,CAAkB;IACrC;;;;;;OAMG;gBAEO,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,GAAG,EAAE,EACjB,uBAAuB,EAAE,MAAM,EAC/B,MAAM,GAAE,MAAU,EAClB,qBAAqB,GAAE,OAAe;IAWhD;;;OAGG;IACI,cAAc,IAAI,OAAO;IAIhC;;;OAGG;IACU,SAAS,CAAC,cAAc,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAiFzE,qBAAqB;CA6CpC"}