@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,133 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.OrderByQueryContinuationTokenManager = void 0;
6
+ const BaseContinuationTokenManager_js_1 = require("./BaseContinuationTokenManager.js");
7
+ const OrderByQueryContinuationToken_js_1 = require("../../documents/ContinuationToken/OrderByQueryContinuationToken.js");
8
+ const CompositeQueryContinuationToken_js_1 = require("../../documents/ContinuationToken/CompositeQueryContinuationToken.js");
9
+ /**
10
+ * Manages continuation tokens for ORDER BY queries using single-range sequential processing.
11
+ * Uses OrderByQueryContinuationToken for tracking ORDER BY items and skip counts.
12
+ * @internal
13
+ */
14
+ class OrderByQueryContinuationTokenManager extends BaseContinuationTokenManager_js_1.BaseContinuationTokenManager {
15
+ continuationToken;
16
+ orderByItemsArray;
17
+ collectionLink;
18
+ constructor(collectionLink, initialContinuationToken) {
19
+ super(initialContinuationToken);
20
+ this.collectionLink = collectionLink;
21
+ this.orderByItemsArray = [];
22
+ if (initialContinuationToken) {
23
+ this.continuationToken = (0, OrderByQueryContinuationToken_js_1.parseOrderByQueryContinuationToken)(initialContinuationToken);
24
+ }
25
+ }
26
+ processQuerySpecificResponse(responseResult) {
27
+ // Clear existing items and add new ones without reassigning the array reference
28
+ this.orderByItemsArray.length = 0;
29
+ if (responseResult.orderByItems) {
30
+ this.orderByItemsArray.push(...responseResult.orderByItems);
31
+ }
32
+ }
33
+ performQuerySpecificDataTrim(_processedRanges, endIndex) {
34
+ this.sliceOrderByItemsArray(endIndex);
35
+ }
36
+ sliceOrderByItemsArray(endIndex) {
37
+ if (endIndex === 0 || endIndex >= this.orderByItemsArray.length) {
38
+ // Clear the array without reassigning
39
+ this.orderByItemsArray.length = 0;
40
+ }
41
+ else {
42
+ // Remove items from 0 to endIndex-1, keeping items from endIndex onwards
43
+ this.orderByItemsArray.splice(0, endIndex);
44
+ }
45
+ }
46
+ processRangesForPagination(pageSize, isResponseEmpty = false) {
47
+ // Handle empty response case - update the previous valid continuation token
48
+ if (isResponseEmpty && this.continuationToken) {
49
+ let rangeProcessingResult;
50
+ if (this.rangeList.length === 0) {
51
+ rangeProcessingResult = this.partitionManager.processOrderByRanges(pageSize);
52
+ }
53
+ else {
54
+ rangeProcessingResult = this.partitionManager.processEmptyOrderByRanges(this.rangeList);
55
+ }
56
+ const { lastRangeBeforePageLimit } = rangeProcessingResult;
57
+ if (lastRangeBeforePageLimit) {
58
+ // Use the range matching the continuation token for empty response
59
+ this.continuationToken.rangeMappings = [
60
+ (0, CompositeQueryContinuationToken_js_1.convertRangeMappingToQueryRange)(lastRangeBeforePageLimit),
61
+ ];
62
+ }
63
+ else {
64
+ // Range is exhausted - clear the continuation token
65
+ this.continuationToken = undefined;
66
+ }
67
+ return {
68
+ endIndex: rangeProcessingResult.endIndex,
69
+ processedRanges: rangeProcessingResult.processedRanges,
70
+ };
71
+ }
72
+ // Normal processing path - handle non-empty responses
73
+ const rangeProcessingResult = this.partitionManager.processOrderByRanges(pageSize);
74
+ const { lastRangeBeforePageLimit } = rangeProcessingResult;
75
+ // Check if we have a valid range to continue with
76
+ if (!lastRangeBeforePageLimit) {
77
+ this.continuationToken = undefined;
78
+ return {
79
+ endIndex: rangeProcessingResult.endIndex,
80
+ processedRanges: rangeProcessingResult.processedRanges,
81
+ };
82
+ }
83
+ const queryRange = (0, CompositeQueryContinuationToken_js_1.convertRangeMappingToQueryRange)(lastRangeBeforePageLimit);
84
+ // Extract ORDER BY items from the last item on the page
85
+ let lastOrderByItems;
86
+ let documentRid;
87
+ let skipCount = 0;
88
+ if (rangeProcessingResult.endIndex > 0 && this.orderByItemsArray.length > 0) {
89
+ const lastItemIndexOnPage = rangeProcessingResult.endIndex - 1;
90
+ if (lastItemIndexOnPage < this.orderByItemsArray.length) {
91
+ lastOrderByItems = this.orderByItemsArray[lastItemIndexOnPage].orderByItems;
92
+ documentRid = this.orderByItemsArray[lastItemIndexOnPage]._rid;
93
+ // Calculate skip count: count how many documents in the page have the same RID
94
+ // This handles JOIN queries where multiple documents can have the same RID
95
+ skipCount = 0;
96
+ for (let i = 0; i <= lastItemIndexOnPage; i++) {
97
+ if (this.orderByItemsArray[i]._rid === documentRid) {
98
+ skipCount++;
99
+ }
100
+ }
101
+ }
102
+ }
103
+ // If we don't have valid ORDER BY items, we cannot create a proper continuation token
104
+ // This can happen when the response doesn't contain ORDER BY metadata or when there are no results
105
+ if (!lastOrderByItems || lastOrderByItems.length === 0) {
106
+ this.continuationToken = undefined;
107
+ return {
108
+ endIndex: rangeProcessingResult.endIndex,
109
+ processedRanges: rangeProcessingResult.processedRanges,
110
+ };
111
+ }
112
+ const rangeMappings = [queryRange];
113
+ // Create new ORDER BY continuation token
114
+ this.continuationToken = (0, OrderByQueryContinuationToken_js_1.createOrderByQueryContinuationToken)(rangeMappings, lastOrderByItems, this.collectionLink, // Container RID/link
115
+ skipCount, // Number of documents with the same RID already processed
116
+ documentRid, // Document RID from the last item in the page
117
+ lastRangeBeforePageLimit.offset, // Current offset for OFFSET/LIMIT queries
118
+ lastRangeBeforePageLimit.limit, // Current limit for OFFSET/LIMIT queries
119
+ lastRangeBeforePageLimit.hashedLastResult);
120
+ return {
121
+ endIndex: rangeProcessingResult.endIndex,
122
+ processedRanges: rangeProcessingResult.processedRanges,
123
+ };
124
+ }
125
+ getCurrentContinuationToken() {
126
+ return this.continuationToken;
127
+ }
128
+ getSerializationFunction() {
129
+ return OrderByQueryContinuationToken_js_1.serializeOrderByQueryContinuationToken;
130
+ }
131
+ }
132
+ exports.OrderByQueryContinuationTokenManager = OrderByQueryContinuationTokenManager;
133
+ //# sourceMappingURL=OrderByQueryContinuationTokenManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderByQueryContinuationTokenManager.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.ts"],"names":[],"mappings":"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","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,70 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ParallelQueryContinuationTokenManager = void 0;
6
+ const BaseContinuationTokenManager_js_1 = require("./BaseContinuationTokenManager.js");
7
+ const CompositeQueryContinuationToken_js_1 = require("../../documents/ContinuationToken/CompositeQueryContinuationToken.js");
8
+ /**
9
+ * Manages continuation tokens for parallel queries using multi-range aggregation.
10
+ * Uses CompositeQueryContinuationToken for range tracking across multiple partitions.
11
+ * @internal
12
+ */
13
+ class ParallelQueryContinuationTokenManager extends BaseContinuationTokenManager_js_1.BaseContinuationTokenManager {
14
+ continuationToken;
15
+ collectionLink;
16
+ constructor(collectionLink, initialContinuationToken) {
17
+ super(initialContinuationToken);
18
+ this.collectionLink = collectionLink;
19
+ if (initialContinuationToken) {
20
+ this.continuationToken = (0, CompositeQueryContinuationToken_js_1.parseCompositeQueryContinuationToken)(initialContinuationToken);
21
+ }
22
+ }
23
+ processRangesForPagination(pageSize, _isResponseEmpty) {
24
+ const result = this.partitionManager.processParallelRanges(pageSize);
25
+ if (!result || !result.processedRangeMappings || result.processedRangeMappings.length === 0) {
26
+ return { endIndex: 0, processedRanges: [] };
27
+ }
28
+ const rangeMappings = result.processedRangeMappings.map((mapping) => (0, CompositeQueryContinuationToken_js_1.convertRangeMappingToQueryRange)(mapping));
29
+ if (!this.continuationToken) {
30
+ this.continuationToken = (0, CompositeQueryContinuationToken_js_1.createCompositeQueryContinuationToken)(this.collectionLink, rangeMappings);
31
+ }
32
+ else {
33
+ this.updateExistingCompositeContinuationToken(rangeMappings);
34
+ }
35
+ if (result.lastPartitionBeforeCutoff && result.lastPartitionBeforeCutoff.mapping) {
36
+ this.continuationToken.offset = result.lastPartitionBeforeCutoff.mapping.offset;
37
+ this.continuationToken.limit = result.lastPartitionBeforeCutoff.mapping.limit;
38
+ }
39
+ return { endIndex: result.endIndex, processedRanges: result.processedRanges };
40
+ }
41
+ getCurrentContinuationToken() {
42
+ return this.continuationToken;
43
+ }
44
+ getSerializationFunction() {
45
+ return CompositeQueryContinuationToken_js_1.serializeCompositeToken;
46
+ }
47
+ processQuerySpecificResponse(_responseResult) {
48
+ // Parallel queries don't need additional response processing
49
+ }
50
+ performQuerySpecificDataTrim(_processedRanges, _endIndex) {
51
+ // Parallel queries don't need additional cleanup
52
+ }
53
+ updateExistingCompositeContinuationToken(rangeMappings) {
54
+ for (const newRange of rangeMappings) {
55
+ // Check if this range already exists in the token
56
+ const existingRangeIndex = this.continuationToken.rangeMappings.findIndex((existingRange) => existingRange.queryRange.min === newRange.queryRange.min &&
57
+ existingRange.queryRange.max === newRange.queryRange.max);
58
+ if (existingRangeIndex >= 0) {
59
+ // Range exists - update the continuation token
60
+ this.continuationToken.rangeMappings[existingRangeIndex] = newRange;
61
+ }
62
+ else {
63
+ // New range - add to the rangeMappings array
64
+ this.continuationToken.rangeMappings.push(newRange);
65
+ }
66
+ }
67
+ }
68
+ }
69
+ exports.ParallelQueryContinuationTokenManager = ParallelQueryContinuationTokenManager;
70
+ //# 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,uFAAiF;AAMjF,6HAK8E;AAG9E;;;;GAIG;AACH,MAAa,qCAAsC,SAAQ,8DAA4B;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,IAAA,yEAAoC,EAAC,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,IAAA,oEAA+B,EAAC,OAAO,CAAC,CACzE,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAA,0EAAqC,EAC5D,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,4DAAuB,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;AA7ED,sFA6EC","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,26 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.parseContinuationTokenFields = parseContinuationTokenFields;
6
+ /**
7
+ * Parses a continuation token string to extract specific fields without full deserialization
8
+ * Supports both CompositeQueryContinuationToken and OrderByQueryContinuationToken formats
9
+ * @param continuationToken - The continuation token string to parse
10
+ * @returns Object containing offset, limit, and hashedLastResult if present
11
+ * @internal
12
+ */
13
+ function parseContinuationTokenFields(continuationToken) {
14
+ try {
15
+ const parsed = JSON.parse(continuationToken);
16
+ return {
17
+ offset: parsed.offset,
18
+ limit: parsed.limit,
19
+ hashedLastResult: parsed.hashedLastResult,
20
+ };
21
+ }
22
+ catch (error) {
23
+ throw new Error(`Failed to parse continuation token: ${error instanceof Error ? error.message : String(error)}`);
24
+ }
25
+ }
26
+ //# 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;;AAmBlC,oEAcC;AArBD;;;;;;GAMG;AACH,SAAgB,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"}
@@ -5,6 +5,7 @@ const hashObject_js_1 = require("../../utils/hashObject.js");
5
5
  const index_js_1 = require("../Aggregators/index.js");
6
6
  const headerUtils_js_1 = require("../headerUtils.js");
7
7
  const emptyGroup_js_1 = require("./emptyGroup.js");
8
+ const parallelQueryResult_js_1 = require("../parallelQueryResult.js");
8
9
  /** @hidden */
9
10
  class GroupByEndpointComponent {
10
11
  executionContext;
@@ -28,15 +29,27 @@ class GroupByEndpointComponent {
28
29
  }
29
30
  const aggregateHeaders = (0, headerUtils_js_1.getInitialHeader)();
30
31
  const response = await this.executionContext.fetchMore(diagnosticNode);
32
+ if (!response) {
33
+ // If there are any groupings, consolidate and return them
34
+ if (this.groupings.size > 0) {
35
+ return this.consolidateGroupResults(aggregateHeaders);
36
+ }
37
+ return { result: undefined, headers: aggregateHeaders };
38
+ }
31
39
  (0, headerUtils_js_1.mergeHeaders)(aggregateHeaders, response.headers);
32
- if (response === undefined || response.result === undefined) {
40
+ if (response.result === undefined ||
41
+ !Array.isArray(response.result.buffer) ||
42
+ response.result.buffer.length === 0) {
33
43
  // If there are any groupings, consolidate and return them
34
44
  if (this.groupings.size > 0) {
35
45
  return this.consolidateGroupResults(aggregateHeaders);
36
46
  }
37
47
  return { result: undefined, headers: aggregateHeaders };
38
48
  }
39
- for (const item of response.result) {
49
+ const parallelResult = response.result;
50
+ const dataToProcess = parallelResult.buffer;
51
+ // Process GROUP BY aggregation logic
52
+ for (const item of dataToProcess) {
40
53
  // If it exists, process it via aggregators
41
54
  if (item) {
42
55
  const group = item.groupByItems ? await (0, hashObject_js_1.hashObject)(item.groupByItems) : emptyGroup_js_1.emptyGroup;
@@ -75,10 +88,10 @@ class GroupByEndpointComponent {
75
88
  }
76
89
  }
77
90
  if (this.executionContext.hasMoreResults()) {
78
- return {
79
- result: [],
80
- headers: aggregateHeaders,
81
- };
91
+ // Return empty buffer but preserve the structure and pass-through fields
92
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)([], // empty buffer
93
+ new Map());
94
+ return { result, headers: aggregateHeaders };
82
95
  }
83
96
  else {
84
97
  return this.consolidateGroupResults(aggregateHeaders);
@@ -93,7 +106,9 @@ class GroupByEndpointComponent {
93
106
  this.aggregateResultArray.push(groupResult);
94
107
  }
95
108
  this.completed = true;
96
- return { result: this.aggregateResultArray, headers: aggregateHeaders };
109
+ // Return in the new structure format using the utility function
110
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)(this.aggregateResultArray, new Map());
111
+ return { result, headers: aggregateHeaders };
97
112
  }
98
113
  }
99
114
  exports.GroupByEndpointComponent = GroupByEndpointComponent;
@@ -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"}
@@ -5,6 +5,7 @@ const hashObject_js_1 = require("../../utils/hashObject.js");
5
5
  const index_js_1 = require("../Aggregators/index.js");
6
6
  const headerUtils_js_1 = require("../headerUtils.js");
7
7
  const emptyGroup_js_1 = require("./emptyGroup.js");
8
+ const parallelQueryResult_js_1 = require("../parallelQueryResult.js");
8
9
  /** @hidden */
9
10
  class GroupByValueEndpointComponent {
10
11
  executionContext;
@@ -31,14 +32,24 @@ class GroupByValueEndpointComponent {
31
32
  }
32
33
  const aggregateHeaders = (0, headerUtils_js_1.getInitialHeader)();
33
34
  const response = await this.executionContext.fetchMore(diagnosticNode);
35
+ if (!response) {
36
+ if (this.aggregators.size > 0) {
37
+ return this.generateAggregateResponse(aggregateHeaders);
38
+ }
39
+ return { result: undefined, headers: aggregateHeaders };
40
+ }
34
41
  (0, headerUtils_js_1.mergeHeaders)(aggregateHeaders, response.headers);
35
- if (response === undefined || response.result === undefined) {
42
+ if (response.result === undefined ||
43
+ !Array.isArray(response.result.buffer) ||
44
+ response.result.buffer.length === 0) {
36
45
  if (this.aggregators.size > 0) {
37
46
  return this.generateAggregateResponse(aggregateHeaders);
38
47
  }
39
48
  return { result: undefined, headers: aggregateHeaders };
40
49
  }
41
- for (const item of response.result) {
50
+ const parallelResult = response.result;
51
+ const dataToProcess = parallelResult.buffer;
52
+ for (const item of dataToProcess) {
42
53
  if (item) {
43
54
  let grouping = emptyGroup_js_1.emptyGroup;
44
55
  let payload = item;
@@ -69,13 +80,17 @@ class GroupByValueEndpointComponent {
69
80
  }
70
81
  // We bail early since we got an undefined result back `[{}]`
71
82
  if (this.completed) {
83
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)([], new Map());
72
84
  return {
73
- result: undefined,
85
+ result,
74
86
  headers: aggregateHeaders,
75
87
  };
76
88
  }
77
89
  if (this.executionContext.hasMoreResults()) {
78
- return { result: [], headers: aggregateHeaders };
90
+ // Return empty buffer but preserve the structure and pass-through fields
91
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)([], // empty buffer
92
+ new Map());
93
+ return { result, headers: aggregateHeaders };
79
94
  }
80
95
  else {
81
96
  // If no results are left in the underlying execution context, convert our aggregate results to an array
@@ -90,8 +105,9 @@ class GroupByValueEndpointComponent {
90
105
  }
91
106
  }
92
107
  this.completed = true;
108
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)(this.aggregateResultArray, new Map());
93
109
  return {
94
- result: this.aggregateResultArray,
110
+ result,
95
111
  headers: aggregateHeaders,
96
112
  };
97
113
  }
@@ -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"}
@@ -6,6 +6,7 @@ const hashObject_js_1 = require("../../utils/hashObject.js");
6
6
  const fixedSizePriorityQueue_js_1 = require("../../utils/fixedSizePriorityQueue.js");
7
7
  const nonStreamingOrderByMap_js_1 = require("../../utils/nonStreamingOrderByMap.js");
8
8
  const orderByComparator_js_1 = require("../orderByComparator.js");
9
+ const parallelQueryResult_js_1 = require("../parallelQueryResult.js");
9
10
  /**
10
11
  * @hidden
11
12
  * Represents an endpoint in handling an non-streaming order by distinct query.
@@ -99,19 +100,36 @@ class NonStreamingOrderByDistinctEndpointComponent {
99
100
  if (this.executionContext.hasMoreResults()) {
100
101
  // Grab the next result
101
102
  const response = await this.executionContext.fetchMore(diagnosticNode);
102
- if (response === undefined || response.result === undefined) {
103
+ if (!response) {
103
104
  this.isCompleted = true;
104
105
  if (this.aggregateMap.size() > 0) {
105
106
  await this.buildFinalResultArray();
107
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)(this.finalResultArray, new Map(), {}, undefined);
106
108
  return {
107
- result: this.finalResultArray,
109
+ result,
110
+ headers: resHeaders,
111
+ };
112
+ }
113
+ return { result: undefined, headers: resHeaders };
114
+ }
115
+ if (response.result === undefined ||
116
+ !Array.isArray(response.result.buffer) ||
117
+ response.result.buffer.length === 0) {
118
+ this.isCompleted = true;
119
+ if (this.aggregateMap.size() > 0) {
120
+ await this.buildFinalResultArray();
121
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)(this.finalResultArray, new Map(), {}, undefined);
122
+ return {
123
+ result,
108
124
  headers: response.headers,
109
125
  };
110
126
  }
111
127
  return { result: undefined, headers: response.headers };
112
128
  }
113
129
  resHeaders = response.headers;
114
- for (const item of response.result) {
130
+ const parallelResult = response.result;
131
+ const dataToProcess = parallelResult.buffer;
132
+ for (const item of dataToProcess) {
115
133
  if (item) {
116
134
  const key = await (0, hashObject_js_1.hashObject)(item?.payload);
117
135
  this.aggregateMap.set(key, item);
@@ -119,8 +137,10 @@ class NonStreamingOrderByDistinctEndpointComponent {
119
137
  }
120
138
  // return [] to signal that there are more results to fetch.
121
139
  if (this.executionContext.hasMoreResults()) {
140
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)([], // empty buffer
141
+ new Map(), undefined, undefined);
122
142
  return {
123
- result: [],
143
+ result,
124
144
  headers: resHeaders,
125
145
  };
126
146
  }
@@ -129,14 +149,16 @@ class NonStreamingOrderByDistinctEndpointComponent {
129
149
  if (!this.executionContext.hasMoreResults() && !this.isCompleted) {
130
150
  this.isCompleted = true;
131
151
  await this.buildFinalResultArray();
152
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)(this.finalResultArray, new Map());
132
153
  return {
133
- result: this.finalResultArray,
154
+ result,
134
155
  headers: resHeaders,
135
156
  };
136
157
  }
137
158
  // Signal that there are no more results.
159
+ const result = (0, parallelQueryResult_js_1.createParallelQueryResult)([], new Map());
138
160
  return {
139
- result: undefined,
161
+ result,
140
162
  headers: resHeaders,
141
163
  };
142
164
  }