@azure/cosmos 4.5.0 → 4.6.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 (1401) hide show
  1. package/README.md +32 -0
  2. package/dist/browser/ChangeFeedIterator.js +17 -11
  3. package/dist/browser/ChangeFeedIterator.js.map +1 -1
  4. package/dist/browser/ChangeFeedResponse.js +8 -0
  5. package/dist/browser/ChangeFeedResponse.js.map +1 -1
  6. package/dist/browser/ClientContext.d.ts.map +1 -1
  7. package/dist/browser/ClientContext.js +232 -48
  8. package/dist/browser/ClientContext.js.map +1 -1
  9. package/dist/browser/CosmosClient.d.ts +13 -0
  10. package/dist/browser/CosmosClient.d.ts.map +1 -1
  11. package/dist/browser/CosmosClient.js +53 -6
  12. package/dist/browser/CosmosClient.js.map +1 -1
  13. package/dist/browser/CosmosClientOptions.d.ts.map +1 -1
  14. package/dist/browser/CosmosClientOptions.js.map +1 -1
  15. package/dist/browser/CosmosDiagnostics.d.ts +4 -0
  16. package/dist/browser/CosmosDiagnostics.d.ts.map +1 -1
  17. package/dist/browser/CosmosDiagnostics.js +3 -0
  18. package/dist/browser/CosmosDiagnostics.js.map +1 -1
  19. package/dist/browser/GlobalEndpointManagerOptions.d.ts +2 -0
  20. package/dist/browser/GlobalEndpointManagerOptions.d.ts.map +1 -0
  21. package/dist/browser/GlobalEndpointManagerOptions.js +2 -0
  22. package/dist/browser/GlobalEndpointManagerOptions.js.map +1 -0
  23. package/dist/browser/PartitionKeyRangeFailoverInfo.js +8 -5
  24. package/dist/browser/PartitionKeyRangeFailoverInfo.js.map +1 -1
  25. package/dist/browser/bulk/Batcher.js +13 -3
  26. package/dist/browser/bulk/Batcher.js.map +1 -1
  27. package/dist/browser/bulk/BulkHelper.js +26 -11
  28. package/dist/browser/bulk/BulkHelper.js.map +1 -1
  29. package/dist/browser/bulk/BulkResponse.js +22 -20
  30. package/dist/browser/bulk/BulkResponse.js.map +1 -1
  31. package/dist/browser/bulk/CongestionAlgorithm.js +11 -4
  32. package/dist/browser/bulk/CongestionAlgorithm.js.map +1 -1
  33. package/dist/browser/bulk/HelperPerPartition.js +14 -1
  34. package/dist/browser/bulk/HelperPerPartition.js.map +1 -1
  35. package/dist/browser/bulk/ItemOperationContext.js +4 -0
  36. package/dist/browser/bulk/ItemOperationContext.js.map +1 -1
  37. package/dist/browser/bulk/Limiter.js +27 -18
  38. package/dist/browser/bulk/Limiter.js.map +1 -1
  39. package/dist/browser/bulk/PartitionMetric.js +4 -0
  40. package/dist/browser/bulk/PartitionMetric.js.map +1 -1
  41. package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.d.ts.map +1 -1
  42. package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.js +29 -15
  43. package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  44. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  45. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js +19 -8
  46. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  47. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  48. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  49. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts +5 -0
  50. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts.map +1 -1
  51. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
  52. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  53. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  54. package/dist/browser/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  55. package/dist/browser/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  56. package/dist/browser/client/ChangeFeed/ChangeFeedRange.js +20 -0
  57. package/dist/browser/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  58. package/dist/browser/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  59. package/dist/browser/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  60. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  61. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  62. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  63. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  64. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  65. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  66. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  67. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  68. package/dist/browser/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  69. package/dist/browser/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  70. package/dist/browser/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  71. package/dist/browser/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  72. package/dist/browser/client/ChangeFeed/FeedRange.js +8 -0
  73. package/dist/browser/client/ChangeFeed/FeedRange.js.map +1 -1
  74. package/dist/browser/client/ChangeFeed/FeedRangeQueue.js +1 -0
  75. package/dist/browser/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  76. package/dist/browser/client/ChangeFeed/InternalChangeFeedOptions.d.ts +1 -0
  77. package/dist/browser/client/ChangeFeed/InternalChangeFeedOptions.d.ts.map +1 -1
  78. package/dist/browser/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
  79. package/dist/browser/client/ChangeFeed/changeFeedUtils.d.ts.map +1 -1
  80. package/dist/browser/client/ChangeFeed/changeFeedUtils.js +6 -5
  81. package/dist/browser/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  82. package/dist/browser/client/ClientUtils.js +1 -1
  83. package/dist/browser/client/ClientUtils.js.map +1 -1
  84. package/dist/browser/client/Conflict/Conflict.js +4 -0
  85. package/dist/browser/client/Conflict/Conflict.js.map +1 -1
  86. package/dist/browser/client/Conflict/ConflictResponse.js +2 -0
  87. package/dist/browser/client/Conflict/ConflictResponse.js.map +1 -1
  88. package/dist/browser/client/Conflict/Conflicts.js +2 -0
  89. package/dist/browser/client/Conflict/Conflicts.js.map +1 -1
  90. package/dist/browser/client/Container/Container.js +18 -3
  91. package/dist/browser/client/Container/Container.js.map +1 -1
  92. package/dist/browser/client/Container/ContainerResponse.js +2 -0
  93. package/dist/browser/client/Container/ContainerResponse.js.map +1 -1
  94. package/dist/browser/client/Container/Containers.js +4 -2
  95. package/dist/browser/client/Container/Containers.js.map +1 -1
  96. package/dist/browser/client/Database/Database.js +33 -0
  97. package/dist/browser/client/Database/Database.js.map +1 -1
  98. package/dist/browser/client/Database/DatabaseResponse.js +2 -0
  99. package/dist/browser/client/Database/DatabaseResponse.js.map +1 -1
  100. package/dist/browser/client/Database/Databases.js +3 -0
  101. package/dist/browser/client/Database/Databases.js.map +1 -1
  102. package/dist/browser/client/Item/Item.js +4 -0
  103. package/dist/browser/client/Item/Item.js.map +1 -1
  104. package/dist/browser/client/Item/ItemResponse.js +2 -0
  105. package/dist/browser/client/Item/ItemResponse.js.map +1 -1
  106. package/dist/browser/client/Item/Items.d.ts.map +1 -1
  107. package/dist/browser/client/Item/Items.js +8 -0
  108. package/dist/browser/client/Item/Items.js.map +1 -1
  109. package/dist/browser/client/Offer/Offer.js +3 -0
  110. package/dist/browser/client/Offer/Offer.js.map +1 -1
  111. package/dist/browser/client/Offer/OfferResponse.js +2 -0
  112. package/dist/browser/client/Offer/OfferResponse.js.map +1 -1
  113. package/dist/browser/client/Offer/Offers.js +2 -0
  114. package/dist/browser/client/Offer/Offers.js.map +1 -1
  115. package/dist/browser/client/Permission/Permission.js +3 -0
  116. package/dist/browser/client/Permission/Permission.js.map +1 -1
  117. package/dist/browser/client/Permission/PermissionResponse.js +2 -0
  118. package/dist/browser/client/Permission/PermissionResponse.js.map +1 -1
  119. package/dist/browser/client/Permission/Permissions.js +2 -0
  120. package/dist/browser/client/Permission/Permissions.js.map +1 -1
  121. package/dist/browser/client/SasToken/SasTokenProperties.js +17 -0
  122. package/dist/browser/client/SasToken/SasTokenProperties.js.map +1 -1
  123. package/dist/browser/client/Script/Scripts.js +5 -0
  124. package/dist/browser/client/Script/Scripts.js.map +1 -1
  125. package/dist/browser/client/StoredProcedure/StoredProcedure.js +3 -0
  126. package/dist/browser/client/StoredProcedure/StoredProcedure.js.map +1 -1
  127. package/dist/browser/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  128. package/dist/browser/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  129. package/dist/browser/client/StoredProcedure/StoredProcedures.js +2 -0
  130. package/dist/browser/client/StoredProcedure/StoredProcedures.js.map +1 -1
  131. package/dist/browser/client/Trigger/Trigger.js +3 -0
  132. package/dist/browser/client/Trigger/Trigger.js.map +1 -1
  133. package/dist/browser/client/Trigger/TriggerResponse.js +2 -0
  134. package/dist/browser/client/Trigger/TriggerResponse.js.map +1 -1
  135. package/dist/browser/client/Trigger/Triggers.js +2 -0
  136. package/dist/browser/client/Trigger/Triggers.js.map +1 -1
  137. package/dist/browser/client/User/User.js +9 -0
  138. package/dist/browser/client/User/User.js.map +1 -1
  139. package/dist/browser/client/User/UserResponse.js +2 -0
  140. package/dist/browser/client/User/UserResponse.js.map +1 -1
  141. package/dist/browser/client/User/Users.js +2 -0
  142. package/dist/browser/client/User/Users.js.map +1 -1
  143. package/dist/browser/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  144. package/dist/browser/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  145. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  146. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  147. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  148. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  149. package/dist/browser/common/constants.d.ts +4 -0
  150. package/dist/browser/common/constants.d.ts.map +1 -1
  151. package/dist/browser/common/constants.js +5 -1
  152. package/dist/browser/common/constants.js.map +1 -1
  153. package/dist/browser/common/helper.d.ts +6 -0
  154. package/dist/browser/common/helper.d.ts.map +1 -1
  155. package/dist/browser/common/helper.js +9 -1
  156. package/dist/browser/common/helper.js.map +1 -1
  157. package/dist/browser/common/platform.d.ts +1 -0
  158. package/dist/browser/common/platform.d.ts.map +1 -1
  159. package/dist/browser/common/platform.js +1 -3
  160. package/dist/browser/common/platform.js.map +1 -1
  161. package/dist/browser/diagnostics/CosmosDiagnosticsContext.js +8 -7
  162. package/dist/browser/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  163. package/dist/browser/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
  164. package/dist/browser/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
  165. package/dist/browser/diagnostics/DiagnosticNodeInternal.js +26 -7
  166. package/dist/browser/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  167. package/dist/browser/diagnostics/DiagnosticWriter.js +1 -3
  168. package/dist/browser/diagnostics/DiagnosticWriter.js.map +1 -1
  169. package/dist/browser/diagnostics/index.js +2 -2
  170. package/dist/browser/diagnostics/index.js.map +1 -1
  171. package/dist/browser/documents/ConnectionPolicy.d.ts +10 -4
  172. package/dist/browser/documents/ConnectionPolicy.d.ts.map +1 -1
  173. package/dist/browser/documents/ConnectionPolicy.js +2 -2
  174. package/dist/browser/documents/ConnectionPolicy.js.map +1 -1
  175. package/dist/browser/documents/DatabaseAccount.d.ts +4 -0
  176. package/dist/browser/documents/DatabaseAccount.d.ts.map +1 -1
  177. package/dist/browser/documents/DatabaseAccount.js +29 -4
  178. package/dist/browser/documents/DatabaseAccount.js.map +1 -1
  179. package/dist/browser/documents/PartitionKey.js +1 -3
  180. package/dist/browser/documents/PartitionKey.js.map +1 -1
  181. package/dist/browser/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  182. package/dist/browser/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  183. package/dist/browser/encryption/Cache/EncryptionSettingsCache.js +2 -0
  184. package/dist/browser/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  185. package/dist/browser/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  186. package/dist/browser/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  187. package/dist/browser/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  188. package/dist/browser/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  189. package/dist/browser/encryption/EncryptionItemQueryIterator.js +24 -27
  190. package/dist/browser/encryption/EncryptionItemQueryIterator.js.map +1 -1
  191. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  192. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  193. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  194. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  195. package/dist/browser/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  196. package/dist/browser/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  197. package/dist/browser/encryption/EncryptionKeyStoreProvider.js +8 -1
  198. package/dist/browser/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  199. package/dist/browser/encryption/EncryptionManager.js +6 -0
  200. package/dist/browser/encryption/EncryptionManager.js.map +1 -1
  201. package/dist/browser/encryption/EncryptionProcessor.js +5 -0
  202. package/dist/browser/encryption/EncryptionProcessor.js.map +1 -1
  203. package/dist/browser/encryption/EncryptionQueryBuilder.js +2 -0
  204. package/dist/browser/encryption/EncryptionQueryBuilder.js.map +1 -1
  205. package/dist/browser/encryption/EncryptionSettingForProperty.js +6 -0
  206. package/dist/browser/encryption/EncryptionSettingForProperty.js.map +1 -1
  207. package/dist/browser/encryption/EncryptionSettings.js +6 -3
  208. package/dist/browser/encryption/EncryptionSettings.js.map +1 -1
  209. package/dist/browser/encryption/KeyEncryptionKey.js +4 -0
  210. package/dist/browser/encryption/KeyEncryptionKey.js.map +1 -1
  211. package/dist/browser/encryption/Serializers/StringSerializer.js +1 -1
  212. package/dist/browser/encryption/Serializers/StringSerializer.js.map +1 -1
  213. package/dist/browser/extractPartitionKey.js +2 -2
  214. package/dist/browser/extractPartitionKey.js.map +1 -1
  215. package/dist/browser/globalEndpointManager.d.ts +8 -0
  216. package/dist/browser/globalEndpointManager.d.ts.map +1 -1
  217. package/dist/browser/globalEndpointManager.js +104 -29
  218. package/dist/browser/globalEndpointManager.js.map +1 -1
  219. package/dist/browser/globalPartitionEndpointManager.d.ts +0 -2
  220. package/dist/browser/globalPartitionEndpointManager.d.ts.map +1 -1
  221. package/dist/browser/globalPartitionEndpointManager.js +19 -7
  222. package/dist/browser/globalPartitionEndpointManager.js.map +1 -1
  223. package/dist/browser/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  224. package/dist/browser/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  225. package/dist/browser/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  226. package/dist/browser/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  227. package/dist/browser/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  228. package/dist/browser/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  229. package/dist/browser/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  230. package/dist/browser/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  231. package/dist/browser/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  232. package/dist/browser/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  233. package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  234. package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  235. package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  236. package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  237. package/dist/browser/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  238. package/dist/browser/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  239. package/dist/browser/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  240. package/dist/browser/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  241. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  242. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  243. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  244. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  245. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  246. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  247. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  248. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  249. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  250. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  251. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  252. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  253. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  254. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  255. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  256. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  257. package/dist/browser/queryExecutionContext/FetchResult.js +4 -0
  258. package/dist/browser/queryExecutionContext/FetchResult.js.map +1 -1
  259. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  260. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  261. package/dist/browser/queryExecutionContext/documentProducer.js +34 -21
  262. package/dist/browser/queryExecutionContext/documentProducer.js.map +1 -1
  263. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  264. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  265. package/dist/browser/queryExecutionContext/orderByComparator.js +1 -0
  266. package/dist/browser/queryExecutionContext/orderByComparator.js.map +1 -1
  267. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  268. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  269. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  270. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  271. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  272. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  273. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  274. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  275. package/dist/browser/queryIterator.js +41 -33
  276. package/dist/browser/queryIterator.js.map +1 -1
  277. package/dist/browser/queryMetrics/clientSideMetrics.js +2 -1
  278. package/dist/browser/queryMetrics/clientSideMetrics.js.map +1 -1
  279. package/dist/browser/queryMetrics/queryMetrics.js +14 -1
  280. package/dist/browser/queryMetrics/queryMetrics.js.map +1 -1
  281. package/dist/browser/queryMetrics/queryPreparationTime.js +5 -1
  282. package/dist/browser/queryMetrics/queryPreparationTime.js.map +1 -1
  283. package/dist/browser/queryMetrics/runtimeExecutionTimes.js +4 -1
  284. package/dist/browser/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  285. package/dist/browser/queryMetrics/timeSpan.js +4 -3
  286. package/dist/browser/queryMetrics/timeSpan.js.map +1 -1
  287. package/dist/browser/request/ErrorResponse.js +19 -0
  288. package/dist/browser/request/ErrorResponse.js.map +1 -1
  289. package/dist/browser/request/FeedResponse.js +4 -0
  290. package/dist/browser/request/FeedResponse.js.map +1 -1
  291. package/dist/browser/request/RequestHandler.js +3 -4
  292. package/dist/browser/request/RequestHandler.js.map +1 -1
  293. package/dist/browser/request/ResourceResponse.js +5 -0
  294. package/dist/browser/request/ResourceResponse.js.map +1 -1
  295. package/dist/browser/request/SharedOptions.d.ts +5 -0
  296. package/dist/browser/request/SharedOptions.d.ts.map +1 -1
  297. package/dist/browser/request/SharedOptions.js.map +1 -1
  298. package/dist/browser/request/TimeoutError.js +1 -1
  299. package/dist/browser/request/TimeoutError.js.map +1 -1
  300. package/dist/browser/request/hybridSearchQueryResult.js +5 -0
  301. package/dist/browser/request/hybridSearchQueryResult.js.map +1 -1
  302. package/dist/browser/request/request.js +5 -1
  303. package/dist/browser/request/request.js.map +1 -1
  304. package/dist/browser/retry/bulkExecutionRetryPolicy.js +5 -2
  305. package/dist/browser/retry/bulkExecutionRetryPolicy.js.map +1 -1
  306. package/dist/browser/retry/defaultRetryPolicy.d.ts.map +1 -1
  307. package/dist/browser/retry/defaultRetryPolicy.js +7 -7
  308. package/dist/browser/retry/defaultRetryPolicy.js.map +1 -1
  309. package/dist/browser/retry/endpointDiscoveryRetryPolicy.d.ts +3 -2
  310. package/dist/browser/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  311. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js +24 -7
  312. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  313. package/dist/browser/retry/resourceThrottleRetryPolicy.js +20 -10
  314. package/dist/browser/retry/resourceThrottleRetryPolicy.js.map +1 -1
  315. package/dist/browser/retry/retryUtility.d.ts.map +1 -1
  316. package/dist/browser/retry/retryUtility.js +22 -8
  317. package/dist/browser/retry/retryUtility.js.map +1 -1
  318. package/dist/browser/retry/sessionRetryPolicy.js +8 -4
  319. package/dist/browser/retry/sessionRetryPolicy.js.map +1 -1
  320. package/dist/browser/retry/timeoutFailoverRetryPolicy.d.ts +1 -2
  321. package/dist/browser/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  322. package/dist/browser/retry/timeoutFailoverRetryPolicy.js +17 -7
  323. package/dist/browser/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  324. package/dist/browser/routing/QueryRange.js +4 -0
  325. package/dist/browser/routing/QueryRange.js.map +1 -1
  326. package/dist/browser/routing/inMemoryCollectionRoutingMap.js +4 -0
  327. package/dist/browser/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  328. package/dist/browser/routing/partitionKeyRangeCache.js +2 -0
  329. package/dist/browser/routing/partitionKeyRangeCache.js.map +1 -1
  330. package/dist/browser/routing/smartRoutingMapProvider.js +1 -0
  331. package/dist/browser/routing/smartRoutingMapProvider.js.map +1 -1
  332. package/dist/browser/session/VectorSessionToken.js +6 -2
  333. package/dist/browser/session/VectorSessionToken.js.map +1 -1
  334. package/dist/browser/session/sessionContainer.js +5 -3
  335. package/dist/browser/session/sessionContainer.js.map +1 -1
  336. package/dist/browser/utils/batch.js +15 -4
  337. package/dist/browser/utils/batch.js.map +1 -1
  338. package/dist/browser/utils/encode.d.ts +1 -1
  339. package/dist/browser/utils/encode.d.ts.map +1 -1
  340. package/dist/browser/utils/encode.js.map +1 -1
  341. package/dist/browser/utils/fixedSizePriorityQueue.js +4 -0
  342. package/dist/browser/utils/fixedSizePriorityQueue.js.map +1 -1
  343. package/dist/browser/utils/hashing/hash.js +1 -1
  344. package/dist/browser/utils/hashing/hash.js.map +1 -1
  345. package/dist/browser/utils/nonStreamingOrderByMap.js +2 -0
  346. package/dist/browser/utils/nonStreamingOrderByMap.js.map +1 -1
  347. package/dist/commonjs/ChangeFeedIterator.js +17 -11
  348. package/dist/commonjs/ChangeFeedIterator.js.map +1 -1
  349. package/dist/commonjs/ChangeFeedResponse.js +8 -0
  350. package/dist/commonjs/ChangeFeedResponse.js.map +1 -1
  351. package/dist/commonjs/ClientContext.d.ts.map +1 -1
  352. package/dist/commonjs/ClientContext.js +232 -48
  353. package/dist/commonjs/ClientContext.js.map +1 -1
  354. package/dist/commonjs/CosmosClient.d.ts +13 -0
  355. package/dist/commonjs/CosmosClient.d.ts.map +1 -1
  356. package/dist/commonjs/CosmosClient.js +53 -6
  357. package/dist/commonjs/CosmosClient.js.map +1 -1
  358. package/dist/commonjs/CosmosClientOptions.d.ts.map +1 -1
  359. package/dist/commonjs/CosmosClientOptions.js.map +1 -1
  360. package/dist/commonjs/CosmosDiagnostics.d.ts +4 -0
  361. package/dist/commonjs/CosmosDiagnostics.d.ts.map +1 -1
  362. package/dist/commonjs/CosmosDiagnostics.js +3 -0
  363. package/dist/commonjs/CosmosDiagnostics.js.map +1 -1
  364. package/dist/commonjs/GlobalEndpointManagerOptions.d.ts +2 -0
  365. package/dist/commonjs/GlobalEndpointManagerOptions.d.ts.map +1 -0
  366. package/dist/commonjs/GlobalEndpointManagerOptions.js +3 -0
  367. package/dist/commonjs/GlobalEndpointManagerOptions.js.map +1 -0
  368. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js +8 -5
  369. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js.map +1 -1
  370. package/dist/commonjs/bulk/Batcher.js +13 -3
  371. package/dist/commonjs/bulk/Batcher.js.map +1 -1
  372. package/dist/commonjs/bulk/BulkHelper.js +26 -11
  373. package/dist/commonjs/bulk/BulkHelper.js.map +1 -1
  374. package/dist/commonjs/bulk/BulkResponse.js +22 -20
  375. package/dist/commonjs/bulk/BulkResponse.js.map +1 -1
  376. package/dist/commonjs/bulk/CongestionAlgorithm.js +11 -4
  377. package/dist/commonjs/bulk/CongestionAlgorithm.js.map +1 -1
  378. package/dist/commonjs/bulk/HelperPerPartition.js +14 -1
  379. package/dist/commonjs/bulk/HelperPerPartition.js.map +1 -1
  380. package/dist/commonjs/bulk/ItemOperationContext.js +4 -0
  381. package/dist/commonjs/bulk/ItemOperationContext.js.map +1 -1
  382. package/dist/commonjs/bulk/Limiter.js +27 -18
  383. package/dist/commonjs/bulk/Limiter.js.map +1 -1
  384. package/dist/commonjs/bulk/PartitionMetric.js +4 -0
  385. package/dist/commonjs/bulk/PartitionMetric.js.map +1 -1
  386. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.d.ts.map +1 -1
  387. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js +29 -15
  388. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  389. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  390. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js +19 -8
  391. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  392. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  393. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  394. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts +5 -0
  395. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts.map +1 -1
  396. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
  397. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  398. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  399. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  400. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  401. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js +20 -0
  402. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  403. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  404. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  405. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  406. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  407. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  408. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  409. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  410. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  411. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  412. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  413. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  414. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  415. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  416. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  417. package/dist/commonjs/client/ChangeFeed/FeedRange.js +8 -0
  418. package/dist/commonjs/client/ChangeFeed/FeedRange.js.map +1 -1
  419. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js +1 -0
  420. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  421. package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.d.ts +1 -0
  422. package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.d.ts.map +1 -1
  423. package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
  424. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.d.ts.map +1 -1
  425. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js +6 -5
  426. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  427. package/dist/commonjs/client/ClientUtils.js +1 -1
  428. package/dist/commonjs/client/ClientUtils.js.map +1 -1
  429. package/dist/commonjs/client/Conflict/Conflict.js +4 -0
  430. package/dist/commonjs/client/Conflict/Conflict.js.map +1 -1
  431. package/dist/commonjs/client/Conflict/ConflictResponse.js +2 -0
  432. package/dist/commonjs/client/Conflict/ConflictResponse.js.map +1 -1
  433. package/dist/commonjs/client/Conflict/Conflicts.js +2 -0
  434. package/dist/commonjs/client/Conflict/Conflicts.js.map +1 -1
  435. package/dist/commonjs/client/Container/Container.js +18 -3
  436. package/dist/commonjs/client/Container/Container.js.map +1 -1
  437. package/dist/commonjs/client/Container/ContainerResponse.js +2 -0
  438. package/dist/commonjs/client/Container/ContainerResponse.js.map +1 -1
  439. package/dist/commonjs/client/Container/Containers.js +4 -2
  440. package/dist/commonjs/client/Container/Containers.js.map +1 -1
  441. package/dist/commonjs/client/Database/Database.js +33 -0
  442. package/dist/commonjs/client/Database/Database.js.map +1 -1
  443. package/dist/commonjs/client/Database/DatabaseResponse.js +2 -0
  444. package/dist/commonjs/client/Database/DatabaseResponse.js.map +1 -1
  445. package/dist/commonjs/client/Database/Databases.js +3 -0
  446. package/dist/commonjs/client/Database/Databases.js.map +1 -1
  447. package/dist/commonjs/client/Item/Item.js +4 -0
  448. package/dist/commonjs/client/Item/Item.js.map +1 -1
  449. package/dist/commonjs/client/Item/ItemResponse.js +2 -0
  450. package/dist/commonjs/client/Item/ItemResponse.js.map +1 -1
  451. package/dist/commonjs/client/Item/Items.d.ts.map +1 -1
  452. package/dist/commonjs/client/Item/Items.js +8 -0
  453. package/dist/commonjs/client/Item/Items.js.map +1 -1
  454. package/dist/commonjs/client/Offer/Offer.js +3 -0
  455. package/dist/commonjs/client/Offer/Offer.js.map +1 -1
  456. package/dist/commonjs/client/Offer/OfferResponse.js +2 -0
  457. package/dist/commonjs/client/Offer/OfferResponse.js.map +1 -1
  458. package/dist/commonjs/client/Offer/Offers.js +2 -0
  459. package/dist/commonjs/client/Offer/Offers.js.map +1 -1
  460. package/dist/commonjs/client/Permission/Permission.js +3 -0
  461. package/dist/commonjs/client/Permission/Permission.js.map +1 -1
  462. package/dist/commonjs/client/Permission/PermissionResponse.js +2 -0
  463. package/dist/commonjs/client/Permission/PermissionResponse.js.map +1 -1
  464. package/dist/commonjs/client/Permission/Permissions.js +2 -0
  465. package/dist/commonjs/client/Permission/Permissions.js.map +1 -1
  466. package/dist/commonjs/client/SasToken/SasTokenProperties.js +17 -0
  467. package/dist/commonjs/client/SasToken/SasTokenProperties.js.map +1 -1
  468. package/dist/commonjs/client/Script/Scripts.js +5 -0
  469. package/dist/commonjs/client/Script/Scripts.js.map +1 -1
  470. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js +3 -0
  471. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js.map +1 -1
  472. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  473. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  474. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js +2 -0
  475. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js.map +1 -1
  476. package/dist/commonjs/client/Trigger/Trigger.js +3 -0
  477. package/dist/commonjs/client/Trigger/Trigger.js.map +1 -1
  478. package/dist/commonjs/client/Trigger/TriggerResponse.js +2 -0
  479. package/dist/commonjs/client/Trigger/TriggerResponse.js.map +1 -1
  480. package/dist/commonjs/client/Trigger/Triggers.js +2 -0
  481. package/dist/commonjs/client/Trigger/Triggers.js.map +1 -1
  482. package/dist/commonjs/client/User/User.js +9 -0
  483. package/dist/commonjs/client/User/User.js.map +1 -1
  484. package/dist/commonjs/client/User/UserResponse.js +2 -0
  485. package/dist/commonjs/client/User/UserResponse.js.map +1 -1
  486. package/dist/commonjs/client/User/Users.js +2 -0
  487. package/dist/commonjs/client/User/Users.js.map +1 -1
  488. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  489. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  490. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  491. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  492. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  493. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  494. package/dist/commonjs/common/constants.d.ts +4 -0
  495. package/dist/commonjs/common/constants.d.ts.map +1 -1
  496. package/dist/commonjs/common/constants.js +6 -2
  497. package/dist/commonjs/common/constants.js.map +1 -1
  498. package/dist/commonjs/common/helper.d.ts +6 -0
  499. package/dist/commonjs/common/helper.d.ts.map +1 -1
  500. package/dist/commonjs/common/helper.js +9 -0
  501. package/dist/commonjs/common/helper.js.map +1 -1
  502. package/dist/commonjs/common/platform.d.ts +1 -0
  503. package/dist/commonjs/common/platform.d.ts.map +1 -1
  504. package/dist/commonjs/common/platform.js +1 -3
  505. package/dist/commonjs/common/platform.js.map +1 -1
  506. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js +8 -7
  507. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  508. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
  509. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
  510. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js +26 -7
  511. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  512. package/dist/commonjs/diagnostics/DiagnosticWriter.js +1 -3
  513. package/dist/commonjs/diagnostics/DiagnosticWriter.js.map +1 -1
  514. package/dist/commonjs/diagnostics/index.js +2 -2
  515. package/dist/commonjs/diagnostics/index.js.map +1 -1
  516. package/dist/commonjs/documents/ConnectionPolicy.d.ts +10 -4
  517. package/dist/commonjs/documents/ConnectionPolicy.d.ts.map +1 -1
  518. package/dist/commonjs/documents/ConnectionPolicy.js +2 -2
  519. package/dist/commonjs/documents/ConnectionPolicy.js.map +1 -1
  520. package/dist/commonjs/documents/DatabaseAccount.d.ts +4 -0
  521. package/dist/commonjs/documents/DatabaseAccount.d.ts.map +1 -1
  522. package/dist/commonjs/documents/DatabaseAccount.js +29 -4
  523. package/dist/commonjs/documents/DatabaseAccount.js.map +1 -1
  524. package/dist/commonjs/documents/PartitionKey.js +1 -3
  525. package/dist/commonjs/documents/PartitionKey.js.map +1 -1
  526. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  527. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  528. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  529. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  530. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js +2 -0
  531. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  532. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  533. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  534. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js +5 -0
  535. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  536. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  537. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  538. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js +24 -27
  539. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js.map +1 -1
  540. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  541. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  542. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  543. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  544. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  545. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  546. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  547. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  548. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js +8 -1
  549. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  550. package/dist/commonjs/encryption/EncryptionManager.js +6 -0
  551. package/dist/commonjs/encryption/EncryptionManager.js.map +1 -1
  552. package/dist/commonjs/encryption/EncryptionProcessor.js +5 -0
  553. package/dist/commonjs/encryption/EncryptionProcessor.js.map +1 -1
  554. package/dist/commonjs/encryption/EncryptionQueryBuilder.js +2 -0
  555. package/dist/commonjs/encryption/EncryptionQueryBuilder.js.map +1 -1
  556. package/dist/commonjs/encryption/EncryptionSettingForProperty.js +6 -0
  557. package/dist/commonjs/encryption/EncryptionSettingForProperty.js.map +1 -1
  558. package/dist/commonjs/encryption/EncryptionSettings.js +6 -3
  559. package/dist/commonjs/encryption/EncryptionSettings.js.map +1 -1
  560. package/dist/commonjs/encryption/KeyEncryptionKey.js +4 -0
  561. package/dist/commonjs/encryption/KeyEncryptionKey.js.map +1 -1
  562. package/dist/commonjs/encryption/Serializers/StringSerializer.js +1 -1
  563. package/dist/commonjs/encryption/Serializers/StringSerializer.js.map +1 -1
  564. package/dist/commonjs/extractPartitionKey.js +2 -2
  565. package/dist/commonjs/extractPartitionKey.js.map +1 -1
  566. package/dist/commonjs/globalEndpointManager.d.ts +8 -0
  567. package/dist/commonjs/globalEndpointManager.d.ts.map +1 -1
  568. package/dist/commonjs/globalEndpointManager.js +104 -29
  569. package/dist/commonjs/globalEndpointManager.js.map +1 -1
  570. package/dist/commonjs/globalPartitionEndpointManager.d.ts +0 -2
  571. package/dist/commonjs/globalPartitionEndpointManager.d.ts.map +1 -1
  572. package/dist/commonjs/globalPartitionEndpointManager.js +19 -7
  573. package/dist/commonjs/globalPartitionEndpointManager.js.map +1 -1
  574. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  575. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  576. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  577. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  578. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  579. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  580. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  581. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  582. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  583. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  584. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  585. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  586. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  587. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  588. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  589. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  590. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  591. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  592. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  593. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  594. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  595. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  596. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  597. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  598. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  599. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  600. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  601. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  602. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  603. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  604. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  605. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  606. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  607. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  608. package/dist/commonjs/queryExecutionContext/FetchResult.js +4 -0
  609. package/dist/commonjs/queryExecutionContext/FetchResult.js.map +1 -1
  610. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  611. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  612. package/dist/commonjs/queryExecutionContext/documentProducer.js +34 -21
  613. package/dist/commonjs/queryExecutionContext/documentProducer.js.map +1 -1
  614. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  615. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  616. package/dist/commonjs/queryExecutionContext/orderByComparator.js +1 -0
  617. package/dist/commonjs/queryExecutionContext/orderByComparator.js.map +1 -1
  618. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  619. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  620. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  621. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  622. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  623. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  624. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  625. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  626. package/dist/commonjs/queryIterator.js +41 -33
  627. package/dist/commonjs/queryIterator.js.map +1 -1
  628. package/dist/commonjs/queryMetrics/clientSideMetrics.js +2 -1
  629. package/dist/commonjs/queryMetrics/clientSideMetrics.js.map +1 -1
  630. package/dist/commonjs/queryMetrics/queryMetrics.js +14 -1
  631. package/dist/commonjs/queryMetrics/queryMetrics.js.map +1 -1
  632. package/dist/commonjs/queryMetrics/queryPreparationTime.js +5 -1
  633. package/dist/commonjs/queryMetrics/queryPreparationTime.js.map +1 -1
  634. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js +4 -1
  635. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  636. package/dist/commonjs/queryMetrics/timeSpan.js +4 -3
  637. package/dist/commonjs/queryMetrics/timeSpan.js.map +1 -1
  638. package/dist/commonjs/request/ErrorResponse.js +19 -0
  639. package/dist/commonjs/request/ErrorResponse.js.map +1 -1
  640. package/dist/commonjs/request/FeedResponse.js +4 -0
  641. package/dist/commonjs/request/FeedResponse.js.map +1 -1
  642. package/dist/commonjs/request/RequestHandler.js +3 -4
  643. package/dist/commonjs/request/RequestHandler.js.map +1 -1
  644. package/dist/commonjs/request/ResourceResponse.js +5 -0
  645. package/dist/commonjs/request/ResourceResponse.js.map +1 -1
  646. package/dist/commonjs/request/SharedOptions.d.ts +5 -0
  647. package/dist/commonjs/request/SharedOptions.d.ts.map +1 -1
  648. package/dist/commonjs/request/SharedOptions.js.map +1 -1
  649. package/dist/commonjs/request/TimeoutError.js +1 -1
  650. package/dist/commonjs/request/TimeoutError.js.map +1 -1
  651. package/dist/commonjs/request/hybridSearchQueryResult.js +5 -0
  652. package/dist/commonjs/request/hybridSearchQueryResult.js.map +1 -1
  653. package/dist/commonjs/request/request.js +5 -1
  654. package/dist/commonjs/request/request.js.map +1 -1
  655. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js +5 -2
  656. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js.map +1 -1
  657. package/dist/commonjs/retry/defaultRetryPolicy.d.ts.map +1 -1
  658. package/dist/commonjs/retry/defaultRetryPolicy.js +6 -6
  659. package/dist/commonjs/retry/defaultRetryPolicy.js.map +1 -1
  660. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.d.ts +3 -2
  661. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  662. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js +24 -7
  663. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  664. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js +20 -10
  665. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js.map +1 -1
  666. package/dist/commonjs/retry/retryUtility.d.ts.map +1 -1
  667. package/dist/commonjs/retry/retryUtility.js +22 -8
  668. package/dist/commonjs/retry/retryUtility.js.map +1 -1
  669. package/dist/commonjs/retry/sessionRetryPolicy.js +8 -4
  670. package/dist/commonjs/retry/sessionRetryPolicy.js.map +1 -1
  671. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.d.ts +1 -2
  672. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  673. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js +17 -7
  674. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  675. package/dist/commonjs/routing/QueryRange.js +4 -0
  676. package/dist/commonjs/routing/QueryRange.js.map +1 -1
  677. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js +4 -0
  678. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  679. package/dist/commonjs/routing/partitionKeyRangeCache.js +2 -0
  680. package/dist/commonjs/routing/partitionKeyRangeCache.js.map +1 -1
  681. package/dist/commonjs/routing/smartRoutingMapProvider.js +1 -0
  682. package/dist/commonjs/routing/smartRoutingMapProvider.js.map +1 -1
  683. package/dist/commonjs/session/VectorSessionToken.js +6 -2
  684. package/dist/commonjs/session/VectorSessionToken.js.map +1 -1
  685. package/dist/commonjs/session/sessionContainer.js +5 -3
  686. package/dist/commonjs/session/sessionContainer.js.map +1 -1
  687. package/dist/commonjs/tsdoc-metadata.json +1 -1
  688. package/dist/commonjs/utils/batch.js +15 -4
  689. package/dist/commonjs/utils/batch.js.map +1 -1
  690. package/dist/commonjs/utils/encode.d.ts +1 -1
  691. package/dist/commonjs/utils/encode.d.ts.map +1 -1
  692. package/dist/commonjs/utils/encode.js.map +1 -1
  693. package/dist/commonjs/utils/fixedSizePriorityQueue.js +4 -0
  694. package/dist/commonjs/utils/fixedSizePriorityQueue.js.map +1 -1
  695. package/dist/commonjs/utils/hashing/hash.js +1 -1
  696. package/dist/commonjs/utils/hashing/hash.js.map +1 -1
  697. package/dist/commonjs/utils/nonStreamingOrderByMap.js +2 -0
  698. package/dist/commonjs/utils/nonStreamingOrderByMap.js.map +1 -1
  699. package/dist/esm/ChangeFeedIterator.js +17 -11
  700. package/dist/esm/ChangeFeedIterator.js.map +1 -1
  701. package/dist/esm/ChangeFeedResponse.js +8 -0
  702. package/dist/esm/ChangeFeedResponse.js.map +1 -1
  703. package/dist/esm/ClientContext.d.ts.map +1 -1
  704. package/dist/esm/ClientContext.js +232 -48
  705. package/dist/esm/ClientContext.js.map +1 -1
  706. package/dist/esm/CosmosClient.d.ts +13 -0
  707. package/dist/esm/CosmosClient.d.ts.map +1 -1
  708. package/dist/esm/CosmosClient.js +53 -6
  709. package/dist/esm/CosmosClient.js.map +1 -1
  710. package/dist/esm/CosmosClientOptions.d.ts.map +1 -1
  711. package/dist/esm/CosmosClientOptions.js.map +1 -1
  712. package/dist/esm/CosmosDiagnostics.d.ts +4 -0
  713. package/dist/esm/CosmosDiagnostics.d.ts.map +1 -1
  714. package/dist/esm/CosmosDiagnostics.js +3 -0
  715. package/dist/esm/CosmosDiagnostics.js.map +1 -1
  716. package/dist/esm/GlobalEndpointManagerOptions.d.ts +2 -0
  717. package/dist/esm/GlobalEndpointManagerOptions.d.ts.map +1 -0
  718. package/dist/esm/GlobalEndpointManagerOptions.js +2 -0
  719. package/dist/esm/GlobalEndpointManagerOptions.js.map +1 -0
  720. package/dist/esm/PartitionKeyRangeFailoverInfo.js +8 -5
  721. package/dist/esm/PartitionKeyRangeFailoverInfo.js.map +1 -1
  722. package/dist/esm/bulk/Batcher.js +13 -3
  723. package/dist/esm/bulk/Batcher.js.map +1 -1
  724. package/dist/esm/bulk/BulkHelper.js +26 -11
  725. package/dist/esm/bulk/BulkHelper.js.map +1 -1
  726. package/dist/esm/bulk/BulkResponse.js +22 -20
  727. package/dist/esm/bulk/BulkResponse.js.map +1 -1
  728. package/dist/esm/bulk/CongestionAlgorithm.js +11 -4
  729. package/dist/esm/bulk/CongestionAlgorithm.js.map +1 -1
  730. package/dist/esm/bulk/HelperPerPartition.js +14 -1
  731. package/dist/esm/bulk/HelperPerPartition.js.map +1 -1
  732. package/dist/esm/bulk/ItemOperationContext.js +4 -0
  733. package/dist/esm/bulk/ItemOperationContext.js.map +1 -1
  734. package/dist/esm/bulk/Limiter.js +27 -18
  735. package/dist/esm/bulk/Limiter.js.map +1 -1
  736. package/dist/esm/bulk/PartitionMetric.js +4 -0
  737. package/dist/esm/bulk/PartitionMetric.js.map +1 -1
  738. package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.d.ts.map +1 -1
  739. package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js +29 -15
  740. package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  741. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  742. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js +19 -8
  743. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  744. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  745. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  746. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts +5 -0
  747. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts.map +1 -1
  748. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
  749. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  750. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  751. package/dist/esm/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  752. package/dist/esm/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  753. package/dist/esm/client/ChangeFeed/ChangeFeedRange.js +20 -0
  754. package/dist/esm/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  755. package/dist/esm/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  756. package/dist/esm/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  757. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  758. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  759. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  760. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  761. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  762. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  763. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  764. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  765. package/dist/esm/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  766. package/dist/esm/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  767. package/dist/esm/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  768. package/dist/esm/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  769. package/dist/esm/client/ChangeFeed/FeedRange.js +8 -0
  770. package/dist/esm/client/ChangeFeed/FeedRange.js.map +1 -1
  771. package/dist/esm/client/ChangeFeed/FeedRangeQueue.js +1 -0
  772. package/dist/esm/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  773. package/dist/esm/client/ChangeFeed/InternalChangeFeedOptions.d.ts +1 -0
  774. package/dist/esm/client/ChangeFeed/InternalChangeFeedOptions.d.ts.map +1 -1
  775. package/dist/esm/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
  776. package/dist/esm/client/ChangeFeed/changeFeedUtils.d.ts.map +1 -1
  777. package/dist/esm/client/ChangeFeed/changeFeedUtils.js +6 -5
  778. package/dist/esm/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  779. package/dist/esm/client/ClientUtils.js +1 -1
  780. package/dist/esm/client/ClientUtils.js.map +1 -1
  781. package/dist/esm/client/Conflict/Conflict.js +4 -0
  782. package/dist/esm/client/Conflict/Conflict.js.map +1 -1
  783. package/dist/esm/client/Conflict/ConflictResponse.js +2 -0
  784. package/dist/esm/client/Conflict/ConflictResponse.js.map +1 -1
  785. package/dist/esm/client/Conflict/Conflicts.js +2 -0
  786. package/dist/esm/client/Conflict/Conflicts.js.map +1 -1
  787. package/dist/esm/client/Container/Container.js +18 -3
  788. package/dist/esm/client/Container/Container.js.map +1 -1
  789. package/dist/esm/client/Container/ContainerResponse.js +2 -0
  790. package/dist/esm/client/Container/ContainerResponse.js.map +1 -1
  791. package/dist/esm/client/Container/Containers.js +4 -2
  792. package/dist/esm/client/Container/Containers.js.map +1 -1
  793. package/dist/esm/client/Database/Database.js +33 -0
  794. package/dist/esm/client/Database/Database.js.map +1 -1
  795. package/dist/esm/client/Database/DatabaseResponse.js +2 -0
  796. package/dist/esm/client/Database/DatabaseResponse.js.map +1 -1
  797. package/dist/esm/client/Database/Databases.js +3 -0
  798. package/dist/esm/client/Database/Databases.js.map +1 -1
  799. package/dist/esm/client/Item/Item.js +4 -0
  800. package/dist/esm/client/Item/Item.js.map +1 -1
  801. package/dist/esm/client/Item/ItemResponse.js +2 -0
  802. package/dist/esm/client/Item/ItemResponse.js.map +1 -1
  803. package/dist/esm/client/Item/Items.d.ts.map +1 -1
  804. package/dist/esm/client/Item/Items.js +8 -0
  805. package/dist/esm/client/Item/Items.js.map +1 -1
  806. package/dist/esm/client/Offer/Offer.js +3 -0
  807. package/dist/esm/client/Offer/Offer.js.map +1 -1
  808. package/dist/esm/client/Offer/OfferResponse.js +2 -0
  809. package/dist/esm/client/Offer/OfferResponse.js.map +1 -1
  810. package/dist/esm/client/Offer/Offers.js +2 -0
  811. package/dist/esm/client/Offer/Offers.js.map +1 -1
  812. package/dist/esm/client/Permission/Permission.js +3 -0
  813. package/dist/esm/client/Permission/Permission.js.map +1 -1
  814. package/dist/esm/client/Permission/PermissionResponse.js +2 -0
  815. package/dist/esm/client/Permission/PermissionResponse.js.map +1 -1
  816. package/dist/esm/client/Permission/Permissions.js +2 -0
  817. package/dist/esm/client/Permission/Permissions.js.map +1 -1
  818. package/dist/esm/client/SasToken/SasTokenProperties.js +17 -0
  819. package/dist/esm/client/SasToken/SasTokenProperties.js.map +1 -1
  820. package/dist/esm/client/Script/Scripts.js +5 -0
  821. package/dist/esm/client/Script/Scripts.js.map +1 -1
  822. package/dist/esm/client/StoredProcedure/StoredProcedure.js +3 -0
  823. package/dist/esm/client/StoredProcedure/StoredProcedure.js.map +1 -1
  824. package/dist/esm/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  825. package/dist/esm/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  826. package/dist/esm/client/StoredProcedure/StoredProcedures.js +2 -0
  827. package/dist/esm/client/StoredProcedure/StoredProcedures.js.map +1 -1
  828. package/dist/esm/client/Trigger/Trigger.js +3 -0
  829. package/dist/esm/client/Trigger/Trigger.js.map +1 -1
  830. package/dist/esm/client/Trigger/TriggerResponse.js +2 -0
  831. package/dist/esm/client/Trigger/TriggerResponse.js.map +1 -1
  832. package/dist/esm/client/Trigger/Triggers.js +2 -0
  833. package/dist/esm/client/Trigger/Triggers.js.map +1 -1
  834. package/dist/esm/client/User/User.js +9 -0
  835. package/dist/esm/client/User/User.js.map +1 -1
  836. package/dist/esm/client/User/UserResponse.js +2 -0
  837. package/dist/esm/client/User/UserResponse.js.map +1 -1
  838. package/dist/esm/client/User/Users.js +2 -0
  839. package/dist/esm/client/User/Users.js.map +1 -1
  840. package/dist/esm/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  841. package/dist/esm/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  842. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  843. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  844. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  845. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  846. package/dist/esm/common/constants.d.ts +4 -0
  847. package/dist/esm/common/constants.d.ts.map +1 -1
  848. package/dist/esm/common/constants.js +5 -1
  849. package/dist/esm/common/constants.js.map +1 -1
  850. package/dist/esm/common/helper.d.ts +6 -0
  851. package/dist/esm/common/helper.d.ts.map +1 -1
  852. package/dist/esm/common/helper.js +9 -1
  853. package/dist/esm/common/helper.js.map +1 -1
  854. package/dist/esm/common/platform.d.ts +1 -0
  855. package/dist/esm/common/platform.d.ts.map +1 -1
  856. package/dist/esm/common/platform.js +1 -3
  857. package/dist/esm/common/platform.js.map +1 -1
  858. package/dist/esm/diagnostics/CosmosDiagnosticsContext.js +8 -7
  859. package/dist/esm/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  860. package/dist/esm/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
  861. package/dist/esm/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
  862. package/dist/esm/diagnostics/DiagnosticNodeInternal.js +26 -7
  863. package/dist/esm/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  864. package/dist/esm/diagnostics/DiagnosticWriter.js +1 -3
  865. package/dist/esm/diagnostics/DiagnosticWriter.js.map +1 -1
  866. package/dist/esm/diagnostics/index.js +2 -2
  867. package/dist/esm/diagnostics/index.js.map +1 -1
  868. package/dist/esm/documents/ConnectionPolicy.d.ts +10 -4
  869. package/dist/esm/documents/ConnectionPolicy.d.ts.map +1 -1
  870. package/dist/esm/documents/ConnectionPolicy.js +2 -2
  871. package/dist/esm/documents/ConnectionPolicy.js.map +1 -1
  872. package/dist/esm/documents/DatabaseAccount.d.ts +4 -0
  873. package/dist/esm/documents/DatabaseAccount.d.ts.map +1 -1
  874. package/dist/esm/documents/DatabaseAccount.js +29 -4
  875. package/dist/esm/documents/DatabaseAccount.js.map +1 -1
  876. package/dist/esm/documents/PartitionKey.js +1 -3
  877. package/dist/esm/documents/PartitionKey.js.map +1 -1
  878. package/dist/esm/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  879. package/dist/esm/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  880. package/dist/esm/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  881. package/dist/esm/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  882. package/dist/esm/encryption/Cache/EncryptionSettingsCache.js +2 -0
  883. package/dist/esm/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  884. package/dist/esm/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  885. package/dist/esm/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  886. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js +5 -0
  887. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  888. package/dist/esm/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  889. package/dist/esm/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  890. package/dist/esm/encryption/EncryptionItemQueryIterator.js +24 -27
  891. package/dist/esm/encryption/EncryptionItemQueryIterator.js.map +1 -1
  892. package/dist/esm/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  893. package/dist/esm/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  894. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  895. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  896. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  897. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  898. package/dist/esm/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  899. package/dist/esm/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  900. package/dist/esm/encryption/EncryptionKeyStoreProvider.js +8 -1
  901. package/dist/esm/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  902. package/dist/esm/encryption/EncryptionManager.js +6 -0
  903. package/dist/esm/encryption/EncryptionManager.js.map +1 -1
  904. package/dist/esm/encryption/EncryptionProcessor.js +5 -0
  905. package/dist/esm/encryption/EncryptionProcessor.js.map +1 -1
  906. package/dist/esm/encryption/EncryptionQueryBuilder.js +2 -0
  907. package/dist/esm/encryption/EncryptionQueryBuilder.js.map +1 -1
  908. package/dist/esm/encryption/EncryptionSettingForProperty.js +6 -0
  909. package/dist/esm/encryption/EncryptionSettingForProperty.js.map +1 -1
  910. package/dist/esm/encryption/EncryptionSettings.js +6 -3
  911. package/dist/esm/encryption/EncryptionSettings.js.map +1 -1
  912. package/dist/esm/encryption/KeyEncryptionKey.js +4 -0
  913. package/dist/esm/encryption/KeyEncryptionKey.js.map +1 -1
  914. package/dist/esm/encryption/Serializers/StringSerializer.js +1 -1
  915. package/dist/esm/encryption/Serializers/StringSerializer.js.map +1 -1
  916. package/dist/esm/extractPartitionKey.js +2 -2
  917. package/dist/esm/extractPartitionKey.js.map +1 -1
  918. package/dist/esm/globalEndpointManager.d.ts +8 -0
  919. package/dist/esm/globalEndpointManager.d.ts.map +1 -1
  920. package/dist/esm/globalEndpointManager.js +104 -29
  921. package/dist/esm/globalEndpointManager.js.map +1 -1
  922. package/dist/esm/globalPartitionEndpointManager.d.ts +0 -2
  923. package/dist/esm/globalPartitionEndpointManager.d.ts.map +1 -1
  924. package/dist/esm/globalPartitionEndpointManager.js +19 -7
  925. package/dist/esm/globalPartitionEndpointManager.js.map +1 -1
  926. package/dist/esm/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  927. package/dist/esm/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  928. package/dist/esm/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  929. package/dist/esm/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  930. package/dist/esm/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  931. package/dist/esm/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  932. package/dist/esm/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  933. package/dist/esm/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  934. package/dist/esm/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  935. package/dist/esm/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  936. package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  937. package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  938. package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  939. package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  940. package/dist/esm/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  941. package/dist/esm/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  942. package/dist/esm/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  943. package/dist/esm/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  944. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  945. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  946. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  947. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  948. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  949. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  950. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  951. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  952. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  953. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  954. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  955. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  956. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  957. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  958. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  959. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  960. package/dist/esm/queryExecutionContext/FetchResult.js +4 -0
  961. package/dist/esm/queryExecutionContext/FetchResult.js.map +1 -1
  962. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  963. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  964. package/dist/esm/queryExecutionContext/documentProducer.js +34 -21
  965. package/dist/esm/queryExecutionContext/documentProducer.js.map +1 -1
  966. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  967. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  968. package/dist/esm/queryExecutionContext/orderByComparator.js +1 -0
  969. package/dist/esm/queryExecutionContext/orderByComparator.js.map +1 -1
  970. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  971. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  972. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  973. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  974. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  975. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  976. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  977. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  978. package/dist/esm/queryIterator.js +41 -33
  979. package/dist/esm/queryIterator.js.map +1 -1
  980. package/dist/esm/queryMetrics/clientSideMetrics.js +2 -1
  981. package/dist/esm/queryMetrics/clientSideMetrics.js.map +1 -1
  982. package/dist/esm/queryMetrics/queryMetrics.js +14 -1
  983. package/dist/esm/queryMetrics/queryMetrics.js.map +1 -1
  984. package/dist/esm/queryMetrics/queryPreparationTime.js +5 -1
  985. package/dist/esm/queryMetrics/queryPreparationTime.js.map +1 -1
  986. package/dist/esm/queryMetrics/runtimeExecutionTimes.js +4 -1
  987. package/dist/esm/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  988. package/dist/esm/queryMetrics/timeSpan.js +4 -3
  989. package/dist/esm/queryMetrics/timeSpan.js.map +1 -1
  990. package/dist/esm/request/ErrorResponse.js +19 -0
  991. package/dist/esm/request/ErrorResponse.js.map +1 -1
  992. package/dist/esm/request/FeedResponse.js +4 -0
  993. package/dist/esm/request/FeedResponse.js.map +1 -1
  994. package/dist/esm/request/RequestHandler.js +3 -4
  995. package/dist/esm/request/RequestHandler.js.map +1 -1
  996. package/dist/esm/request/ResourceResponse.js +5 -0
  997. package/dist/esm/request/ResourceResponse.js.map +1 -1
  998. package/dist/esm/request/SharedOptions.d.ts +5 -0
  999. package/dist/esm/request/SharedOptions.d.ts.map +1 -1
  1000. package/dist/esm/request/SharedOptions.js.map +1 -1
  1001. package/dist/esm/request/TimeoutError.js +1 -1
  1002. package/dist/esm/request/TimeoutError.js.map +1 -1
  1003. package/dist/esm/request/hybridSearchQueryResult.js +5 -0
  1004. package/dist/esm/request/hybridSearchQueryResult.js.map +1 -1
  1005. package/dist/esm/request/request.js +5 -1
  1006. package/dist/esm/request/request.js.map +1 -1
  1007. package/dist/esm/retry/bulkExecutionRetryPolicy.js +5 -2
  1008. package/dist/esm/retry/bulkExecutionRetryPolicy.js.map +1 -1
  1009. package/dist/esm/retry/defaultRetryPolicy.d.ts.map +1 -1
  1010. package/dist/esm/retry/defaultRetryPolicy.js +7 -7
  1011. package/dist/esm/retry/defaultRetryPolicy.js.map +1 -1
  1012. package/dist/esm/retry/endpointDiscoveryRetryPolicy.d.ts +3 -2
  1013. package/dist/esm/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  1014. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js +24 -7
  1015. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  1016. package/dist/esm/retry/resourceThrottleRetryPolicy.js +20 -10
  1017. package/dist/esm/retry/resourceThrottleRetryPolicy.js.map +1 -1
  1018. package/dist/esm/retry/retryUtility.d.ts.map +1 -1
  1019. package/dist/esm/retry/retryUtility.js +22 -8
  1020. package/dist/esm/retry/retryUtility.js.map +1 -1
  1021. package/dist/esm/retry/sessionRetryPolicy.js +8 -4
  1022. package/dist/esm/retry/sessionRetryPolicy.js.map +1 -1
  1023. package/dist/esm/retry/timeoutFailoverRetryPolicy.d.ts +1 -2
  1024. package/dist/esm/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  1025. package/dist/esm/retry/timeoutFailoverRetryPolicy.js +17 -7
  1026. package/dist/esm/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  1027. package/dist/esm/routing/QueryRange.js +4 -0
  1028. package/dist/esm/routing/QueryRange.js.map +1 -1
  1029. package/dist/esm/routing/inMemoryCollectionRoutingMap.js +4 -0
  1030. package/dist/esm/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  1031. package/dist/esm/routing/partitionKeyRangeCache.js +2 -0
  1032. package/dist/esm/routing/partitionKeyRangeCache.js.map +1 -1
  1033. package/dist/esm/routing/smartRoutingMapProvider.js +1 -0
  1034. package/dist/esm/routing/smartRoutingMapProvider.js.map +1 -1
  1035. package/dist/esm/session/VectorSessionToken.js +6 -2
  1036. package/dist/esm/session/VectorSessionToken.js.map +1 -1
  1037. package/dist/esm/session/sessionContainer.js +5 -3
  1038. package/dist/esm/session/sessionContainer.js.map +1 -1
  1039. package/dist/esm/utils/batch.js +15 -4
  1040. package/dist/esm/utils/batch.js.map +1 -1
  1041. package/dist/esm/utils/encode.d.ts +1 -1
  1042. package/dist/esm/utils/encode.d.ts.map +1 -1
  1043. package/dist/esm/utils/encode.js.map +1 -1
  1044. package/dist/esm/utils/fixedSizePriorityQueue.js +4 -0
  1045. package/dist/esm/utils/fixedSizePriorityQueue.js.map +1 -1
  1046. package/dist/esm/utils/hashing/hash.js +1 -1
  1047. package/dist/esm/utils/hashing/hash.js.map +1 -1
  1048. package/dist/esm/utils/nonStreamingOrderByMap.js +2 -0
  1049. package/dist/esm/utils/nonStreamingOrderByMap.js.map +1 -1
  1050. package/dist/react-native/ChangeFeedIterator.js +17 -11
  1051. package/dist/react-native/ChangeFeedIterator.js.map +1 -1
  1052. package/dist/react-native/ChangeFeedResponse.js +8 -0
  1053. package/dist/react-native/ChangeFeedResponse.js.map +1 -1
  1054. package/dist/react-native/ClientContext.d.ts.map +1 -1
  1055. package/dist/react-native/ClientContext.js +232 -48
  1056. package/dist/react-native/ClientContext.js.map +1 -1
  1057. package/dist/react-native/CosmosClient.d.ts +13 -0
  1058. package/dist/react-native/CosmosClient.d.ts.map +1 -1
  1059. package/dist/react-native/CosmosClient.js +53 -6
  1060. package/dist/react-native/CosmosClient.js.map +1 -1
  1061. package/dist/react-native/CosmosClientOptions.d.ts.map +1 -1
  1062. package/dist/react-native/CosmosClientOptions.js.map +1 -1
  1063. package/dist/react-native/CosmosDiagnostics.d.ts +4 -0
  1064. package/dist/react-native/CosmosDiagnostics.d.ts.map +1 -1
  1065. package/dist/react-native/CosmosDiagnostics.js +3 -0
  1066. package/dist/react-native/CosmosDiagnostics.js.map +1 -1
  1067. package/dist/react-native/GlobalEndpointManagerOptions.d.ts +2 -0
  1068. package/dist/react-native/GlobalEndpointManagerOptions.d.ts.map +1 -0
  1069. package/dist/react-native/GlobalEndpointManagerOptions.js +2 -0
  1070. package/dist/react-native/GlobalEndpointManagerOptions.js.map +1 -0
  1071. package/dist/react-native/PartitionKeyRangeFailoverInfo.js +8 -5
  1072. package/dist/react-native/PartitionKeyRangeFailoverInfo.js.map +1 -1
  1073. package/dist/react-native/bulk/Batcher.js +13 -3
  1074. package/dist/react-native/bulk/Batcher.js.map +1 -1
  1075. package/dist/react-native/bulk/BulkHelper.js +26 -11
  1076. package/dist/react-native/bulk/BulkHelper.js.map +1 -1
  1077. package/dist/react-native/bulk/BulkResponse.js +22 -20
  1078. package/dist/react-native/bulk/BulkResponse.js.map +1 -1
  1079. package/dist/react-native/bulk/CongestionAlgorithm.js +11 -4
  1080. package/dist/react-native/bulk/CongestionAlgorithm.js.map +1 -1
  1081. package/dist/react-native/bulk/HelperPerPartition.js +14 -1
  1082. package/dist/react-native/bulk/HelperPerPartition.js.map +1 -1
  1083. package/dist/react-native/bulk/ItemOperationContext.js +4 -0
  1084. package/dist/react-native/bulk/ItemOperationContext.js.map +1 -1
  1085. package/dist/react-native/bulk/Limiter.js +27 -18
  1086. package/dist/react-native/bulk/Limiter.js.map +1 -1
  1087. package/dist/react-native/bulk/PartitionMetric.js +4 -0
  1088. package/dist/react-native/bulk/PartitionMetric.js.map +1 -1
  1089. package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.d.ts.map +1 -1
  1090. package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js +29 -15
  1091. package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  1092. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  1093. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js +19 -8
  1094. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  1095. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  1096. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  1097. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts +5 -0
  1098. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts.map +1 -1
  1099. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
  1100. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  1101. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  1102. package/dist/react-native/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  1103. package/dist/react-native/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  1104. package/dist/react-native/client/ChangeFeed/ChangeFeedRange.js +20 -0
  1105. package/dist/react-native/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  1106. package/dist/react-native/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  1107. package/dist/react-native/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  1108. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  1109. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  1110. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  1111. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  1112. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  1113. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  1114. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  1115. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  1116. package/dist/react-native/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  1117. package/dist/react-native/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  1118. package/dist/react-native/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  1119. package/dist/react-native/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  1120. package/dist/react-native/client/ChangeFeed/FeedRange.js +8 -0
  1121. package/dist/react-native/client/ChangeFeed/FeedRange.js.map +1 -1
  1122. package/dist/react-native/client/ChangeFeed/FeedRangeQueue.js +1 -0
  1123. package/dist/react-native/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  1124. package/dist/react-native/client/ChangeFeed/InternalChangeFeedOptions.d.ts +1 -0
  1125. package/dist/react-native/client/ChangeFeed/InternalChangeFeedOptions.d.ts.map +1 -1
  1126. package/dist/react-native/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
  1127. package/dist/react-native/client/ChangeFeed/changeFeedUtils.d.ts.map +1 -1
  1128. package/dist/react-native/client/ChangeFeed/changeFeedUtils.js +6 -5
  1129. package/dist/react-native/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  1130. package/dist/react-native/client/ClientUtils.js +1 -1
  1131. package/dist/react-native/client/ClientUtils.js.map +1 -1
  1132. package/dist/react-native/client/Conflict/Conflict.js +4 -0
  1133. package/dist/react-native/client/Conflict/Conflict.js.map +1 -1
  1134. package/dist/react-native/client/Conflict/ConflictResponse.js +2 -0
  1135. package/dist/react-native/client/Conflict/ConflictResponse.js.map +1 -1
  1136. package/dist/react-native/client/Conflict/Conflicts.js +2 -0
  1137. package/dist/react-native/client/Conflict/Conflicts.js.map +1 -1
  1138. package/dist/react-native/client/Container/Container.js +18 -3
  1139. package/dist/react-native/client/Container/Container.js.map +1 -1
  1140. package/dist/react-native/client/Container/ContainerResponse.js +2 -0
  1141. package/dist/react-native/client/Container/ContainerResponse.js.map +1 -1
  1142. package/dist/react-native/client/Container/Containers.js +4 -2
  1143. package/dist/react-native/client/Container/Containers.js.map +1 -1
  1144. package/dist/react-native/client/Database/Database.js +33 -0
  1145. package/dist/react-native/client/Database/Database.js.map +1 -1
  1146. package/dist/react-native/client/Database/DatabaseResponse.js +2 -0
  1147. package/dist/react-native/client/Database/DatabaseResponse.js.map +1 -1
  1148. package/dist/react-native/client/Database/Databases.js +3 -0
  1149. package/dist/react-native/client/Database/Databases.js.map +1 -1
  1150. package/dist/react-native/client/Item/Item.js +4 -0
  1151. package/dist/react-native/client/Item/Item.js.map +1 -1
  1152. package/dist/react-native/client/Item/ItemResponse.js +2 -0
  1153. package/dist/react-native/client/Item/ItemResponse.js.map +1 -1
  1154. package/dist/react-native/client/Item/Items.d.ts.map +1 -1
  1155. package/dist/react-native/client/Item/Items.js +8 -0
  1156. package/dist/react-native/client/Item/Items.js.map +1 -1
  1157. package/dist/react-native/client/Offer/Offer.js +3 -0
  1158. package/dist/react-native/client/Offer/Offer.js.map +1 -1
  1159. package/dist/react-native/client/Offer/OfferResponse.js +2 -0
  1160. package/dist/react-native/client/Offer/OfferResponse.js.map +1 -1
  1161. package/dist/react-native/client/Offer/Offers.js +2 -0
  1162. package/dist/react-native/client/Offer/Offers.js.map +1 -1
  1163. package/dist/react-native/client/Permission/Permission.js +3 -0
  1164. package/dist/react-native/client/Permission/Permission.js.map +1 -1
  1165. package/dist/react-native/client/Permission/PermissionResponse.js +2 -0
  1166. package/dist/react-native/client/Permission/PermissionResponse.js.map +1 -1
  1167. package/dist/react-native/client/Permission/Permissions.js +2 -0
  1168. package/dist/react-native/client/Permission/Permissions.js.map +1 -1
  1169. package/dist/react-native/client/SasToken/SasTokenProperties.js +17 -0
  1170. package/dist/react-native/client/SasToken/SasTokenProperties.js.map +1 -1
  1171. package/dist/react-native/client/Script/Scripts.js +5 -0
  1172. package/dist/react-native/client/Script/Scripts.js.map +1 -1
  1173. package/dist/react-native/client/StoredProcedure/StoredProcedure.js +3 -0
  1174. package/dist/react-native/client/StoredProcedure/StoredProcedure.js.map +1 -1
  1175. package/dist/react-native/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  1176. package/dist/react-native/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  1177. package/dist/react-native/client/StoredProcedure/StoredProcedures.js +2 -0
  1178. package/dist/react-native/client/StoredProcedure/StoredProcedures.js.map +1 -1
  1179. package/dist/react-native/client/Trigger/Trigger.js +3 -0
  1180. package/dist/react-native/client/Trigger/Trigger.js.map +1 -1
  1181. package/dist/react-native/client/Trigger/TriggerResponse.js +2 -0
  1182. package/dist/react-native/client/Trigger/TriggerResponse.js.map +1 -1
  1183. package/dist/react-native/client/Trigger/Triggers.js +2 -0
  1184. package/dist/react-native/client/Trigger/Triggers.js.map +1 -1
  1185. package/dist/react-native/client/User/User.js +9 -0
  1186. package/dist/react-native/client/User/User.js.map +1 -1
  1187. package/dist/react-native/client/User/UserResponse.js +2 -0
  1188. package/dist/react-native/client/User/UserResponse.js.map +1 -1
  1189. package/dist/react-native/client/User/Users.js +2 -0
  1190. package/dist/react-native/client/User/Users.js.map +1 -1
  1191. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  1192. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  1193. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  1194. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  1195. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  1196. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  1197. package/dist/react-native/common/constants.d.ts +4 -0
  1198. package/dist/react-native/common/constants.d.ts.map +1 -1
  1199. package/dist/react-native/common/constants.js +5 -1
  1200. package/dist/react-native/common/constants.js.map +1 -1
  1201. package/dist/react-native/common/helper.d.ts +6 -0
  1202. package/dist/react-native/common/helper.d.ts.map +1 -1
  1203. package/dist/react-native/common/helper.js +9 -1
  1204. package/dist/react-native/common/helper.js.map +1 -1
  1205. package/dist/react-native/common/platform.d.ts +1 -0
  1206. package/dist/react-native/common/platform.d.ts.map +1 -1
  1207. package/dist/react-native/common/platform.js +1 -3
  1208. package/dist/react-native/common/platform.js.map +1 -1
  1209. package/dist/react-native/diagnostics/CosmosDiagnosticsContext.js +8 -7
  1210. package/dist/react-native/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  1211. package/dist/react-native/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
  1212. package/dist/react-native/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
  1213. package/dist/react-native/diagnostics/DiagnosticNodeInternal.js +26 -7
  1214. package/dist/react-native/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  1215. package/dist/react-native/diagnostics/DiagnosticWriter.js +1 -3
  1216. package/dist/react-native/diagnostics/DiagnosticWriter.js.map +1 -1
  1217. package/dist/react-native/diagnostics/index.js +2 -2
  1218. package/dist/react-native/diagnostics/index.js.map +1 -1
  1219. package/dist/react-native/documents/ConnectionPolicy.d.ts +10 -4
  1220. package/dist/react-native/documents/ConnectionPolicy.d.ts.map +1 -1
  1221. package/dist/react-native/documents/ConnectionPolicy.js +2 -2
  1222. package/dist/react-native/documents/ConnectionPolicy.js.map +1 -1
  1223. package/dist/react-native/documents/DatabaseAccount.d.ts +4 -0
  1224. package/dist/react-native/documents/DatabaseAccount.d.ts.map +1 -1
  1225. package/dist/react-native/documents/DatabaseAccount.js +29 -4
  1226. package/dist/react-native/documents/DatabaseAccount.js.map +1 -1
  1227. package/dist/react-native/documents/PartitionKey.js +1 -3
  1228. package/dist/react-native/documents/PartitionKey.js.map +1 -1
  1229. package/dist/react-native/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  1230. package/dist/react-native/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  1231. package/dist/react-native/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  1232. package/dist/react-native/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  1233. package/dist/react-native/encryption/Cache/EncryptionSettingsCache.js +2 -0
  1234. package/dist/react-native/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  1235. package/dist/react-native/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  1236. package/dist/react-native/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  1237. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js +5 -0
  1238. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  1239. package/dist/react-native/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  1240. package/dist/react-native/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  1241. package/dist/react-native/encryption/EncryptionItemQueryIterator.js +24 -27
  1242. package/dist/react-native/encryption/EncryptionItemQueryIterator.js.map +1 -1
  1243. package/dist/react-native/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  1244. package/dist/react-native/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  1245. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  1246. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  1247. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  1248. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  1249. package/dist/react-native/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  1250. package/dist/react-native/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  1251. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js +8 -1
  1252. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  1253. package/dist/react-native/encryption/EncryptionManager.js +6 -0
  1254. package/dist/react-native/encryption/EncryptionManager.js.map +1 -1
  1255. package/dist/react-native/encryption/EncryptionProcessor.js +5 -0
  1256. package/dist/react-native/encryption/EncryptionProcessor.js.map +1 -1
  1257. package/dist/react-native/encryption/EncryptionQueryBuilder.js +2 -0
  1258. package/dist/react-native/encryption/EncryptionQueryBuilder.js.map +1 -1
  1259. package/dist/react-native/encryption/EncryptionSettingForProperty.js +6 -0
  1260. package/dist/react-native/encryption/EncryptionSettingForProperty.js.map +1 -1
  1261. package/dist/react-native/encryption/EncryptionSettings.js +6 -3
  1262. package/dist/react-native/encryption/EncryptionSettings.js.map +1 -1
  1263. package/dist/react-native/encryption/KeyEncryptionKey.js +4 -0
  1264. package/dist/react-native/encryption/KeyEncryptionKey.js.map +1 -1
  1265. package/dist/react-native/encryption/Serializers/StringSerializer.js +1 -1
  1266. package/dist/react-native/encryption/Serializers/StringSerializer.js.map +1 -1
  1267. package/dist/react-native/extractPartitionKey.js +2 -2
  1268. package/dist/react-native/extractPartitionKey.js.map +1 -1
  1269. package/dist/react-native/globalEndpointManager.d.ts +8 -0
  1270. package/dist/react-native/globalEndpointManager.d.ts.map +1 -1
  1271. package/dist/react-native/globalEndpointManager.js +104 -29
  1272. package/dist/react-native/globalEndpointManager.js.map +1 -1
  1273. package/dist/react-native/globalPartitionEndpointManager.d.ts +0 -2
  1274. package/dist/react-native/globalPartitionEndpointManager.d.ts.map +1 -1
  1275. package/dist/react-native/globalPartitionEndpointManager.js +19 -7
  1276. package/dist/react-native/globalPartitionEndpointManager.js.map +1 -1
  1277. package/dist/react-native/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  1278. package/dist/react-native/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  1279. package/dist/react-native/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  1280. package/dist/react-native/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  1281. package/dist/react-native/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  1282. package/dist/react-native/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  1283. package/dist/react-native/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  1284. package/dist/react-native/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  1285. package/dist/react-native/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  1286. package/dist/react-native/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  1287. package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  1288. package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  1289. package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  1290. package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  1291. package/dist/react-native/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  1292. package/dist/react-native/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  1293. package/dist/react-native/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  1294. package/dist/react-native/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  1295. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  1296. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  1297. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  1298. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  1299. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  1300. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  1301. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  1302. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  1303. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  1304. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  1305. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  1306. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  1307. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  1308. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  1309. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  1310. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  1311. package/dist/react-native/queryExecutionContext/FetchResult.js +4 -0
  1312. package/dist/react-native/queryExecutionContext/FetchResult.js.map +1 -1
  1313. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  1314. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  1315. package/dist/react-native/queryExecutionContext/documentProducer.js +34 -21
  1316. package/dist/react-native/queryExecutionContext/documentProducer.js.map +1 -1
  1317. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  1318. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  1319. package/dist/react-native/queryExecutionContext/orderByComparator.js +1 -0
  1320. package/dist/react-native/queryExecutionContext/orderByComparator.js.map +1 -1
  1321. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  1322. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  1323. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  1324. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  1325. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  1326. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  1327. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  1328. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  1329. package/dist/react-native/queryIterator.js +41 -33
  1330. package/dist/react-native/queryIterator.js.map +1 -1
  1331. package/dist/react-native/queryMetrics/clientSideMetrics.js +2 -1
  1332. package/dist/react-native/queryMetrics/clientSideMetrics.js.map +1 -1
  1333. package/dist/react-native/queryMetrics/queryMetrics.js +14 -1
  1334. package/dist/react-native/queryMetrics/queryMetrics.js.map +1 -1
  1335. package/dist/react-native/queryMetrics/queryPreparationTime.js +5 -1
  1336. package/dist/react-native/queryMetrics/queryPreparationTime.js.map +1 -1
  1337. package/dist/react-native/queryMetrics/runtimeExecutionTimes.js +4 -1
  1338. package/dist/react-native/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  1339. package/dist/react-native/queryMetrics/timeSpan.js +4 -3
  1340. package/dist/react-native/queryMetrics/timeSpan.js.map +1 -1
  1341. package/dist/react-native/request/ErrorResponse.js +19 -0
  1342. package/dist/react-native/request/ErrorResponse.js.map +1 -1
  1343. package/dist/react-native/request/FeedResponse.js +4 -0
  1344. package/dist/react-native/request/FeedResponse.js.map +1 -1
  1345. package/dist/react-native/request/RequestHandler.js +3 -4
  1346. package/dist/react-native/request/RequestHandler.js.map +1 -1
  1347. package/dist/react-native/request/ResourceResponse.js +5 -0
  1348. package/dist/react-native/request/ResourceResponse.js.map +1 -1
  1349. package/dist/react-native/request/SharedOptions.d.ts +5 -0
  1350. package/dist/react-native/request/SharedOptions.d.ts.map +1 -1
  1351. package/dist/react-native/request/SharedOptions.js.map +1 -1
  1352. package/dist/react-native/request/TimeoutError.js +1 -1
  1353. package/dist/react-native/request/TimeoutError.js.map +1 -1
  1354. package/dist/react-native/request/hybridSearchQueryResult.js +5 -0
  1355. package/dist/react-native/request/hybridSearchQueryResult.js.map +1 -1
  1356. package/dist/react-native/request/request.js +5 -1
  1357. package/dist/react-native/request/request.js.map +1 -1
  1358. package/dist/react-native/retry/bulkExecutionRetryPolicy.js +5 -2
  1359. package/dist/react-native/retry/bulkExecutionRetryPolicy.js.map +1 -1
  1360. package/dist/react-native/retry/defaultRetryPolicy.d.ts.map +1 -1
  1361. package/dist/react-native/retry/defaultRetryPolicy.js +7 -7
  1362. package/dist/react-native/retry/defaultRetryPolicy.js.map +1 -1
  1363. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.d.ts +3 -2
  1364. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  1365. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js +24 -7
  1366. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  1367. package/dist/react-native/retry/resourceThrottleRetryPolicy.js +20 -10
  1368. package/dist/react-native/retry/resourceThrottleRetryPolicy.js.map +1 -1
  1369. package/dist/react-native/retry/retryUtility.d.ts.map +1 -1
  1370. package/dist/react-native/retry/retryUtility.js +22 -8
  1371. package/dist/react-native/retry/retryUtility.js.map +1 -1
  1372. package/dist/react-native/retry/sessionRetryPolicy.js +8 -4
  1373. package/dist/react-native/retry/sessionRetryPolicy.js.map +1 -1
  1374. package/dist/react-native/retry/timeoutFailoverRetryPolicy.d.ts +1 -2
  1375. package/dist/react-native/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  1376. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js +17 -7
  1377. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  1378. package/dist/react-native/routing/QueryRange.js +4 -0
  1379. package/dist/react-native/routing/QueryRange.js.map +1 -1
  1380. package/dist/react-native/routing/inMemoryCollectionRoutingMap.js +4 -0
  1381. package/dist/react-native/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  1382. package/dist/react-native/routing/partitionKeyRangeCache.js +2 -0
  1383. package/dist/react-native/routing/partitionKeyRangeCache.js.map +1 -1
  1384. package/dist/react-native/routing/smartRoutingMapProvider.js +1 -0
  1385. package/dist/react-native/routing/smartRoutingMapProvider.js.map +1 -1
  1386. package/dist/react-native/session/VectorSessionToken.js +6 -2
  1387. package/dist/react-native/session/VectorSessionToken.js.map +1 -1
  1388. package/dist/react-native/session/sessionContainer.js +5 -3
  1389. package/dist/react-native/session/sessionContainer.js.map +1 -1
  1390. package/dist/react-native/utils/batch.js +15 -4
  1391. package/dist/react-native/utils/batch.js.map +1 -1
  1392. package/dist/react-native/utils/encode.d.ts +1 -1
  1393. package/dist/react-native/utils/encode.d.ts.map +1 -1
  1394. package/dist/react-native/utils/encode.js.map +1 -1
  1395. package/dist/react-native/utils/fixedSizePriorityQueue.js +4 -0
  1396. package/dist/react-native/utils/fixedSizePriorityQueue.js.map +1 -1
  1397. package/dist/react-native/utils/hashing/hash.js +1 -1
  1398. package/dist/react-native/utils/hashing/hash.js.map +1 -1
  1399. package/dist/react-native/utils/nonStreamingOrderByMap.js +2 -0
  1400. package/dist/react-native/utils/nonStreamingOrderByMap.js.map +1 -1
  1401. package/package.json +33 -33
@@ -1 +1 @@
1
- {"version":3,"file":"documentProducer.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/documentProducer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { PartitionKeyRange, Resource } from \"../client/index.js\";\nimport type { ClientContext } from \"../ClientContext.js\";\nimport {\n Constants,\n getIdFromLink,\n getPathFromLink,\n ResourceType,\n StatusCodes,\n SubStatusCodes,\n} from \"../common/index.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type { FeedOptions } from \"../request/index.js\";\nimport type { Response } from \"../request/index.js\";\nimport { DefaultQueryExecutionContext } from \"./defaultQueryExecutionContext.js\";\nimport type { FetchFunctionCallback } from \"./defaultQueryExecutionContext.js\";\nimport { FetchResult, FetchResultType } from \"./FetchResult.js\";\nimport { getInitialHeader } from \"./headerUtils.js\";\nimport type { CosmosHeaders } from \"./headerUtils.js\";\nimport type { SqlQuerySpec } from \"./index.js\";\n\n/** @hidden */\nexport class DocumentProducer {\n private collectionLink: string;\n private query: string | SqlQuerySpec;\n public targetPartitionKeyRange: PartitionKeyRange;\n public fetchResults: FetchResult[];\n public allFetched: boolean;\n private err: Error;\n public previousContinuationToken: string;\n public continuationToken: string;\n public generation: number = 0;\n private internalExecutionContext: DefaultQueryExecutionContext;\n public startEpk: string;\n public endEpk: string;\n public populateEpkRangeHeaders: boolean;\n\n /**\n * Provides the Target Partition Range Query Execution Context.\n * @param clientContext - The service endpoint to use to create the client.\n * @param collectionLink - Represents collection link\n * @param query - A SQL query.\n * @param targetPartitionKeyRange - Query Target Partition key Range\n * @hidden\n */\n constructor(\n private clientContext: ClientContext,\n collectionLink: string,\n query: SqlQuerySpec,\n targetPartitionKeyRange: PartitionKeyRange,\n options: FeedOptions,\n correlatedActivityId: string,\n startEpk?: string,\n endEpk?: string,\n populateEpkRangeHeaders: boolean = false,\n ) {\n // TODO: any options\n this.collectionLink = collectionLink;\n this.query = query;\n this.targetPartitionKeyRange = targetPartitionKeyRange;\n this.fetchResults = [];\n\n this.allFetched = false;\n this.err = undefined;\n\n this.previousContinuationToken = undefined;\n this.continuationToken = undefined;\n\n this.internalExecutionContext = new DefaultQueryExecutionContext(\n options,\n this.fetchFunction,\n correlatedActivityId,\n );\n this.startEpk = startEpk;\n this.endEpk = endEpk;\n this.populateEpkRangeHeaders = populateEpkRangeHeaders;\n }\n public peekBufferedItems(): any[] {\n const bufferedResults = [];\n for (let i = 0, done = false; i < this.fetchResults.length && !done; i++) {\n const fetchResult = this.fetchResults[i];\n switch (fetchResult.fetchResultType) {\n case FetchResultType.Done:\n done = true;\n break;\n case FetchResultType.Exception:\n done = true;\n break;\n case FetchResultType.Result:\n bufferedResults.push(fetchResult.feedResponse);\n break;\n }\n }\n return bufferedResults;\n }\n\n public fetchFunction: FetchFunctionCallback = async (\n diagnosticNode: DiagnosticNodeInternal,\n options: FeedOptions,\n correlatedActivityId: string,\n ): Promise<Response<Resource>> => {\n const path = getPathFromLink(this.collectionLink, ResourceType.item);\n diagnosticNode.addData({ partitionKeyRangeId: this.targetPartitionKeyRange.id });\n const id = getIdFromLink(this.collectionLink);\n const startEpk = this.populateEpkRangeHeaders ? this.startEpk : undefined;\n const endEpk = this.populateEpkRangeHeaders ? this.endEpk : undefined;\n\n return this.clientContext.queryFeed({\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n resultFn: (result: any) => result.Documents,\n query: this.query,\n options,\n diagnosticNode,\n partitionKeyRangeId: this.targetPartitionKeyRange[\"id\"],\n correlatedActivityId: correlatedActivityId,\n startEpk: startEpk,\n endEpk: endEpk,\n });\n };\n\n public hasMoreResults(): boolean {\n return this.internalExecutionContext.hasMoreResults() || this.fetchResults.length !== 0;\n }\n\n public gotSplit(): boolean {\n if (this.fetchResults.length !== 0) {\n const fetchResult = this.fetchResults[0];\n if (fetchResult.fetchResultType === FetchResultType.Exception) {\n if (DocumentProducer._needPartitionKeyRangeCacheRefresh(fetchResult.error)) {\n return true;\n }\n }\n }\n return false;\n }\n\n private _updateStates(err: any, allFetched: boolean): void {\n if (err) {\n this.err = err;\n return;\n }\n if (allFetched) {\n this.allFetched = true;\n }\n if (this.internalExecutionContext.continuationToken === this.continuationToken) {\n // nothing changed\n return;\n }\n this.previousContinuationToken = this.continuationToken;\n this.continuationToken = this.internalExecutionContext.continuationToken;\n }\n\n private static _needPartitionKeyRangeCacheRefresh(error: any): boolean {\n // TODO: error\n return (\n error.code === StatusCodes.Gone &&\n \"substatus\" in error &&\n error[\"substatus\"] === SubStatusCodes.PartitionKeyRangeGone\n );\n }\n\n /**\n * Fetches and bufferes the next page of results in internal buffer\n */\n public async bufferMore(diagnosticNode: DiagnosticNodeInternal): Promise<CosmosHeaders> {\n if (this.err) {\n throw this.err;\n }\n\n try {\n const { result: resources, headers: headerResponse } =\n await this.internalExecutionContext.fetchMore(diagnosticNode);\n ++this.generation;\n this._updateStates(undefined, resources === undefined);\n if (resources !== undefined) {\n // add fetched header to the 1st element in the buffer\n let addHeaderToFetchResult = true;\n resources.forEach((element: any) => {\n this.fetchResults.push(\n new FetchResult(\n element,\n undefined,\n addHeaderToFetchResult ? headerResponse : getInitialHeader(),\n ),\n );\n addHeaderToFetchResult = false;\n });\n }\n\n // need to modify the header response so that the query metrics are per partition\n if (headerResponse != null && Constants.HttpHeaders.QueryMetrics in headerResponse) {\n // \"0\" is the default partition before one is actually assigned.\n const queryMetrics = headerResponse[Constants.HttpHeaders.QueryMetrics][\"0\"];\n\n // Wraping query metrics in a object where the keys are the partition key range.\n headerResponse[Constants.HttpHeaders.QueryMetrics] = {};\n headerResponse[Constants.HttpHeaders.QueryMetrics][this.targetPartitionKeyRange.id] =\n queryMetrics;\n }\n return headerResponse;\n } catch (err: any) {\n if (DocumentProducer._needPartitionKeyRangeCacheRefresh(err)) {\n // Split just happend\n // Buffer the error so the execution context can still get the feedResponses in the itemBuffer\n const bufferedError = new FetchResult(undefined, err);\n this.fetchResults.push(bufferedError);\n return err.headers;\n } else {\n this._updateStates(err, err.resources === undefined);\n throw err;\n }\n }\n }\n\n public getTargetParitionKeyRange(): PartitionKeyRange {\n return this.targetPartitionKeyRange;\n }\n /**\n * Peak the next item in the buffer\n */\n public peakNextItem(): any {\n if (this.err) {\n throw this.err;\n }\n if (this.allFetched || this.fetchResults.length === 0) {\n return undefined;\n }\n const fetchResult = this.fetchResults[0];\n\n switch (fetchResult.fetchResultType) {\n case FetchResultType.Done:\n return undefined;\n\n case FetchResultType.Exception: // do not throw this error\n return undefined;\n\n case FetchResultType.Result:\n return fetchResult.feedResponse;\n }\n }\n\n /**\n * Returns the first item in the buffered results if any, or [] otherwise.\n */\n public async fetchNextItem(): Promise<Response<any>> {\n if (this.err) {\n this._updateStates(this.err, undefined);\n throw this.err;\n }\n if (this.allFetched) {\n return { result: undefined, headers: getInitialHeader() };\n }\n try {\n const { result, headers } = this.current();\n this._updateStates(undefined, result === undefined);\n if (result === undefined || result.length === 0) {\n return { result: undefined, headers };\n }\n return { result, headers }; //\n } catch (err: any) {\n this._updateStates(err, err.item === undefined);\n throw err;\n }\n }\n /**\n * Fetches all the buffered results\n */\n public async fetchBufferedItems(): Promise<Response<any[]>> {\n if (this.err) {\n this._updateStates(this.err, undefined);\n throw this.err;\n }\n if (this.allFetched) {\n return { result: undefined, headers: getInitialHeader() };\n }\n const resources: any[] = [];\n try {\n while (this.fetchResults.length > 0) {\n const { result } = this.current();\n this._updateStates(undefined, result === undefined);\n if (result === undefined) {\n return {\n result: resources.length > 0 ? resources : undefined,\n headers: getInitialHeader(),\n };\n } else {\n resources.push(result);\n }\n }\n return { result: resources, headers: getInitialHeader() };\n } catch (err: any) {\n this._updateStates(err, err.item === undefined);\n throw err;\n }\n }\n\n /**\n * Retrieve the current element on the DocumentProducer.\n */\n private current(): Response<any> {\n // If something is buffered just give that\n if (this.fetchResults.length > 0) {\n const fetchResult = this.fetchResults.shift();\n // Need to unwrap fetch results\n switch (fetchResult.fetchResultType) {\n case FetchResultType.Done:\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n case FetchResultType.Exception:\n fetchResult.error.headers = getInitialHeader();\n throw fetchResult.error;\n case FetchResultType.Result:\n return {\n result: fetchResult.feedResponse,\n headers: getInitialHeader(),\n };\n }\n }\n\n // If there isn't anymore items left to fetch then let the user know.\n if (this.allFetched) {\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n\n // If the internal buffer is empty, return empty result\n return { result: [], headers: getInitialHeader() };\n }\n}\n"]}
1
+ {"version":3,"file":"documentProducer.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/documentProducer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { PartitionKeyRange, Resource } from \"../client/index.js\";\nimport type { ClientContext } from \"../ClientContext.js\";\nimport {\n Constants,\n getIdFromLink,\n getPathFromLink,\n ResourceType,\n StatusCodes,\n SubStatusCodes,\n} from \"../common/index.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type { FeedOptions } from \"../request/index.js\";\nimport type { Response } from \"../request/index.js\";\nimport { DefaultQueryExecutionContext } from \"./defaultQueryExecutionContext.js\";\nimport type { FetchFunctionCallback } from \"./defaultQueryExecutionContext.js\";\nimport { FetchResult, FetchResultType } from \"./FetchResult.js\";\nimport { getInitialHeader } from \"./headerUtils.js\";\nimport type { CosmosHeaders } from \"./headerUtils.js\";\nimport type { SqlQuerySpec } from \"./index.js\";\n\n/** @hidden */\nexport class DocumentProducer {\n private collectionLink: string;\n private query: string | SqlQuerySpec;\n public targetPartitionKeyRange: PartitionKeyRange;\n public fetchResults: FetchResult[];\n public allFetched: boolean;\n private err: Error;\n public previousContinuationToken: string;\n public continuationToken: string;\n public generation: number = 0;\n private internalExecutionContext: DefaultQueryExecutionContext;\n public startEpk: string;\n public endEpk: string;\n public populateEpkRangeHeaders: boolean;\n\n /**\n * Provides the Target Partition Range Query Execution Context.\n * @param clientContext - The service endpoint to use to create the client.\n * @param collectionLink - Represents collection link\n * @param query - A SQL query.\n * @param targetPartitionKeyRange - Query Target Partition key Range\n * @hidden\n */\n constructor(\n private clientContext: ClientContext,\n collectionLink: string,\n query: SqlQuerySpec,\n targetPartitionKeyRange: PartitionKeyRange,\n options: FeedOptions,\n correlatedActivityId: string,\n startEpk?: string,\n endEpk?: string,\n populateEpkRangeHeaders: boolean = false,\n ) {\n // TODO: any options\n this.collectionLink = collectionLink;\n this.query = query;\n this.targetPartitionKeyRange = targetPartitionKeyRange;\n this.fetchResults = [];\n\n this.allFetched = false;\n this.err = undefined;\n\n this.previousContinuationToken = undefined;\n this.continuationToken = undefined;\n\n this.internalExecutionContext = new DefaultQueryExecutionContext(\n options,\n this.fetchFunction,\n correlatedActivityId,\n );\n this.startEpk = startEpk;\n this.endEpk = endEpk;\n this.populateEpkRangeHeaders = populateEpkRangeHeaders;\n }\n public peekBufferedItems(): any[] {\n const bufferedResults = [];\n for (let i = 0, done = false; i < this.fetchResults.length && !done; i++) {\n const fetchResult = this.fetchResults[i];\n switch (fetchResult.fetchResultType) {\n case FetchResultType.Done:\n done = true;\n break;\n case FetchResultType.Exception:\n done = true;\n break;\n case FetchResultType.Result:\n bufferedResults.push(fetchResult.feedResponse);\n break;\n }\n }\n return bufferedResults;\n }\n\n public fetchFunction: FetchFunctionCallback = async (\n diagnosticNode: DiagnosticNodeInternal,\n options: FeedOptions,\n correlatedActivityId: string,\n ): Promise<Response<Resource>> => {\n const path = getPathFromLink(this.collectionLink, ResourceType.item);\n diagnosticNode.addData({ partitionKeyRangeId: this.targetPartitionKeyRange.id });\n const id = getIdFromLink(this.collectionLink);\n const startEpk = this.populateEpkRangeHeaders ? this.startEpk : undefined;\n const endEpk = this.populateEpkRangeHeaders ? this.endEpk : undefined;\n\n return this.clientContext.queryFeed({\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n resultFn: (result: any) => result.Documents,\n query: this.query,\n options,\n diagnosticNode,\n partitionKeyRangeId: this.targetPartitionKeyRange[\"id\"],\n correlatedActivityId: correlatedActivityId,\n startEpk: startEpk,\n endEpk: endEpk,\n });\n };\n\n public hasMoreResults(): boolean {\n return this.internalExecutionContext.hasMoreResults() || this.fetchResults.length !== 0;\n }\n\n public gotSplit(): boolean {\n if (this.fetchResults.length !== 0) {\n const fetchResult = this.fetchResults[0];\n if (fetchResult.fetchResultType === FetchResultType.Exception) {\n if (DocumentProducer._needPartitionKeyRangeCacheRefresh(fetchResult.error)) {\n return true;\n }\n }\n }\n return false;\n }\n\n private _updateStates(err: any, allFetched: boolean): void {\n if (err) {\n this.err = err;\n return;\n }\n if (allFetched) {\n this.allFetched = true;\n }\n if (this.internalExecutionContext.continuationToken === this.continuationToken) {\n // nothing changed\n return;\n }\n this.previousContinuationToken = this.continuationToken;\n this.continuationToken = this.internalExecutionContext.continuationToken;\n }\n\n private static _needPartitionKeyRangeCacheRefresh(error: any): boolean {\n // TODO: error\n return (\n error.code === StatusCodes.Gone &&\n \"substatus\" in error &&\n error[\"substatus\"] === SubStatusCodes.PartitionKeyRangeGone\n );\n }\n\n /**\n * Fetches and bufferes the next page of results in internal buffer\n */\n public async bufferMore(diagnosticNode: DiagnosticNodeInternal): Promise<CosmosHeaders> {\n if (this.err) {\n throw this.err;\n }\n\n try {\n const { result: resources, headers: headerResponse } =\n await this.internalExecutionContext.fetchMore(diagnosticNode);\n ++this.generation;\n this._updateStates(undefined, resources === undefined);\n if (resources !== undefined) {\n // add fetched header to the 1st element in the buffer\n let addHeaderToFetchResult = true;\n resources.forEach((element: any) => {\n this.fetchResults.push(\n new FetchResult(\n element,\n undefined,\n addHeaderToFetchResult ? headerResponse : getInitialHeader(),\n ),\n );\n addHeaderToFetchResult = false;\n });\n }\n\n // need to modify the header response so that the query metrics are per partition\n if (headerResponse != null && Constants.HttpHeaders.QueryMetrics in headerResponse) {\n // \"0\" is the default partition before one is actually assigned.\n const queryMetrics = headerResponse[Constants.HttpHeaders.QueryMetrics][\"0\"];\n\n // Wraping query metrics in a object where the keys are the partition key range.\n headerResponse[Constants.HttpHeaders.QueryMetrics] = {};\n headerResponse[Constants.HttpHeaders.QueryMetrics][this.targetPartitionKeyRange.id] =\n queryMetrics;\n }\n return headerResponse;\n } catch (err: any) {\n if (DocumentProducer._needPartitionKeyRangeCacheRefresh(err)) {\n // Split just happend\n // Buffer the error so the execution context can still get the feedResponses in the itemBuffer\n const bufferedError = new FetchResult(undefined, err);\n this.fetchResults.push(bufferedError);\n return err.headers;\n } else {\n this._updateStates(err, err.resources === undefined);\n throw err;\n }\n }\n }\n\n public getTargetParitionKeyRange(): PartitionKeyRange {\n return this.targetPartitionKeyRange;\n }\n /**\n * Peak the next item in the buffer\n */\n public peakNextItem(): any {\n if (this.err) {\n throw this.err;\n }\n if (this.allFetched || this.fetchResults.length === 0) {\n return undefined;\n }\n const fetchResult = this.fetchResults[0];\n\n switch (fetchResult.fetchResultType) {\n case FetchResultType.Done:\n return undefined;\n\n case FetchResultType.Exception: // do not throw this error\n return undefined;\n\n case FetchResultType.Result:\n return fetchResult.feedResponse;\n }\n }\n\n /**\n * Returns the first item in the buffered results if any, or [] otherwise.\n */\n public async fetchNextItem(): Promise<Response<any>> {\n if (this.err) {\n this._updateStates(this.err, undefined);\n throw this.err;\n }\n if (this.allFetched) {\n return { result: undefined, headers: getInitialHeader() };\n }\n try {\n const { result, headers } = this.current();\n this._updateStates(undefined, result === undefined);\n if (result === undefined || result.length === 0) {\n return { result: undefined, headers };\n }\n return { result, headers }; //\n } catch (err: any) {\n this._updateStates(err, err.item === undefined);\n throw err;\n }\n }\n /**\n * Fetches all the buffered results\n */\n public async fetchBufferedItems(): Promise<Response<any[]>> {\n if (this.err) {\n this._updateStates(this.err, undefined);\n throw this.err;\n }\n if (this.allFetched) {\n return { result: undefined, headers: getInitialHeader() };\n }\n const resources: any[] = [];\n try {\n while (this.fetchResults.length > 0) {\n const { result } = this.current();\n this._updateStates(undefined, result === undefined);\n if (result === undefined) {\n return {\n result: resources.length > 0 ? resources : undefined,\n headers: getInitialHeader(),\n };\n } else {\n resources.push(result);\n }\n }\n return { result: resources, headers: getInitialHeader() };\n } catch (err: any) {\n this._updateStates(err, err.item === undefined);\n throw err;\n }\n }\n\n /**\n * Retrieve the current element on the DocumentProducer.\n */\n private current(): Response<any> {\n // If something is buffered just give that\n if (this.fetchResults.length > 0) {\n const fetchResult = this.fetchResults.shift();\n // Need to unwrap fetch results\n switch (fetchResult.fetchResultType) {\n case FetchResultType.Done:\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n case FetchResultType.Exception:\n fetchResult.error.headers = getInitialHeader();\n throw fetchResult.error;\n case FetchResultType.Result:\n return {\n result: fetchResult.feedResponse,\n headers: getInitialHeader(),\n };\n }\n }\n\n // If there isn't anymore items left to fetch then let the user know.\n if (this.allFetched) {\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n\n // If the internal buffer is empty, return empty result\n return { result: [], headers: getInitialHeader() };\n }\n}\n"]}
@@ -18,6 +18,29 @@ var HybridQueryExecutionContextBaseStates;
18
18
  HybridQueryExecutionContextBaseStates["done"] = "done";
19
19
  })(HybridQueryExecutionContextBaseStates || (exports.HybridQueryExecutionContextBaseStates = HybridQueryExecutionContextBaseStates = {}));
20
20
  class HybridQueryExecutionContext {
21
+ clientContext;
22
+ collectionLink;
23
+ query;
24
+ options;
25
+ partitionedQueryExecutionInfo;
26
+ correlatedActivityId;
27
+ allPartitionsRanges;
28
+ globalStatisticsExecutionContext;
29
+ componentsExecutionContext = [];
30
+ pageSize;
31
+ state;
32
+ globalStatisticsAggregator;
33
+ emitRawOrderByPayload = true;
34
+ buffer = [];
35
+ DEFAULT_PAGE_SIZE = 10;
36
+ TOTAL_WORD_COUNT_PLACEHOLDER = "documentdb-formattablehybridsearchquery-totalwordcount";
37
+ HIT_COUNTS_ARRAY_PLACEHOLDER = "documentdb-formattablehybridsearchquery-hitcountsarray";
38
+ TOTAL_DOCUMENT_COUNT_PLACEHOLDER = "documentdb-formattablehybridsearchquery-totaldocumentcount";
39
+ RRF_CONSTANT = 60; // Constant for RRF score calculation
40
+ logger = (0, logger_1.createClientLogger)("HybridQueryExecutionContext");
41
+ hybridSearchResult = [];
42
+ uniqueItems = new Map();
43
+ isSingleComponent = false;
21
44
  constructor(clientContext, collectionLink, query, options, partitionedQueryExecutionInfo, correlatedActivityId, allPartitionsRanges) {
22
45
  this.clientContext = clientContext;
23
46
  this.collectionLink = collectionLink;
@@ -26,30 +49,6 @@ class HybridQueryExecutionContext {
26
49
  this.partitionedQueryExecutionInfo = partitionedQueryExecutionInfo;
27
50
  this.correlatedActivityId = correlatedActivityId;
28
51
  this.allPartitionsRanges = allPartitionsRanges;
29
- this.componentsExecutionContext = [];
30
- this.emitRawOrderByPayload = true;
31
- this.buffer = [];
32
- this.DEFAULT_PAGE_SIZE = 10;
33
- this.TOTAL_WORD_COUNT_PLACEHOLDER = "documentdb-formattablehybridsearchquery-totalwordcount";
34
- this.HIT_COUNTS_ARRAY_PLACEHOLDER = "documentdb-formattablehybridsearchquery-hitcountsarray";
35
- this.TOTAL_DOCUMENT_COUNT_PLACEHOLDER = "documentdb-formattablehybridsearchquery-totaldocumentcount";
36
- this.RRF_CONSTANT = 60; // Constant for RRF score calculation
37
- this.logger = (0, logger_1.createClientLogger)("HybridQueryExecutionContext");
38
- this.hybridSearchResult = [];
39
- this.uniqueItems = new Map();
40
- this.isSingleComponent = false;
41
- this.computeRRFScore = (ranks, k, componentWeights) => {
42
- if (ranks.length !== componentWeights.length) {
43
- throw new Error("Ranks and component weights length mismatch");
44
- }
45
- let rrfScore = 0;
46
- for (let i = 0; i < ranks.length; i++) {
47
- const rank = ranks[i];
48
- const weight = componentWeights[i].weight;
49
- rrfScore += weight * (1 / (k + rank));
50
- }
51
- return rrfScore;
52
- };
53
52
  this.state = HybridQueryExecutionContextBaseStates.uninitialized;
54
53
  this.pageSize = this.options.maxItemCount;
55
54
  if (this.pageSize === undefined) {
@@ -368,7 +367,6 @@ class HybridQueryExecutionContext {
368
367
  }
369
368
  }
370
369
  createComponentExecutionContexts() {
371
- var _a, _b;
372
370
  // rewrite queries based on global statistics
373
371
  let queryInfos = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.componentQueryInfos;
374
372
  if (this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.requiresGlobalStatistics) {
@@ -385,7 +383,7 @@ class HybridQueryExecutionContext {
385
383
  ? componentQueryInfo.rewrittenQuery
386
384
  : {
387
385
  query: componentQueryInfo.rewrittenQuery,
388
- parameters: (_b = (_a = this.query) === null || _a === void 0 ? void 0 : _a.parameters) !== null && _b !== void 0 ? _b : [],
386
+ parameters: this.query?.parameters ?? [],
389
387
  };
390
388
  const executionContext = new pipelinedQueryExecutionContext_js_1.PipelinedQueryExecutionContext(this.clientContext, this.collectionLink, rewrittenSqlQuerySpec, this.options, componentPartitionExecutionInfo, this.correlatedActivityId, this.emitRawOrderByPayload);
391
389
  this.componentsExecutionContext.push(executionContext);
@@ -401,7 +399,11 @@ class HybridQueryExecutionContext {
401
399
  }
402
400
  rewrittenOrderByExpressions = queryInfo.orderByExpressions.map((expr) => this.replacePlaceholdersWorkaroud(expr, globalStats, componentQueryInfos.length));
403
401
  }
404
- return Object.assign(Object.assign({}, queryInfo), { rewrittenQuery: this.replacePlaceholdersWorkaroud(queryInfo.rewrittenQuery, globalStats, componentQueryInfos.length), orderByExpressions: rewrittenOrderByExpressions });
402
+ return {
403
+ ...queryInfo,
404
+ rewrittenQuery: this.replacePlaceholdersWorkaroud(queryInfo.rewrittenQuery, globalStats, componentQueryInfos.length),
405
+ orderByExpressions: rewrittenOrderByExpressions,
406
+ };
405
407
  });
406
408
  }
407
409
  // This method is commented currently, but we will switch back to using this
@@ -452,6 +454,18 @@ class HybridQueryExecutionContext {
452
454
  }
453
455
  return query;
454
456
  }
457
+ computeRRFScore = (ranks, k, componentWeights) => {
458
+ if (ranks.length !== componentWeights.length) {
459
+ throw new Error("Ranks and component weights length mismatch");
460
+ }
461
+ let rrfScore = 0;
462
+ for (let i = 0; i < ranks.length; i++) {
463
+ const rank = ranks[i];
464
+ const weight = componentWeights[i].weight;
465
+ rrfScore += weight * (1 / (k + rank));
466
+ }
467
+ return rrfScore;
468
+ };
455
469
  extractComponentWeights() {
456
470
  const hybridSearchQueryInfo = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo;
457
471
  const useDefaultComponentWeight = !hybridSearchQueryInfo.componentWeights ||
@@ -1 +1 @@
1
- {"version":3,"file":"hybridQueryExecutionContext.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/hybridQueryExecutionContext.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AzureLogger } from \"@azure/logger\";\nimport { createClientLogger } from \"@azure/logger\";\nimport type { ClientContext } from \"../ClientContext.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type {\n FeedOptions,\n GlobalStatistics,\n PartitionedQueryExecutionInfo,\n QueryInfo,\n QueryRange,\n Response,\n} from \"../request/index.js\";\nimport { HybridSearchQueryResult } from \"../request/hybridSearchQueryResult.js\";\nimport { GlobalStatisticsAggregator } from \"./Aggregators/GlobalStatisticsAggregator.js\";\nimport type { CosmosHeaders } from \"./CosmosHeaders.js\";\nimport type { ExecutionContext } from \"./ExecutionContext.js\";\nimport { getInitialHeader, mergeHeaders } from \"./headerUtils.js\";\nimport { ParallelQueryExecutionContext } from \"./parallelQueryExecutionContext.js\";\nimport { PipelinedQueryExecutionContext } from \"./pipelinedQueryExecutionContext.js\";\nimport { SqlQuerySpec } from \"./SqlQuerySpec.js\";\n\n/** @hidden */\nexport enum HybridQueryExecutionContextBaseStates {\n uninitialized = \"uninitialized\",\n initialized = \"initialized\",\n draining = \"draining\",\n done = \"done\",\n}\nexport class HybridQueryExecutionContext implements ExecutionContext {\n private globalStatisticsExecutionContext: ExecutionContext;\n private componentsExecutionContext: ExecutionContext[] = [];\n private pageSize: number;\n private state: HybridQueryExecutionContextBaseStates;\n private globalStatisticsAggregator: GlobalStatisticsAggregator;\n private emitRawOrderByPayload: boolean = true;\n private buffer: HybridSearchQueryResult[] = [];\n private DEFAULT_PAGE_SIZE = 10;\n private TOTAL_WORD_COUNT_PLACEHOLDER = \"documentdb-formattablehybridsearchquery-totalwordcount\";\n private HIT_COUNTS_ARRAY_PLACEHOLDER = \"documentdb-formattablehybridsearchquery-hitcountsarray\";\n private TOTAL_DOCUMENT_COUNT_PLACEHOLDER =\n \"documentdb-formattablehybridsearchquery-totaldocumentcount\";\n private RRF_CONSTANT = 60; // Constant for RRF score calculation\n private logger: AzureLogger = createClientLogger(\"HybridQueryExecutionContext\");\n private hybridSearchResult: HybridSearchQueryResult[] = [];\n private uniqueItems = new Map<string, HybridSearchQueryResult>();\n private isSingleComponent: boolean = false;\n\n constructor(\n private clientContext: ClientContext,\n private collectionLink: string,\n private query: string | SqlQuerySpec,\n private options: FeedOptions,\n private partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n private correlatedActivityId: string,\n private allPartitionsRanges: QueryRange[],\n ) {\n this.state = HybridQueryExecutionContextBaseStates.uninitialized;\n this.pageSize = this.options.maxItemCount;\n if (this.pageSize === undefined) {\n this.pageSize = this.DEFAULT_PAGE_SIZE;\n }\n if (partitionedQueryExecutionInfo.hybridSearchQueryInfo.requiresGlobalStatistics) {\n const globalStaticsQueryOptions: FeedOptions = { maxItemCount: this.pageSize };\n this.globalStatisticsAggregator = new GlobalStatisticsAggregator();\n\n const globalStatisticsQuery =\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.globalStatisticsQuery;\n const globalStatisticsQueryExecutionInfo: PartitionedQueryExecutionInfo = {\n partitionedQueryExecutionInfoVersion: 1,\n queryInfo: {\n distinctType: \"None\",\n hasSelectValue: false,\n groupByAliasToAggregateType: {},\n rewrittenQuery: globalStatisticsQuery,\n hasNonStreamingOrderBy: false,\n },\n queryRanges: this.allPartitionsRanges,\n };\n\n this.globalStatisticsExecutionContext = new ParallelQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n globalStatisticsQuery,\n globalStaticsQueryOptions,\n globalStatisticsQueryExecutionInfo,\n this.correlatedActivityId,\n );\n } else {\n this.createComponentExecutionContexts();\n this.state = HybridQueryExecutionContextBaseStates.initialized;\n }\n }\n public async nextItem(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n const nextItemRespHeaders = getInitialHeader();\n while (\n (this.state === HybridQueryExecutionContextBaseStates.uninitialized ||\n this.state === HybridQueryExecutionContextBaseStates.initialized) &&\n this.buffer.length === 0\n ) {\n await this.fetchMoreInternal(diagnosticNode, nextItemRespHeaders);\n }\n\n if (this.state === HybridQueryExecutionContextBaseStates.draining && this.buffer.length > 0) {\n return this.drainOne(nextItemRespHeaders);\n } else {\n return this.done(nextItemRespHeaders);\n }\n }\n\n public hasMoreResults(): boolean {\n switch (this.state) {\n case HybridQueryExecutionContextBaseStates.uninitialized:\n return true;\n case HybridQueryExecutionContextBaseStates.initialized:\n return true;\n case HybridQueryExecutionContextBaseStates.draining:\n return this.buffer.length > 0;\n case HybridQueryExecutionContextBaseStates.done:\n return false;\n default:\n return false;\n }\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n const fetchMoreRespHeaders = getInitialHeader();\n return this.fetchMoreInternal(diagnosticNode, fetchMoreRespHeaders);\n }\n\n private async fetchMoreInternal(\n diagnosticNode: DiagnosticNodeInternal,\n headers: CosmosHeaders,\n ): Promise<Response<any>> {\n switch (this.state) {\n case HybridQueryExecutionContextBaseStates.uninitialized:\n await this.initialize(diagnosticNode, headers);\n return {\n result: [],\n headers: headers,\n };\n\n case HybridQueryExecutionContextBaseStates.initialized:\n await this.executeComponentQueries(diagnosticNode, headers);\n return {\n result: [],\n headers: headers,\n };\n case HybridQueryExecutionContextBaseStates.draining:\n return this.drain(headers);\n case HybridQueryExecutionContextBaseStates.done:\n return this.done(headers);\n default:\n throw new Error(`Invalid state: ${this.state}`);\n }\n }\n\n private async initialize(\n diagnosticNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n try {\n while (this.globalStatisticsExecutionContext.hasMoreResults()) {\n const result = await this.globalStatisticsExecutionContext.fetchMore(diagnosticNode);\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (result && result.result) {\n for (const item of result.result) {\n const globalStatistics: GlobalStatistics = item;\n if (globalStatistics) {\n // iterate over the components update placeholders from globalStatistics\n this.globalStatisticsAggregator.aggregate(globalStatistics);\n }\n }\n }\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n\n // create component execution contexts for each component query\n this.createComponentExecutionContexts();\n this.state = HybridQueryExecutionContextBaseStates.initialized;\n }\n\n private async executeComponentQueries(\n diagnosticNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n if (this.isSingleComponent) {\n await this.drainSingleComponent(diagnosticNode, fetchMoreRespHeaders);\n return;\n }\n try {\n if (this.options.enableQueryControl) {\n // track componentExecutionContexts with remaining results and call them in LIFO order\n if (this.componentsExecutionContext.length > 0) {\n const componentExecutionContext = this.componentsExecutionContext.pop();\n if (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagnosticNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n const hybridItem = HybridSearchQueryResult.create(item);\n if (!this.uniqueItems.has(hybridItem.rid)) {\n this.uniqueItems.set(hybridItem.rid, hybridItem);\n }\n });\n }\n if (componentExecutionContext.hasMoreResults()) {\n this.componentsExecutionContext.push(componentExecutionContext);\n }\n }\n }\n if (this.componentsExecutionContext.length === 0) {\n this.processUniqueItems();\n }\n } else {\n for (const componentExecutionContext of this.componentsExecutionContext) {\n while (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagnosticNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n const hybridItem = HybridSearchQueryResult.create(item);\n if (!this.uniqueItems.has(hybridItem.rid)) {\n this.uniqueItems.set(hybridItem.rid, hybridItem);\n }\n });\n }\n }\n }\n this.processUniqueItems();\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private processUniqueItems(): void {\n this.uniqueItems.forEach((item) => this.hybridSearchResult.push(item));\n if (this.hybridSearchResult.length === 0 || this.hybridSearchResult.length === 1) {\n // return the result as no or one element is present\n this.hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.state = HybridQueryExecutionContextBaseStates.draining;\n return;\n }\n\n // Initialize an array to hold ranks for each document\n const componentWeights = this.extractComponentWeights();\n const sortedHybridSearchResult = this.sortHybridSearchResultByRRFScore(\n this.hybridSearchResult,\n componentWeights,\n );\n // store the result to buffer\n // add only data from the sortedHybridSearchResult in the buffer\n sortedHybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n\n private applySkipAndTakeToBuffer(): void {\n const { skip, take } = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo;\n if (skip) {\n this.buffer = skip >= this.buffer.length ? [] : this.buffer.slice(skip);\n }\n if (take) {\n this.buffer = take <= 0 ? [] : this.buffer.slice(0, take);\n }\n }\n\n private async drain(fetchMoreRespHeaders: CosmosHeaders): Promise<Response<any>> {\n try {\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n return this.done(fetchMoreRespHeaders);\n }\n const result = this.buffer.slice(0, this.pageSize);\n this.buffer = this.buffer.slice(this.pageSize);\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n }\n return {\n result: result,\n headers: fetchMoreRespHeaders,\n };\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private async drainOne(nextItemRespHeaders: CosmosHeaders): Promise<Response<any>> {\n try {\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n return this.done(nextItemRespHeaders);\n }\n const result = this.buffer.shift();\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n }\n return {\n result: result,\n headers: nextItemRespHeaders,\n };\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private done(fetchMoreRespHeaders: CosmosHeaders): Response<any> {\n return {\n result: undefined,\n headers: fetchMoreRespHeaders,\n };\n }\n\n private sortHybridSearchResultByRRFScore(\n hybridSearchResult: HybridSearchQueryResult[],\n componentWeights: ComponentWeight[],\n ): HybridSearchQueryResult[] {\n if (hybridSearchResult.length === 0) {\n return [];\n }\n const ranksArray: { rid: string; ranks: number[] }[] = hybridSearchResult.map((item) => ({\n rid: item.rid,\n ranks: new Array(item.componentScores.length).fill(0),\n }));\n // Compute ranks for each component score\n for (let i = 0; i < hybridSearchResult[0].componentScores.length; i++) {\n // Sort based on the i-th component score\n hybridSearchResult.sort((a, b) =>\n componentWeights[i].comparator(a.componentScores[i], b.componentScores[i]),\n );\n\n // Assign ranks\n let rank = 1;\n for (let j = 0; j < hybridSearchResult.length; j++) {\n if (\n j > 0 &&\n hybridSearchResult[j].componentScores[i] !== hybridSearchResult[j - 1].componentScores[i]\n ) {\n ++rank;\n }\n const rankIndex = ranksArray.findIndex(\n (rankItem) => rankItem.rid === hybridSearchResult[j].rid,\n );\n ranksArray[rankIndex].ranks[i] = rank; // 1-based rank\n }\n }\n\n // Compute RRF scores and sort based on them\n const rrfScores = ranksArray.map((item) => ({\n rid: item.rid,\n rrfScore: this.computeRRFScore(item.ranks, this.RRF_CONSTANT, componentWeights),\n }));\n\n // Sort based on RRF scores\n rrfScores.sort((a, b) => b.rrfScore - a.rrfScore);\n // Map sorted RRF scores back to hybridSearchResult\n const sortedHybridSearchResult = rrfScores.map((scoreItem) =>\n hybridSearchResult.find((item) => item.rid === scoreItem.rid),\n );\n return sortedHybridSearchResult;\n }\n\n private async drainSingleComponent(\n diagNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n if (this.componentsExecutionContext && this.componentsExecutionContext.length !== 1) {\n this.logger.error(\"drainSingleComponent called on multiple components\");\n return;\n }\n try {\n if (this.options.enableQueryControl) {\n const componentExecutionContext = this.componentsExecutionContext[0];\n if (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n this.hybridSearchResult.push(HybridSearchQueryResult.create(item));\n });\n }\n }\n if (!componentExecutionContext.hasMoreResults()) {\n this.state = HybridQueryExecutionContextBaseStates.draining;\n this.hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n return;\n } else {\n const componentExecutionContext = this.componentsExecutionContext[0];\n const hybridSearchResult: HybridSearchQueryResult[] = [];\n // add check for enable query control\n while (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n hybridSearchResult.push(HybridSearchQueryResult.create(item));\n });\n }\n }\n hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private createComponentExecutionContexts(): void {\n // rewrite queries based on global statistics\n let queryInfos: QueryInfo[] =\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.componentQueryInfos;\n if (this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.requiresGlobalStatistics) {\n queryInfos = this.processComponentQueries(\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.componentQueryInfos,\n this.globalStatisticsAggregator.getResult(),\n );\n }\n // create component execution contexts\n for (const componentQueryInfo of queryInfos) {\n const componentPartitionExecutionInfo: PartitionedQueryExecutionInfo = {\n partitionedQueryExecutionInfoVersion: 1,\n queryInfo: componentQueryInfo,\n queryRanges: this.partitionedQueryExecutionInfo.queryRanges,\n };\n const rewrittenSqlQuerySpec: string | SqlQuerySpec =\n typeof this.query === \"string\"\n ? componentQueryInfo.rewrittenQuery\n : {\n query: componentQueryInfo.rewrittenQuery,\n parameters: this.query?.parameters ?? [],\n };\n const executionContext = new PipelinedQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n rewrittenSqlQuerySpec,\n this.options,\n componentPartitionExecutionInfo,\n this.correlatedActivityId,\n this.emitRawOrderByPayload,\n );\n this.componentsExecutionContext.push(executionContext);\n }\n this.isSingleComponent = this.componentsExecutionContext.length === 1;\n }\n private processComponentQueries(\n componentQueryInfos: QueryInfo[],\n globalStats: GlobalStatistics,\n ): QueryInfo[] {\n return componentQueryInfos.map((queryInfo) => {\n let rewrittenOrderByExpressions = queryInfo.orderByExpressions;\n if (queryInfo.orderBy && queryInfo.orderBy.length > 0) {\n if (!queryInfo.hasNonStreamingOrderBy) {\n throw new Error(\"The component query must have a non-streaming order by clause.\");\n }\n rewrittenOrderByExpressions = queryInfo.orderByExpressions.map((expr) =>\n this.replacePlaceholdersWorkaroud(expr, globalStats, componentQueryInfos.length),\n );\n }\n return {\n ...queryInfo,\n rewrittenQuery: this.replacePlaceholdersWorkaroud(\n queryInfo.rewrittenQuery,\n globalStats,\n componentQueryInfos.length,\n ),\n orderByExpressions: rewrittenOrderByExpressions,\n };\n });\n }\n // This method is commented currently, but we will switch back to using this\n // once the gateway has been redeployed with the fix for placeholder indexes\n // private replacePlaceholders(query: string, globalStats: GlobalStatistics): string {\n // // Replace total document count\n // query = query.replace(\n // new RegExp(`{${this.TOTAL_DOCUMENT_COUNT_PLACEHOLDER}}`, \"g\"),\n // globalStats.documentCount.toString(),\n // );\n\n // // Replace total word counts and hit counts from fullTextStatistics\n // globalStats.fullTextStatistics.forEach((stats, index) => {\n // // Replace total word counts\n // query = query.replace(\n // new RegExp(`{${this.TOTAL_WORD_COUNT_PLACEHOLDER}-${index}}`, \"g\"),\n // stats.totalWordCount.toString(),\n // );\n // // Replace hit counts\n // query = query.replace(\n // new RegExp(`{${this.HIT_COUNTS_ARRAY_PLACEHOLDER}-${index}}`, \"g\"),\n // `[${stats.hitCounts.join(\",\")}]`,\n // );\n // });\n\n // return query;\n // }\n\n private replacePlaceholdersWorkaroud(\n query: string,\n globalStats: GlobalStatistics,\n componentCount: number,\n ): string {\n if (\n !globalStats ||\n !globalStats.documentCount ||\n !Array.isArray(globalStats.fullTextStatistics)\n ) {\n throw new Error(\"GlobalStats validation failed\");\n }\n // Replace total document count\n query = query.replace(\n new RegExp(`{${this.TOTAL_DOCUMENT_COUNT_PLACEHOLDER}}`, \"g\"),\n globalStats.documentCount.toString(),\n );\n let statisticsIndex: number = 0;\n for (let i = 0; i < componentCount; i++) {\n // Replace total word counts and hit counts from fullTextStatistics\n const wordCountPlaceholder = `{${this.TOTAL_WORD_COUNT_PLACEHOLDER}-${i}}`;\n const hitCountPlaceholder = `{${this.HIT_COUNTS_ARRAY_PLACEHOLDER}-${i}}`;\n if (!query.includes(wordCountPlaceholder)) {\n continue;\n }\n const stats = globalStats.fullTextStatistics[statisticsIndex];\n // Replace total word counts\n query = query.replace(new RegExp(wordCountPlaceholder, \"g\"), stats.totalWordCount.toString());\n // Replace hit counts\n query = query.replace(new RegExp(hitCountPlaceholder, \"g\"), `[${stats.hitCounts.join(\",\")}]`);\n statisticsIndex++;\n }\n return query;\n }\n\n private computeRRFScore = (\n ranks: number[],\n k: number,\n componentWeights: ComponentWeight[],\n ): number => {\n if (ranks.length !== componentWeights.length) {\n throw new Error(\"Ranks and component weights length mismatch\");\n }\n let rrfScore = 0;\n for (let i = 0; i < ranks.length; i++) {\n const rank = ranks[i];\n const weight = componentWeights[i].weight;\n rrfScore += weight * (1 / (k + rank));\n }\n return rrfScore;\n };\n\n private extractComponentWeights(): ComponentWeight[] {\n const hybridSearchQueryInfo = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo;\n const useDefaultComponentWeight =\n !hybridSearchQueryInfo.componentWeights ||\n hybridSearchQueryInfo.componentWeights.length === 0;\n\n const result: {\n weight: number;\n comparator: (x: number, y: number) => number;\n }[] = [];\n\n for (let index = 0; index < hybridSearchQueryInfo.componentQueryInfos.length; ++index) {\n const queryInfo = hybridSearchQueryInfo.componentQueryInfos[index];\n\n if (queryInfo.orderBy && queryInfo.orderBy.length > 0) {\n if (!queryInfo.hasNonStreamingOrderBy) {\n throw new Error(\"The component query should have a non streaming order by\");\n }\n\n if (!queryInfo.orderByExpressions || queryInfo.orderByExpressions.length !== 1) {\n throw new Error(\"The component query should have exactly one order by expression\");\n }\n }\n const componentWeight = useDefaultComponentWeight\n ? 1\n : hybridSearchQueryInfo.componentWeights[index];\n const hasOrderBy = queryInfo.orderBy && queryInfo.orderBy.length > 0;\n const sortOrder = hasOrderBy && queryInfo.orderBy[0].includes(\"Ascending\") ? 1 : -1;\n result.push({\n weight: componentWeight,\n comparator: (x: number, y: number) => sortOrder * (x - y),\n });\n }\n return result;\n }\n}\n\nexport interface ComponentWeight {\n weight: number;\n comparator: (x: number, y: number) => number;\n}\n"]}
1
+ {"version":3,"file":"hybridQueryExecutionContext.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/hybridQueryExecutionContext.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AzureLogger } from \"@azure/logger\";\nimport { createClientLogger } from \"@azure/logger\";\nimport type { ClientContext } from \"../ClientContext.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type {\n FeedOptions,\n GlobalStatistics,\n PartitionedQueryExecutionInfo,\n QueryInfo,\n QueryRange,\n Response,\n} from \"../request/index.js\";\nimport { HybridSearchQueryResult } from \"../request/hybridSearchQueryResult.js\";\nimport { GlobalStatisticsAggregator } from \"./Aggregators/GlobalStatisticsAggregator.js\";\nimport type { CosmosHeaders } from \"./CosmosHeaders.js\";\nimport type { ExecutionContext } from \"./ExecutionContext.js\";\nimport { getInitialHeader, mergeHeaders } from \"./headerUtils.js\";\nimport { ParallelQueryExecutionContext } from \"./parallelQueryExecutionContext.js\";\nimport { PipelinedQueryExecutionContext } from \"./pipelinedQueryExecutionContext.js\";\nimport { SqlQuerySpec } from \"./SqlQuerySpec.js\";\n\n/** @hidden */\nexport enum HybridQueryExecutionContextBaseStates {\n uninitialized = \"uninitialized\",\n initialized = \"initialized\",\n draining = \"draining\",\n done = \"done\",\n}\nexport class HybridQueryExecutionContext implements ExecutionContext {\n private globalStatisticsExecutionContext: ExecutionContext;\n private componentsExecutionContext: ExecutionContext[] = [];\n private pageSize: number;\n private state: HybridQueryExecutionContextBaseStates;\n private globalStatisticsAggregator: GlobalStatisticsAggregator;\n private emitRawOrderByPayload: boolean = true;\n private buffer: HybridSearchQueryResult[] = [];\n private DEFAULT_PAGE_SIZE = 10;\n private TOTAL_WORD_COUNT_PLACEHOLDER = \"documentdb-formattablehybridsearchquery-totalwordcount\";\n private HIT_COUNTS_ARRAY_PLACEHOLDER = \"documentdb-formattablehybridsearchquery-hitcountsarray\";\n private TOTAL_DOCUMENT_COUNT_PLACEHOLDER =\n \"documentdb-formattablehybridsearchquery-totaldocumentcount\";\n private RRF_CONSTANT = 60; // Constant for RRF score calculation\n private logger: AzureLogger = createClientLogger(\"HybridQueryExecutionContext\");\n private hybridSearchResult: HybridSearchQueryResult[] = [];\n private uniqueItems = new Map<string, HybridSearchQueryResult>();\n private isSingleComponent: boolean = false;\n\n constructor(\n private clientContext: ClientContext,\n private collectionLink: string,\n private query: string | SqlQuerySpec,\n private options: FeedOptions,\n private partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n private correlatedActivityId: string,\n private allPartitionsRanges: QueryRange[],\n ) {\n this.state = HybridQueryExecutionContextBaseStates.uninitialized;\n this.pageSize = this.options.maxItemCount;\n if (this.pageSize === undefined) {\n this.pageSize = this.DEFAULT_PAGE_SIZE;\n }\n if (partitionedQueryExecutionInfo.hybridSearchQueryInfo.requiresGlobalStatistics) {\n const globalStaticsQueryOptions: FeedOptions = { maxItemCount: this.pageSize };\n this.globalStatisticsAggregator = new GlobalStatisticsAggregator();\n\n const globalStatisticsQuery =\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.globalStatisticsQuery;\n const globalStatisticsQueryExecutionInfo: PartitionedQueryExecutionInfo = {\n partitionedQueryExecutionInfoVersion: 1,\n queryInfo: {\n distinctType: \"None\",\n hasSelectValue: false,\n groupByAliasToAggregateType: {},\n rewrittenQuery: globalStatisticsQuery,\n hasNonStreamingOrderBy: false,\n },\n queryRanges: this.allPartitionsRanges,\n };\n\n this.globalStatisticsExecutionContext = new ParallelQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n globalStatisticsQuery,\n globalStaticsQueryOptions,\n globalStatisticsQueryExecutionInfo,\n this.correlatedActivityId,\n );\n } else {\n this.createComponentExecutionContexts();\n this.state = HybridQueryExecutionContextBaseStates.initialized;\n }\n }\n public async nextItem(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n const nextItemRespHeaders = getInitialHeader();\n while (\n (this.state === HybridQueryExecutionContextBaseStates.uninitialized ||\n this.state === HybridQueryExecutionContextBaseStates.initialized) &&\n this.buffer.length === 0\n ) {\n await this.fetchMoreInternal(diagnosticNode, nextItemRespHeaders);\n }\n\n if (this.state === HybridQueryExecutionContextBaseStates.draining && this.buffer.length > 0) {\n return this.drainOne(nextItemRespHeaders);\n } else {\n return this.done(nextItemRespHeaders);\n }\n }\n\n public hasMoreResults(): boolean {\n switch (this.state) {\n case HybridQueryExecutionContextBaseStates.uninitialized:\n return true;\n case HybridQueryExecutionContextBaseStates.initialized:\n return true;\n case HybridQueryExecutionContextBaseStates.draining:\n return this.buffer.length > 0;\n case HybridQueryExecutionContextBaseStates.done:\n return false;\n default:\n return false;\n }\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n const fetchMoreRespHeaders = getInitialHeader();\n return this.fetchMoreInternal(diagnosticNode, fetchMoreRespHeaders);\n }\n\n private async fetchMoreInternal(\n diagnosticNode: DiagnosticNodeInternal,\n headers: CosmosHeaders,\n ): Promise<Response<any>> {\n switch (this.state) {\n case HybridQueryExecutionContextBaseStates.uninitialized:\n await this.initialize(diagnosticNode, headers);\n return {\n result: [],\n headers: headers,\n };\n\n case HybridQueryExecutionContextBaseStates.initialized:\n await this.executeComponentQueries(diagnosticNode, headers);\n return {\n result: [],\n headers: headers,\n };\n case HybridQueryExecutionContextBaseStates.draining:\n return this.drain(headers);\n case HybridQueryExecutionContextBaseStates.done:\n return this.done(headers);\n default:\n throw new Error(`Invalid state: ${this.state}`);\n }\n }\n\n private async initialize(\n diagnosticNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n try {\n while (this.globalStatisticsExecutionContext.hasMoreResults()) {\n const result = await this.globalStatisticsExecutionContext.fetchMore(diagnosticNode);\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (result && result.result) {\n for (const item of result.result) {\n const globalStatistics: GlobalStatistics = item;\n if (globalStatistics) {\n // iterate over the components update placeholders from globalStatistics\n this.globalStatisticsAggregator.aggregate(globalStatistics);\n }\n }\n }\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n\n // create component execution contexts for each component query\n this.createComponentExecutionContexts();\n this.state = HybridQueryExecutionContextBaseStates.initialized;\n }\n\n private async executeComponentQueries(\n diagnosticNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n if (this.isSingleComponent) {\n await this.drainSingleComponent(diagnosticNode, fetchMoreRespHeaders);\n return;\n }\n try {\n if (this.options.enableQueryControl) {\n // track componentExecutionContexts with remaining results and call them in LIFO order\n if (this.componentsExecutionContext.length > 0) {\n const componentExecutionContext = this.componentsExecutionContext.pop();\n if (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagnosticNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n const hybridItem = HybridSearchQueryResult.create(item);\n if (!this.uniqueItems.has(hybridItem.rid)) {\n this.uniqueItems.set(hybridItem.rid, hybridItem);\n }\n });\n }\n if (componentExecutionContext.hasMoreResults()) {\n this.componentsExecutionContext.push(componentExecutionContext);\n }\n }\n }\n if (this.componentsExecutionContext.length === 0) {\n this.processUniqueItems();\n }\n } else {\n for (const componentExecutionContext of this.componentsExecutionContext) {\n while (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagnosticNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n const hybridItem = HybridSearchQueryResult.create(item);\n if (!this.uniqueItems.has(hybridItem.rid)) {\n this.uniqueItems.set(hybridItem.rid, hybridItem);\n }\n });\n }\n }\n }\n this.processUniqueItems();\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private processUniqueItems(): void {\n this.uniqueItems.forEach((item) => this.hybridSearchResult.push(item));\n if (this.hybridSearchResult.length === 0 || this.hybridSearchResult.length === 1) {\n // return the result as no or one element is present\n this.hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.state = HybridQueryExecutionContextBaseStates.draining;\n return;\n }\n\n // Initialize an array to hold ranks for each document\n const componentWeights = this.extractComponentWeights();\n const sortedHybridSearchResult = this.sortHybridSearchResultByRRFScore(\n this.hybridSearchResult,\n componentWeights,\n );\n // store the result to buffer\n // add only data from the sortedHybridSearchResult in the buffer\n sortedHybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n\n private applySkipAndTakeToBuffer(): void {\n const { skip, take } = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo;\n if (skip) {\n this.buffer = skip >= this.buffer.length ? [] : this.buffer.slice(skip);\n }\n if (take) {\n this.buffer = take <= 0 ? [] : this.buffer.slice(0, take);\n }\n }\n\n private async drain(fetchMoreRespHeaders: CosmosHeaders): Promise<Response<any>> {\n try {\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n return this.done(fetchMoreRespHeaders);\n }\n const result = this.buffer.slice(0, this.pageSize);\n this.buffer = this.buffer.slice(this.pageSize);\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n }\n return {\n result: result,\n headers: fetchMoreRespHeaders,\n };\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private async drainOne(nextItemRespHeaders: CosmosHeaders): Promise<Response<any>> {\n try {\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n return this.done(nextItemRespHeaders);\n }\n const result = this.buffer.shift();\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n }\n return {\n result: result,\n headers: nextItemRespHeaders,\n };\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private done(fetchMoreRespHeaders: CosmosHeaders): Response<any> {\n return {\n result: undefined,\n headers: fetchMoreRespHeaders,\n };\n }\n\n private sortHybridSearchResultByRRFScore(\n hybridSearchResult: HybridSearchQueryResult[],\n componentWeights: ComponentWeight[],\n ): HybridSearchQueryResult[] {\n if (hybridSearchResult.length === 0) {\n return [];\n }\n const ranksArray: { rid: string; ranks: number[] }[] = hybridSearchResult.map((item) => ({\n rid: item.rid,\n ranks: new Array(item.componentScores.length).fill(0),\n }));\n // Compute ranks for each component score\n for (let i = 0; i < hybridSearchResult[0].componentScores.length; i++) {\n // Sort based on the i-th component score\n hybridSearchResult.sort((a, b) =>\n componentWeights[i].comparator(a.componentScores[i], b.componentScores[i]),\n );\n\n // Assign ranks\n let rank = 1;\n for (let j = 0; j < hybridSearchResult.length; j++) {\n if (\n j > 0 &&\n hybridSearchResult[j].componentScores[i] !== hybridSearchResult[j - 1].componentScores[i]\n ) {\n ++rank;\n }\n const rankIndex = ranksArray.findIndex(\n (rankItem) => rankItem.rid === hybridSearchResult[j].rid,\n );\n ranksArray[rankIndex].ranks[i] = rank; // 1-based rank\n }\n }\n\n // Compute RRF scores and sort based on them\n const rrfScores = ranksArray.map((item) => ({\n rid: item.rid,\n rrfScore: this.computeRRFScore(item.ranks, this.RRF_CONSTANT, componentWeights),\n }));\n\n // Sort based on RRF scores\n rrfScores.sort((a, b) => b.rrfScore - a.rrfScore);\n // Map sorted RRF scores back to hybridSearchResult\n const sortedHybridSearchResult = rrfScores.map((scoreItem) =>\n hybridSearchResult.find((item) => item.rid === scoreItem.rid),\n );\n return sortedHybridSearchResult;\n }\n\n private async drainSingleComponent(\n diagNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n if (this.componentsExecutionContext && this.componentsExecutionContext.length !== 1) {\n this.logger.error(\"drainSingleComponent called on multiple components\");\n return;\n }\n try {\n if (this.options.enableQueryControl) {\n const componentExecutionContext = this.componentsExecutionContext[0];\n if (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n this.hybridSearchResult.push(HybridSearchQueryResult.create(item));\n });\n }\n }\n if (!componentExecutionContext.hasMoreResults()) {\n this.state = HybridQueryExecutionContextBaseStates.draining;\n this.hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n return;\n } else {\n const componentExecutionContext = this.componentsExecutionContext[0];\n const hybridSearchResult: HybridSearchQueryResult[] = [];\n // add check for enable query control\n while (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n hybridSearchResult.push(HybridSearchQueryResult.create(item));\n });\n }\n }\n hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private createComponentExecutionContexts(): void {\n // rewrite queries based on global statistics\n let queryInfos: QueryInfo[] =\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.componentQueryInfos;\n if (this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.requiresGlobalStatistics) {\n queryInfos = this.processComponentQueries(\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.componentQueryInfos,\n this.globalStatisticsAggregator.getResult(),\n );\n }\n // create component execution contexts\n for (const componentQueryInfo of queryInfos) {\n const componentPartitionExecutionInfo: PartitionedQueryExecutionInfo = {\n partitionedQueryExecutionInfoVersion: 1,\n queryInfo: componentQueryInfo,\n queryRanges: this.partitionedQueryExecutionInfo.queryRanges,\n };\n const rewrittenSqlQuerySpec: string | SqlQuerySpec =\n typeof this.query === \"string\"\n ? componentQueryInfo.rewrittenQuery\n : {\n query: componentQueryInfo.rewrittenQuery,\n parameters: this.query?.parameters ?? [],\n };\n const executionContext = new PipelinedQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n rewrittenSqlQuerySpec,\n this.options,\n componentPartitionExecutionInfo,\n this.correlatedActivityId,\n this.emitRawOrderByPayload,\n );\n this.componentsExecutionContext.push(executionContext);\n }\n this.isSingleComponent = this.componentsExecutionContext.length === 1;\n }\n private processComponentQueries(\n componentQueryInfos: QueryInfo[],\n globalStats: GlobalStatistics,\n ): QueryInfo[] {\n return componentQueryInfos.map((queryInfo) => {\n let rewrittenOrderByExpressions = queryInfo.orderByExpressions;\n if (queryInfo.orderBy && queryInfo.orderBy.length > 0) {\n if (!queryInfo.hasNonStreamingOrderBy) {\n throw new Error(\"The component query must have a non-streaming order by clause.\");\n }\n rewrittenOrderByExpressions = queryInfo.orderByExpressions.map((expr) =>\n this.replacePlaceholdersWorkaroud(expr, globalStats, componentQueryInfos.length),\n );\n }\n return {\n ...queryInfo,\n rewrittenQuery: this.replacePlaceholdersWorkaroud(\n queryInfo.rewrittenQuery,\n globalStats,\n componentQueryInfos.length,\n ),\n orderByExpressions: rewrittenOrderByExpressions,\n };\n });\n }\n // This method is commented currently, but we will switch back to using this\n // once the gateway has been redeployed with the fix for placeholder indexes\n // private replacePlaceholders(query: string, globalStats: GlobalStatistics): string {\n // // Replace total document count\n // query = query.replace(\n // new RegExp(`{${this.TOTAL_DOCUMENT_COUNT_PLACEHOLDER}}`, \"g\"),\n // globalStats.documentCount.toString(),\n // );\n\n // // Replace total word counts and hit counts from fullTextStatistics\n // globalStats.fullTextStatistics.forEach((stats, index) => {\n // // Replace total word counts\n // query = query.replace(\n // new RegExp(`{${this.TOTAL_WORD_COUNT_PLACEHOLDER}-${index}}`, \"g\"),\n // stats.totalWordCount.toString(),\n // );\n // // Replace hit counts\n // query = query.replace(\n // new RegExp(`{${this.HIT_COUNTS_ARRAY_PLACEHOLDER}-${index}}`, \"g\"),\n // `[${stats.hitCounts.join(\",\")}]`,\n // );\n // });\n\n // return query;\n // }\n\n private replacePlaceholdersWorkaroud(\n query: string,\n globalStats: GlobalStatistics,\n componentCount: number,\n ): string {\n if (\n !globalStats ||\n !globalStats.documentCount ||\n !Array.isArray(globalStats.fullTextStatistics)\n ) {\n throw new Error(\"GlobalStats validation failed\");\n }\n // Replace total document count\n query = query.replace(\n new RegExp(`{${this.TOTAL_DOCUMENT_COUNT_PLACEHOLDER}}`, \"g\"),\n globalStats.documentCount.toString(),\n );\n let statisticsIndex: number = 0;\n for (let i = 0; i < componentCount; i++) {\n // Replace total word counts and hit counts from fullTextStatistics\n const wordCountPlaceholder = `{${this.TOTAL_WORD_COUNT_PLACEHOLDER}-${i}}`;\n const hitCountPlaceholder = `{${this.HIT_COUNTS_ARRAY_PLACEHOLDER}-${i}}`;\n if (!query.includes(wordCountPlaceholder)) {\n continue;\n }\n const stats = globalStats.fullTextStatistics[statisticsIndex];\n // Replace total word counts\n query = query.replace(new RegExp(wordCountPlaceholder, \"g\"), stats.totalWordCount.toString());\n // Replace hit counts\n query = query.replace(new RegExp(hitCountPlaceholder, \"g\"), `[${stats.hitCounts.join(\",\")}]`);\n statisticsIndex++;\n }\n return query;\n }\n\n private computeRRFScore = (\n ranks: number[],\n k: number,\n componentWeights: ComponentWeight[],\n ): number => {\n if (ranks.length !== componentWeights.length) {\n throw new Error(\"Ranks and component weights length mismatch\");\n }\n let rrfScore = 0;\n for (let i = 0; i < ranks.length; i++) {\n const rank = ranks[i];\n const weight = componentWeights[i].weight;\n rrfScore += weight * (1 / (k + rank));\n }\n return rrfScore;\n };\n\n private extractComponentWeights(): ComponentWeight[] {\n const hybridSearchQueryInfo = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo;\n const useDefaultComponentWeight =\n !hybridSearchQueryInfo.componentWeights ||\n hybridSearchQueryInfo.componentWeights.length === 0;\n\n const result: {\n weight: number;\n comparator: (x: number, y: number) => number;\n }[] = [];\n\n for (let index = 0; index < hybridSearchQueryInfo.componentQueryInfos.length; ++index) {\n const queryInfo = hybridSearchQueryInfo.componentQueryInfos[index];\n\n if (queryInfo.orderBy && queryInfo.orderBy.length > 0) {\n if (!queryInfo.hasNonStreamingOrderBy) {\n throw new Error(\"The component query should have a non streaming order by\");\n }\n\n if (!queryInfo.orderByExpressions || queryInfo.orderByExpressions.length !== 1) {\n throw new Error(\"The component query should have exactly one order by expression\");\n }\n }\n const componentWeight = useDefaultComponentWeight\n ? 1\n : hybridSearchQueryInfo.componentWeights[index];\n const hasOrderBy = queryInfo.orderBy && queryInfo.orderBy.length > 0;\n const sortOrder = hasOrderBy && queryInfo.orderBy[0].includes(\"Ascending\") ? 1 : -1;\n result.push({\n weight: componentWeight,\n comparator: (x: number, y: number) => sortOrder * (x - y),\n });\n }\n return result;\n }\n}\n\nexport interface ComponentWeight {\n weight: number;\n comparator: (x: number, y: number) => number;\n}\n"]}
@@ -36,6 +36,7 @@ const TYPEORDCOMPARATOR = Object.freeze({
36
36
  });
37
37
  /** @hidden */
38
38
  class OrderByComparator {
39
+ sortOrder;
39
40
  constructor(sortOrder) {
40
41
  this.sortOrder = sortOrder;
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orderByComparator.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByComparator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { NonStreamingOrderByResult } from \"./nonStreamingOrderByResult.js\";\n\n/**\n * @hidden\n * ord is used to compare different types. Eg. in ascending order, for cross type comparison, boolean will come first, then number and, then string.\n * compFunc is used to compare the same type comparison.\n */\nconst TYPEORDCOMPARATOR: {\n [type: string]: { ord: number; compFunc?: (a: any, b: any) => number };\n} = Object.freeze({\n NoValue: {\n ord: 0,\n },\n undefined: {\n ord: 1,\n },\n boolean: {\n ord: 2,\n compFunc: (a: boolean, b: boolean) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n number: {\n ord: 4,\n compFunc: (a: number, b: number) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n string: {\n ord: 5,\n compFunc: (a: string, b: string) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n});\n\n/** @hidden */\nexport class OrderByComparator {\n constructor(public sortOrder: string[]) {}\n\n public compareItems(item1: NonStreamingOrderByResult, item2: NonStreamingOrderByResult): number {\n const orderByItemsRes1 = this.getOrderByItems(item1);\n const orderByItemsRes2 = this.getOrderByItems(item2);\n\n for (let i = 0; i < orderByItemsRes1.length; i++) {\n // compares the orderby items one by one\n const compRes = this.compareOrderByItem(orderByItemsRes1[i], orderByItemsRes2[i]);\n if (compRes !== 0) {\n if (this.sortOrder[i] === \"Descending\") {\n return compRes;\n } else if (this.sortOrder[i] === \"Ascending\") {\n return -compRes;\n }\n }\n }\n }\n\n private getOrderByItems(res: any): any {\n return res[\"orderByItems\"];\n }\n\n private compareOrderByItem(orderByItem1: any, orderByItem2: any): number {\n const type1 = this.getType(orderByItem1);\n const type2 = this.getType(orderByItem2);\n return this.compareValue(orderByItem1[\"item\"], type1, orderByItem2[\"item\"], type2);\n }\n\n private getType(\n orderByItem: any,\n ):\n | \"string\"\n | \"number\"\n | \"bigint\"\n | \"boolean\"\n | \"symbol\"\n | \"undefined\"\n | \"object\"\n | \"function\"\n | \"NoValue\" {\n // TODO: any item?\n if (orderByItem === undefined || orderByItem.item === undefined) {\n return \"NoValue\";\n }\n const type = typeof orderByItem.item;\n if (TYPEORDCOMPARATOR[type] === undefined) {\n throw new Error(`unrecognizable type ${type}`);\n }\n return type;\n }\n\n private compareValue(item1: unknown, type1: string, item2: unknown, type2: string): number {\n // TODO: https://github.com/Azure/azure-sdk-for-js/issues/30122\n // currently we do not support same type and cross type comparision for object and arrays.\n\n if (type1 === \"object\" || type2 === \"object\") {\n throw new Error(\"Tried to compare an object type\");\n }\n const type1Ord = TYPEORDCOMPARATOR[type1].ord;\n const type2Ord = TYPEORDCOMPARATOR[type2].ord;\n\n // Validate if the two item are of same type or not based on the type ordinal.\n const typeCmp = type1Ord - type2Ord;\n\n // if not same type, compare based on the type ordinal. Lower ordinal takes precedence over higher ordinal.\n if (typeCmp !== 0) {\n return typeCmp;\n }\n\n // both are of the same type\n if (\n type1Ord === TYPEORDCOMPARATOR[\"undefined\"].ord ||\n type1Ord === TYPEORDCOMPARATOR[\"NoValue\"].ord\n ) {\n // if both types are undefined or Null they are equal\n return 0;\n }\n\n const compFunc = TYPEORDCOMPARATOR[type1].compFunc;\n if (typeof compFunc === \"undefined\") {\n throw new Error(\"Cannot find the comparison function\");\n }\n // same type and type is defined compare the items\n return compFunc(item1, item2);\n }\n}\n"]}
1
+ {"version":3,"file":"orderByComparator.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByComparator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { NonStreamingOrderByResult } from \"./nonStreamingOrderByResult.js\";\n\n/**\n * @hidden\n * ord is used to compare different types. Eg. in ascending order, for cross type comparison, boolean will come first, then number and, then string.\n * compFunc is used to compare the same type comparison.\n */\nconst TYPEORDCOMPARATOR: {\n [type: string]: { ord: number; compFunc?: (a: any, b: any) => number };\n} = Object.freeze({\n NoValue: {\n ord: 0,\n },\n undefined: {\n ord: 1,\n },\n boolean: {\n ord: 2,\n compFunc: (a: boolean, b: boolean) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n number: {\n ord: 4,\n compFunc: (a: number, b: number) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n string: {\n ord: 5,\n compFunc: (a: string, b: string) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n});\n\n/** @hidden */\nexport class OrderByComparator {\n constructor(public sortOrder: string[]) {}\n\n public compareItems(item1: NonStreamingOrderByResult, item2: NonStreamingOrderByResult): number {\n const orderByItemsRes1 = this.getOrderByItems(item1);\n const orderByItemsRes2 = this.getOrderByItems(item2);\n\n for (let i = 0; i < orderByItemsRes1.length; i++) {\n // compares the orderby items one by one\n const compRes = this.compareOrderByItem(orderByItemsRes1[i], orderByItemsRes2[i]);\n if (compRes !== 0) {\n if (this.sortOrder[i] === \"Descending\") {\n return compRes;\n } else if (this.sortOrder[i] === \"Ascending\") {\n return -compRes;\n }\n }\n }\n }\n\n private getOrderByItems(res: any): any {\n return res[\"orderByItems\"];\n }\n\n private compareOrderByItem(orderByItem1: any, orderByItem2: any): number {\n const type1 = this.getType(orderByItem1);\n const type2 = this.getType(orderByItem2);\n return this.compareValue(orderByItem1[\"item\"], type1, orderByItem2[\"item\"], type2);\n }\n\n private getType(\n orderByItem: any,\n ):\n | \"string\"\n | \"number\"\n | \"bigint\"\n | \"boolean\"\n | \"symbol\"\n | \"undefined\"\n | \"object\"\n | \"function\"\n | \"NoValue\" {\n // TODO: any item?\n if (orderByItem === undefined || orderByItem.item === undefined) {\n return \"NoValue\";\n }\n const type = typeof orderByItem.item;\n if (TYPEORDCOMPARATOR[type] === undefined) {\n throw new Error(`unrecognizable type ${type}`);\n }\n return type;\n }\n\n private compareValue(item1: unknown, type1: string, item2: unknown, type2: string): number {\n // TODO: https://github.com/Azure/azure-sdk-for-js/issues/30122\n // currently we do not support same type and cross type comparision for object and arrays.\n\n if (type1 === \"object\" || type2 === \"object\") {\n throw new Error(\"Tried to compare an object type\");\n }\n const type1Ord = TYPEORDCOMPARATOR[type1].ord;\n const type2Ord = TYPEORDCOMPARATOR[type2].ord;\n\n // Validate if the two item are of same type or not based on the type ordinal.\n const typeCmp = type1Ord - type2Ord;\n\n // if not same type, compare based on the type ordinal. Lower ordinal takes precedence over higher ordinal.\n if (typeCmp !== 0) {\n return typeCmp;\n }\n\n // both are of the same type\n if (\n type1Ord === TYPEORDCOMPARATOR[\"undefined\"].ord ||\n type1Ord === TYPEORDCOMPARATOR[\"NoValue\"].ord\n ) {\n // if both types are undefined or Null they are equal\n return 0;\n }\n\n const compFunc = TYPEORDCOMPARATOR[type1].compFunc;\n if (typeof compFunc === \"undefined\") {\n throw new Error(\"Cannot find the comparison function\");\n }\n // same type and type is defined compare the items\n return compFunc(item1, item2);\n }\n}\n"]}
@@ -31,6 +31,7 @@ const TYPEORDCOMPARATOR = Object.freeze({
31
31
  });
32
32
  /** @hidden */
33
33
  class OrderByDocumentProducerComparator {
34
+ sortOrder;
34
35
  constructor(sortOrder) {
35
36
  this.sortOrder = sortOrder;
36
37
  } // TODO: This should be an enum
@@ -1 +1 @@
1
- {"version":3,"file":"orderByDocumentProducerComparator.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByDocumentProducerComparator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DocumentProducer } from \"./documentProducer.js\";\n\n// TODO: this smells funny\n/** @hidden */\nconst TYPEORDCOMPARATOR: {\n [type: string]: { ord: number; compFunc?: (a: any, b: any) => number };\n} = Object.freeze({\n NoValue: {\n ord: 0,\n },\n undefined: {\n ord: 1,\n },\n boolean: {\n ord: 2,\n compFunc: (a: boolean, b: boolean) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n number: {\n ord: 4,\n compFunc: (a: number, b: number) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n string: {\n ord: 5,\n compFunc: (a: string, b: string) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n});\n\n/** @hidden */\nexport class OrderByDocumentProducerComparator {\n constructor(public sortOrder: string[]) {} // TODO: This should be an enum\n\n private targetPartitionKeyRangeDocProdComparator(\n docProd1: DocumentProducer,\n docProd2: DocumentProducer,\n ): 0 | 1 | -1 {\n const a = docProd1.getTargetParitionKeyRange()[\"minInclusive\"];\n const b = docProd2.getTargetParitionKeyRange()[\"minInclusive\"];\n return a === b ? 0 : a > b ? 1 : -1;\n }\n\n public compare(docProd1: DocumentProducer, docProd2: DocumentProducer): number {\n // Need to check for split, since we don't want to dereference \"item\" of undefined / exception\n if (docProd1.gotSplit()) {\n return -1;\n }\n if (docProd2.gotSplit()) {\n return 1;\n }\n\n const orderByItemsRes1 = this.getOrderByItems(docProd1.peekBufferedItems()[0]);\n const orderByItemsRes2 = this.getOrderByItems(docProd2.peekBufferedItems()[0]);\n\n // validate order by items and types\n // TODO: once V1 order by on different types is fixed this need to change\n this.validateOrderByItems(orderByItemsRes1, orderByItemsRes2);\n\n // no async call in the for loop\n for (let i = 0; i < orderByItemsRes1.length; i++) {\n // compares the orderby items one by one\n const compRes = this.compareOrderByItem(orderByItemsRes1[i], orderByItemsRes2[i]);\n if (compRes !== 0) {\n if (this.sortOrder[i] === \"Ascending\") {\n return compRes;\n } else if (this.sortOrder[i] === \"Descending\") {\n return -compRes;\n }\n }\n }\n\n return this.targetPartitionKeyRangeDocProdComparator(docProd1, docProd2);\n }\n\n // TODO: This smells funny\n public compareValue(item1: unknown, type1: string, item2: unknown, type2: string): number {\n if (type1 === \"object\" || type2 === \"object\") {\n throw new Error(\"Tried to compare an object type\");\n }\n const type1Ord = TYPEORDCOMPARATOR[type1].ord;\n const type2Ord = TYPEORDCOMPARATOR[type2].ord;\n const typeCmp = type1Ord - type2Ord;\n\n if (typeCmp !== 0) {\n // if the types are different, use type ordinal\n return typeCmp;\n }\n\n // both are of the same type\n if (\n type1Ord === TYPEORDCOMPARATOR[\"undefined\"].ord ||\n type1Ord === TYPEORDCOMPARATOR[\"NoValue\"].ord\n ) {\n // if both types are undefined or Null they are equal\n return 0;\n }\n\n const compFunc = TYPEORDCOMPARATOR[type1].compFunc;\n if (typeof compFunc === \"undefined\") {\n throw new Error(\"Cannot find the comparison function\");\n }\n // same type and type is defined compare the items\n return compFunc(item1, item2);\n }\n\n private compareOrderByItem(orderByItem1: any, orderByItem2: any): number {\n const type1 = this.getType(orderByItem1);\n const type2 = this.getType(orderByItem2);\n return this.compareValue(orderByItem1[\"item\"], type1, orderByItem2[\"item\"], type2);\n }\n\n private validateOrderByItems(res1: string[], res2: string[]): void {\n if (res1.length !== res2.length) {\n throw new Error(`Expected ${res1.length}, but got ${res2.length}.`);\n }\n if (res1.length !== this.sortOrder.length) {\n throw new Error(\"orderByItems cannot have a different size than sort orders.\");\n }\n\n for (let i = 0; i < this.sortOrder.length; i++) {\n const type1 = this.getType(res1[i]);\n const type2 = this.getType(res2[i]);\n if (type1 !== type2) {\n throw new Error(\n `Expected ${type1}, but got ${type2}. Cannot execute cross partition order-by queries on mixed types. Consider filtering your query using IS_STRING or IS_NUMBER to get around this exception.`,\n );\n }\n }\n }\n\n private getType(\n orderByItem: any,\n ):\n | \"string\"\n | \"number\"\n | \"bigint\"\n | \"boolean\"\n | \"symbol\"\n | \"undefined\"\n | \"object\"\n | \"function\"\n | \"NoValue\" {\n // TODO: any item?\n if (orderByItem === undefined || orderByItem.item === undefined) {\n return \"NoValue\";\n }\n const type = typeof orderByItem.item;\n if (TYPEORDCOMPARATOR[type] === undefined) {\n throw new Error(`unrecognizable type ${type}`);\n }\n return type;\n }\n\n private getOrderByItems(res: any): any {\n // TODO: any res?\n return res[\"orderByItems\"];\n }\n}\n"]}
1
+ {"version":3,"file":"orderByDocumentProducerComparator.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByDocumentProducerComparator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DocumentProducer } from \"./documentProducer.js\";\n\n// TODO: this smells funny\n/** @hidden */\nconst TYPEORDCOMPARATOR: {\n [type: string]: { ord: number; compFunc?: (a: any, b: any) => number };\n} = Object.freeze({\n NoValue: {\n ord: 0,\n },\n undefined: {\n ord: 1,\n },\n boolean: {\n ord: 2,\n compFunc: (a: boolean, b: boolean) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n number: {\n ord: 4,\n compFunc: (a: number, b: number) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n string: {\n ord: 5,\n compFunc: (a: string, b: string) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n});\n\n/** @hidden */\nexport class OrderByDocumentProducerComparator {\n constructor(public sortOrder: string[]) {} // TODO: This should be an enum\n\n private targetPartitionKeyRangeDocProdComparator(\n docProd1: DocumentProducer,\n docProd2: DocumentProducer,\n ): 0 | 1 | -1 {\n const a = docProd1.getTargetParitionKeyRange()[\"minInclusive\"];\n const b = docProd2.getTargetParitionKeyRange()[\"minInclusive\"];\n return a === b ? 0 : a > b ? 1 : -1;\n }\n\n public compare(docProd1: DocumentProducer, docProd2: DocumentProducer): number {\n // Need to check for split, since we don't want to dereference \"item\" of undefined / exception\n if (docProd1.gotSplit()) {\n return -1;\n }\n if (docProd2.gotSplit()) {\n return 1;\n }\n\n const orderByItemsRes1 = this.getOrderByItems(docProd1.peekBufferedItems()[0]);\n const orderByItemsRes2 = this.getOrderByItems(docProd2.peekBufferedItems()[0]);\n\n // validate order by items and types\n // TODO: once V1 order by on different types is fixed this need to change\n this.validateOrderByItems(orderByItemsRes1, orderByItemsRes2);\n\n // no async call in the for loop\n for (let i = 0; i < orderByItemsRes1.length; i++) {\n // compares the orderby items one by one\n const compRes = this.compareOrderByItem(orderByItemsRes1[i], orderByItemsRes2[i]);\n if (compRes !== 0) {\n if (this.sortOrder[i] === \"Ascending\") {\n return compRes;\n } else if (this.sortOrder[i] === \"Descending\") {\n return -compRes;\n }\n }\n }\n\n return this.targetPartitionKeyRangeDocProdComparator(docProd1, docProd2);\n }\n\n // TODO: This smells funny\n public compareValue(item1: unknown, type1: string, item2: unknown, type2: string): number {\n if (type1 === \"object\" || type2 === \"object\") {\n throw new Error(\"Tried to compare an object type\");\n }\n const type1Ord = TYPEORDCOMPARATOR[type1].ord;\n const type2Ord = TYPEORDCOMPARATOR[type2].ord;\n const typeCmp = type1Ord - type2Ord;\n\n if (typeCmp !== 0) {\n // if the types are different, use type ordinal\n return typeCmp;\n }\n\n // both are of the same type\n if (\n type1Ord === TYPEORDCOMPARATOR[\"undefined\"].ord ||\n type1Ord === TYPEORDCOMPARATOR[\"NoValue\"].ord\n ) {\n // if both types are undefined or Null they are equal\n return 0;\n }\n\n const compFunc = TYPEORDCOMPARATOR[type1].compFunc;\n if (typeof compFunc === \"undefined\") {\n throw new Error(\"Cannot find the comparison function\");\n }\n // same type and type is defined compare the items\n return compFunc(item1, item2);\n }\n\n private compareOrderByItem(orderByItem1: any, orderByItem2: any): number {\n const type1 = this.getType(orderByItem1);\n const type2 = this.getType(orderByItem2);\n return this.compareValue(orderByItem1[\"item\"], type1, orderByItem2[\"item\"], type2);\n }\n\n private validateOrderByItems(res1: string[], res2: string[]): void {\n if (res1.length !== res2.length) {\n throw new Error(`Expected ${res1.length}, but got ${res2.length}.`);\n }\n if (res1.length !== this.sortOrder.length) {\n throw new Error(\"orderByItems cannot have a different size than sort orders.\");\n }\n\n for (let i = 0; i < this.sortOrder.length; i++) {\n const type1 = this.getType(res1[i]);\n const type2 = this.getType(res2[i]);\n if (type1 !== type2) {\n throw new Error(\n `Expected ${type1}, but got ${type2}. Cannot execute cross partition order-by queries on mixed types. Consider filtering your query using IS_STRING or IS_NUMBER to get around this exception.`,\n );\n }\n }\n }\n\n private getType(\n orderByItem: any,\n ):\n | \"string\"\n | \"number\"\n | \"bigint\"\n | \"boolean\"\n | \"symbol\"\n | \"undefined\"\n | \"object\"\n | \"function\"\n | \"NoValue\" {\n // TODO: any item?\n if (orderByItem === undefined || orderByItem.item === undefined) {\n return \"NoValue\";\n }\n const type = typeof orderByItem.item;\n if (TYPEORDCOMPARATOR[type] === undefined) {\n throw new Error(`unrecognizable type ${type}`);\n }\n return type;\n }\n\n private getOrderByItems(res: any): any {\n // TODO: any res?\n return res[\"orderByItems\"];\n }\n}\n"]}
@@ -5,6 +5,7 @@ const orderByDocumentProducerComparator_js_1 = require("./orderByDocumentProduce
5
5
  const parallelQueryExecutionContextBase_js_1 = require("./parallelQueryExecutionContextBase.js");
6
6
  /** @hidden */
7
7
  class OrderByQueryExecutionContext extends parallelQueryExecutionContextBase_js_1.ParallelQueryExecutionContextBase {
8
+ orderByComparator;
8
9
  /**
9
10
  * Provides the OrderByQueryExecutionContext.
10
11
  * This class is capable of handling orderby queries and dervives from ParallelQueryExecutionContextBase.
@@ -1 +1 @@
1
- {"version":3,"file":"orderByQueryExecutionContext.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByQueryExecutionContext.ts"],"names":[],"mappings":";;;AAQA,iGAA2F;AAC3F,iGAA2F;AAG3F,cAAc;AACd,MAAa,4BACX,SAAQ,wEAAiC;IAIzC;;;;;;;;;;;;OAYG;IACH,YACE,aAA4B,EAC5B,cAAsB,EACtB,KAA4B,EAC5B,OAAoB,EACpB,6BAA4D,EAC5D,oBAA4B;QAE5B,oCAAoC;QACpC,KAAK,CACH,aAAa,EACb,cAAc,EACd,KAAK,EACL,OAAO,EACP,6BAA6B,EAC7B,oBAAoB,CACrB,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,wEAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClF,CAAC;IACD,iCAAiC;IAEjC,0EAA0E;IAC1E;;;;OAIG;IACI,0BAA0B,CAAC,QAA0B,EAAE,QAA0B;QACtF,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,SAAS,CAAC,cAAuC;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAjED,oEAiEC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../ClientContext.js\";\nimport type { PartitionedQueryExecutionInfo } from \"../request/ErrorResponse.js\";\nimport type { FeedOptions } from \"../request/FeedOptions.js\";\nimport type { DocumentProducer } from \"./documentProducer.js\";\nimport type { ExecutionContext } from \"./ExecutionContext.js\";\nimport { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { OrderByDocumentProducerComparator } from \"./orderByDocumentProducerComparator.js\";\nimport { ParallelQueryExecutionContextBase } from \"./parallelQueryExecutionContextBase.js\";\nimport type { SqlQuerySpec } from \"./SqlQuerySpec.js\";\n\n/** @hidden */\nexport class OrderByQueryExecutionContext\n extends ParallelQueryExecutionContextBase\n implements ExecutionContext\n{\n private orderByComparator: any;\n /**\n * Provides the OrderByQueryExecutionContext.\n * This class is capable of handling orderby queries and dervives from ParallelQueryExecutionContextBase.\n *\n * When handling a parallelized query, it instantiates one instance of\n * DocumentProcuder per target partition key range and aggregates the result of each.\n *\n * @param clientContext - The service endpoint to use to create the client.\n * @param collectionLink - The Collection Link\n * @param options - Represents the feed options.\n * @param partitionedQueryExecutionInfo - PartitionedQueryExecutionInfo\n * @hidden\n */\n constructor(\n clientContext: ClientContext,\n collectionLink: string,\n query: string | SqlQuerySpec,\n options: FeedOptions,\n partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n correlatedActivityId: string,\n ) {\n // Calling on base class constructor\n super(\n clientContext,\n collectionLink,\n query,\n options,\n partitionedQueryExecutionInfo,\n correlatedActivityId,\n );\n this.orderByComparator = new OrderByDocumentProducerComparator(this.sortOrders);\n }\n // Instance members are inherited\n\n // Overriding documentProducerComparator for OrderByQueryExecutionContexts\n /**\n * Provides a Comparator for document producers which respects orderby sort order.\n * @returns Comparator Function\n * @hidden\n */\n public documentProducerComparator(docProd1: DocumentProducer, docProd2: DocumentProducer): any {\n return this.orderByComparator.compare(docProd1, docProd2);\n }\n\n /**\n * Fetches more results from the query execution context.\n * @param diagnosticNode - Optional diagnostic node for tracing.\n * @returns A promise that resolves to the fetched results.\n * @hidden\n */\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<any> {\n try {\n await this.bufferDocumentProducers(diagnosticNode);\n await this.fillBufferFromBufferQueue(true);\n return this.drainBufferedItems();\n } catch (error) {\n console.error(\"Error fetching more results:\", error);\n throw error;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"orderByQueryExecutionContext.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByQueryExecutionContext.ts"],"names":[],"mappings":";;;AAQA,iGAA2F;AAC3F,iGAA2F;AAG3F,cAAc;AACd,MAAa,4BACX,SAAQ,wEAAiC;IAGjC,iBAAiB,CAAM;IAC/B;;;;;;;;;;;;OAYG;IACH,YACE,aAA4B,EAC5B,cAAsB,EACtB,KAA4B,EAC5B,OAAoB,EACpB,6BAA4D,EAC5D,oBAA4B;QAE5B,oCAAoC;QACpC,KAAK,CACH,aAAa,EACb,cAAc,EACd,KAAK,EACL,OAAO,EACP,6BAA6B,EAC7B,oBAAoB,CACrB,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,wEAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClF,CAAC;IACD,iCAAiC;IAEjC,0EAA0E;IAC1E;;;;OAIG;IACI,0BAA0B,CAAC,QAA0B,EAAE,QAA0B;QACtF,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,SAAS,CAAC,cAAuC;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAjED,oEAiEC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../ClientContext.js\";\nimport type { PartitionedQueryExecutionInfo } from \"../request/ErrorResponse.js\";\nimport type { FeedOptions } from \"../request/FeedOptions.js\";\nimport type { DocumentProducer } from \"./documentProducer.js\";\nimport type { ExecutionContext } from \"./ExecutionContext.js\";\nimport { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { OrderByDocumentProducerComparator } from \"./orderByDocumentProducerComparator.js\";\nimport { ParallelQueryExecutionContextBase } from \"./parallelQueryExecutionContextBase.js\";\nimport type { SqlQuerySpec } from \"./SqlQuerySpec.js\";\n\n/** @hidden */\nexport class OrderByQueryExecutionContext\n extends ParallelQueryExecutionContextBase\n implements ExecutionContext\n{\n private orderByComparator: any;\n /**\n * Provides the OrderByQueryExecutionContext.\n * This class is capable of handling orderby queries and dervives from ParallelQueryExecutionContextBase.\n *\n * When handling a parallelized query, it instantiates one instance of\n * DocumentProcuder per target partition key range and aggregates the result of each.\n *\n * @param clientContext - The service endpoint to use to create the client.\n * @param collectionLink - The Collection Link\n * @param options - Represents the feed options.\n * @param partitionedQueryExecutionInfo - PartitionedQueryExecutionInfo\n * @hidden\n */\n constructor(\n clientContext: ClientContext,\n collectionLink: string,\n query: string | SqlQuerySpec,\n options: FeedOptions,\n partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n correlatedActivityId: string,\n ) {\n // Calling on base class constructor\n super(\n clientContext,\n collectionLink,\n query,\n options,\n partitionedQueryExecutionInfo,\n correlatedActivityId,\n );\n this.orderByComparator = new OrderByDocumentProducerComparator(this.sortOrders);\n }\n // Instance members are inherited\n\n // Overriding documentProducerComparator for OrderByQueryExecutionContexts\n /**\n * Provides a Comparator for document producers which respects orderby sort order.\n * @returns Comparator Function\n * @hidden\n */\n public documentProducerComparator(docProd1: DocumentProducer, docProd2: DocumentProducer): any {\n return this.orderByComparator.compare(docProd1, docProd2);\n }\n\n /**\n * Fetches more results from the query execution context.\n * @param diagnosticNode - Optional diagnostic node for tracing.\n * @returns A promise that resolves to the fetched results.\n * @hidden\n */\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<any> {\n try {\n await this.bufferDocumentProducers(diagnosticNode);\n await this.fillBufferFromBufferQueue(true);\n return this.drainBufferedItems();\n } catch (error) {\n console.error(\"Error fetching more results:\", error);\n throw error;\n }\n }\n}\n"]}
@@ -24,6 +24,25 @@ var ParallelQueryExecutionContextBaseStates;
24
24
  })(ParallelQueryExecutionContextBaseStates || (exports.ParallelQueryExecutionContextBaseStates = ParallelQueryExecutionContextBaseStates = {}));
25
25
  /** @hidden */
26
26
  class ParallelQueryExecutionContextBase {
27
+ clientContext;
28
+ collectionLink;
29
+ query;
30
+ options;
31
+ partitionedQueryExecutionInfo;
32
+ correlatedActivityId;
33
+ err;
34
+ state;
35
+ static STATES = ParallelQueryExecutionContextBaseStates;
36
+ routingProvider;
37
+ sortOrders;
38
+ requestContinuation;
39
+ respHeaders;
40
+ unfilledDocumentProducersQueue;
41
+ bufferedDocumentProducersQueue;
42
+ // TODO: update type of buffer from any --> generic can be used here
43
+ buffer;
44
+ sem;
45
+ diagnosticNodeWrapper;
27
46
  /**
28
47
  * Provides the ParallelQueryExecutionContextBase.
29
48
  * This is the base class that ParallelQueryExecutionContext and OrderByQueryExecutionContext will derive from.
@@ -208,7 +227,7 @@ class ParallelQueryExecutionContextBase {
208
227
  rewrittenQuery = rewrittenQuery.replace(formatPlaceHolder, "true");
209
228
  sqlQuerySpec["query"] = rewrittenQuery;
210
229
  }
211
- const options = Object.assign({}, this.options);
230
+ const options = { ...this.options };
212
231
  options.continuationToken = continuationToken;
213
232
  return new documentProducer_js_1.DocumentProducer(this.clientContext, this.collectionLink, sqlQuerySpec, partitionKeyTargetRange, options, this.correlatedActivityId, startEpk, endEpk, populateEpkRangeHeaders);
214
233
  }
@@ -427,5 +446,4 @@ class ParallelQueryExecutionContextBase {
427
446
  }
428
447
  }
429
448
  exports.ParallelQueryExecutionContextBase = ParallelQueryExecutionContextBase;
430
- ParallelQueryExecutionContextBase.STATES = ParallelQueryExecutionContextBaseStates;
431
449
  //# sourceMappingURL=parallelQueryExecutionContextBase.js.map