@azure/cosmos 4.5.0-alpha.20250717.1 → 4.5.0-alpha.20250729.1

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 (1219) hide show
  1. package/dist/browser/ChangeFeedIterator.js +17 -11
  2. package/dist/browser/ChangeFeedIterator.js.map +1 -1
  3. package/dist/browser/ChangeFeedResponse.js +8 -0
  4. package/dist/browser/ChangeFeedResponse.js.map +1 -1
  5. package/dist/browser/ClientContext.js +122 -29
  6. package/dist/browser/ClientContext.js.map +1 -1
  7. package/dist/browser/CosmosClient.d.ts.map +1 -1
  8. package/dist/browser/CosmosClient.js +37 -3
  9. package/dist/browser/CosmosClient.js.map +1 -1
  10. package/dist/browser/CosmosDiagnostics.js +3 -0
  11. package/dist/browser/CosmosDiagnostics.js.map +1 -1
  12. package/dist/browser/PartitionKeyRangeFailoverInfo.js +8 -5
  13. package/dist/browser/PartitionKeyRangeFailoverInfo.js.map +1 -1
  14. package/dist/browser/bulk/Batcher.js +13 -3
  15. package/dist/browser/bulk/Batcher.js.map +1 -1
  16. package/dist/browser/bulk/BulkHelper.js +26 -11
  17. package/dist/browser/bulk/BulkHelper.js.map +1 -1
  18. package/dist/browser/bulk/BulkResponse.js +22 -20
  19. package/dist/browser/bulk/BulkResponse.js.map +1 -1
  20. package/dist/browser/bulk/CongestionAlgorithm.js +11 -4
  21. package/dist/browser/bulk/CongestionAlgorithm.js.map +1 -1
  22. package/dist/browser/bulk/HelperPerPartition.js +14 -1
  23. package/dist/browser/bulk/HelperPerPartition.js.map +1 -1
  24. package/dist/browser/bulk/ItemOperationContext.js +4 -0
  25. package/dist/browser/bulk/ItemOperationContext.js.map +1 -1
  26. package/dist/browser/bulk/Limiter.js +27 -18
  27. package/dist/browser/bulk/Limiter.js.map +1 -1
  28. package/dist/browser/bulk/PartitionMetric.js +4 -0
  29. package/dist/browser/bulk/PartitionMetric.js.map +1 -1
  30. package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  31. package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  32. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  33. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js +20 -8
  34. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  35. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  36. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  37. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  38. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  39. package/dist/browser/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  40. package/dist/browser/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  41. package/dist/browser/client/ChangeFeed/ChangeFeedRange.js +20 -0
  42. package/dist/browser/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  43. package/dist/browser/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  44. package/dist/browser/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  45. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  46. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  47. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  48. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  49. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  50. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  51. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  52. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  53. package/dist/browser/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  54. package/dist/browser/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  55. package/dist/browser/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  56. package/dist/browser/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  57. package/dist/browser/client/ChangeFeed/FeedRange.js +8 -0
  58. package/dist/browser/client/ChangeFeed/FeedRange.js.map +1 -1
  59. package/dist/browser/client/ChangeFeed/FeedRangeQueue.js +1 -0
  60. package/dist/browser/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  61. package/dist/browser/client/ChangeFeed/changeFeedUtils.js +5 -5
  62. package/dist/browser/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  63. package/dist/browser/client/ClientUtils.js +1 -1
  64. package/dist/browser/client/ClientUtils.js.map +1 -1
  65. package/dist/browser/client/Conflict/Conflict.js +4 -0
  66. package/dist/browser/client/Conflict/Conflict.js.map +1 -1
  67. package/dist/browser/client/Conflict/ConflictResponse.js +2 -0
  68. package/dist/browser/client/Conflict/ConflictResponse.js.map +1 -1
  69. package/dist/browser/client/Conflict/Conflicts.js +2 -0
  70. package/dist/browser/client/Conflict/Conflicts.js.map +1 -1
  71. package/dist/browser/client/Container/Container.js +18 -3
  72. package/dist/browser/client/Container/Container.js.map +1 -1
  73. package/dist/browser/client/Container/ContainerResponse.js +2 -0
  74. package/dist/browser/client/Container/ContainerResponse.js.map +1 -1
  75. package/dist/browser/client/Container/Containers.js +4 -2
  76. package/dist/browser/client/Container/Containers.js.map +1 -1
  77. package/dist/browser/client/Database/Database.js +33 -0
  78. package/dist/browser/client/Database/Database.js.map +1 -1
  79. package/dist/browser/client/Database/DatabaseResponse.js +2 -0
  80. package/dist/browser/client/Database/DatabaseResponse.js.map +1 -1
  81. package/dist/browser/client/Database/Databases.js +3 -0
  82. package/dist/browser/client/Database/Databases.js.map +1 -1
  83. package/dist/browser/client/Item/Item.js +4 -0
  84. package/dist/browser/client/Item/Item.js.map +1 -1
  85. package/dist/browser/client/Item/ItemResponse.js +2 -0
  86. package/dist/browser/client/Item/ItemResponse.js.map +1 -1
  87. package/dist/browser/client/Item/Items.d.ts.map +1 -1
  88. package/dist/browser/client/Item/Items.js +12 -0
  89. package/dist/browser/client/Item/Items.js.map +1 -1
  90. package/dist/browser/client/Offer/Offer.js +3 -0
  91. package/dist/browser/client/Offer/Offer.js.map +1 -1
  92. package/dist/browser/client/Offer/OfferResponse.js +2 -0
  93. package/dist/browser/client/Offer/OfferResponse.js.map +1 -1
  94. package/dist/browser/client/Offer/Offers.js +2 -0
  95. package/dist/browser/client/Offer/Offers.js.map +1 -1
  96. package/dist/browser/client/Permission/Permission.js +3 -0
  97. package/dist/browser/client/Permission/Permission.js.map +1 -1
  98. package/dist/browser/client/Permission/PermissionResponse.js +2 -0
  99. package/dist/browser/client/Permission/PermissionResponse.js.map +1 -1
  100. package/dist/browser/client/Permission/Permissions.js +2 -0
  101. package/dist/browser/client/Permission/Permissions.js.map +1 -1
  102. package/dist/browser/client/SasToken/SasTokenProperties.js +17 -0
  103. package/dist/browser/client/SasToken/SasTokenProperties.js.map +1 -1
  104. package/dist/browser/client/Script/Scripts.js +5 -0
  105. package/dist/browser/client/Script/Scripts.js.map +1 -1
  106. package/dist/browser/client/StoredProcedure/StoredProcedure.js +3 -0
  107. package/dist/browser/client/StoredProcedure/StoredProcedure.js.map +1 -1
  108. package/dist/browser/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  109. package/dist/browser/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  110. package/dist/browser/client/StoredProcedure/StoredProcedures.js +2 -0
  111. package/dist/browser/client/StoredProcedure/StoredProcedures.js.map +1 -1
  112. package/dist/browser/client/Trigger/Trigger.js +3 -0
  113. package/dist/browser/client/Trigger/Trigger.js.map +1 -1
  114. package/dist/browser/client/Trigger/TriggerResponse.js +2 -0
  115. package/dist/browser/client/Trigger/TriggerResponse.js.map +1 -1
  116. package/dist/browser/client/Trigger/Triggers.js +2 -0
  117. package/dist/browser/client/Trigger/Triggers.js.map +1 -1
  118. package/dist/browser/client/User/User.js +9 -0
  119. package/dist/browser/client/User/User.js.map +1 -1
  120. package/dist/browser/client/User/UserResponse.js +2 -0
  121. package/dist/browser/client/User/UserResponse.js.map +1 -1
  122. package/dist/browser/client/User/Users.js +2 -0
  123. package/dist/browser/client/User/Users.js.map +1 -1
  124. package/dist/browser/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  125. package/dist/browser/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  126. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  127. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  128. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  129. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  130. package/dist/browser/diagnostics/CosmosDiagnosticsContext.js +8 -7
  131. package/dist/browser/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  132. package/dist/browser/diagnostics/DiagnosticNodeInternal.js +26 -7
  133. package/dist/browser/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  134. package/dist/browser/diagnostics/DiagnosticWriter.js +1 -3
  135. package/dist/browser/diagnostics/DiagnosticWriter.js.map +1 -1
  136. package/dist/browser/diagnostics/index.js +2 -2
  137. package/dist/browser/diagnostics/index.js.map +1 -1
  138. package/dist/browser/documents/DatabaseAccount.js +20 -4
  139. package/dist/browser/documents/DatabaseAccount.js.map +1 -1
  140. package/dist/browser/documents/PartitionKey.js +1 -3
  141. package/dist/browser/documents/PartitionKey.js.map +1 -1
  142. package/dist/browser/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  143. package/dist/browser/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  144. package/dist/browser/encryption/Cache/EncryptionSettingsCache.js +2 -0
  145. package/dist/browser/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  146. package/dist/browser/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  147. package/dist/browser/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  148. package/dist/browser/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  149. package/dist/browser/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  150. package/dist/browser/encryption/EncryptionItemQueryIterator.js +24 -27
  151. package/dist/browser/encryption/EncryptionItemQueryIterator.js.map +1 -1
  152. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  153. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  154. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  155. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  156. package/dist/browser/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  157. package/dist/browser/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  158. package/dist/browser/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
  159. package/dist/browser/encryption/EncryptionKeyStoreProvider.js +10 -2
  160. package/dist/browser/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  161. package/dist/browser/encryption/EncryptionManager.js +6 -0
  162. package/dist/browser/encryption/EncryptionManager.js.map +1 -1
  163. package/dist/browser/encryption/EncryptionProcessor.js +5 -0
  164. package/dist/browser/encryption/EncryptionProcessor.js.map +1 -1
  165. package/dist/browser/encryption/EncryptionQueryBuilder.js +2 -0
  166. package/dist/browser/encryption/EncryptionQueryBuilder.js.map +1 -1
  167. package/dist/browser/encryption/EncryptionSettingForProperty.js +6 -0
  168. package/dist/browser/encryption/EncryptionSettingForProperty.js.map +1 -1
  169. package/dist/browser/encryption/EncryptionSettings.js +6 -3
  170. package/dist/browser/encryption/EncryptionSettings.js.map +1 -1
  171. package/dist/browser/encryption/KeyEncryptionKey.js +4 -0
  172. package/dist/browser/encryption/KeyEncryptionKey.js.map +1 -1
  173. package/dist/browser/encryption/Serializers/StringSerializer.js +1 -1
  174. package/dist/browser/encryption/Serializers/StringSerializer.js.map +1 -1
  175. package/dist/browser/extractPartitionKey.js +2 -2
  176. package/dist/browser/extractPartitionKey.js.map +1 -1
  177. package/dist/browser/globalEndpointManager.js +21 -4
  178. package/dist/browser/globalEndpointManager.js.map +1 -1
  179. package/dist/browser/globalPartitionEndpointManager.d.ts.map +1 -1
  180. package/dist/browser/globalPartitionEndpointManager.js +16 -9
  181. package/dist/browser/globalPartitionEndpointManager.js.map +1 -1
  182. package/dist/browser/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  183. package/dist/browser/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  184. package/dist/browser/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  185. package/dist/browser/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  186. package/dist/browser/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  187. package/dist/browser/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  188. package/dist/browser/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  189. package/dist/browser/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  190. package/dist/browser/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  191. package/dist/browser/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  192. package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  193. package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  194. package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  195. package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  196. package/dist/browser/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  197. package/dist/browser/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  198. package/dist/browser/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  199. package/dist/browser/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  200. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  201. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  202. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  203. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  204. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  205. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  206. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  207. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  208. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  209. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  210. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  211. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  212. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  213. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  214. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  215. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  216. package/dist/browser/queryExecutionContext/FetchResult.js +4 -0
  217. package/dist/browser/queryExecutionContext/FetchResult.js.map +1 -1
  218. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  219. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  220. package/dist/browser/queryExecutionContext/documentProducer.js +34 -21
  221. package/dist/browser/queryExecutionContext/documentProducer.js.map +1 -1
  222. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  223. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  224. package/dist/browser/queryExecutionContext/orderByComparator.js +1 -0
  225. package/dist/browser/queryExecutionContext/orderByComparator.js.map +1 -1
  226. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  227. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  228. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  229. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  230. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  231. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  232. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  233. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  234. package/dist/browser/queryIterator.js +41 -33
  235. package/dist/browser/queryIterator.js.map +1 -1
  236. package/dist/browser/queryMetrics/clientSideMetrics.js +2 -1
  237. package/dist/browser/queryMetrics/clientSideMetrics.js.map +1 -1
  238. package/dist/browser/queryMetrics/queryMetrics.js +14 -1
  239. package/dist/browser/queryMetrics/queryMetrics.js.map +1 -1
  240. package/dist/browser/queryMetrics/queryPreparationTime.js +5 -1
  241. package/dist/browser/queryMetrics/queryPreparationTime.js.map +1 -1
  242. package/dist/browser/queryMetrics/runtimeExecutionTimes.js +4 -1
  243. package/dist/browser/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  244. package/dist/browser/queryMetrics/timeSpan.js +4 -3
  245. package/dist/browser/queryMetrics/timeSpan.js.map +1 -1
  246. package/dist/browser/request/ErrorResponse.js +19 -0
  247. package/dist/browser/request/ErrorResponse.js.map +1 -1
  248. package/dist/browser/request/FeedResponse.js +4 -0
  249. package/dist/browser/request/FeedResponse.js.map +1 -1
  250. package/dist/browser/request/RequestHandler.js +1 -2
  251. package/dist/browser/request/RequestHandler.js.map +1 -1
  252. package/dist/browser/request/ResourceResponse.js +5 -0
  253. package/dist/browser/request/ResourceResponse.js.map +1 -1
  254. package/dist/browser/request/TimeoutError.js +1 -1
  255. package/dist/browser/request/TimeoutError.js.map +1 -1
  256. package/dist/browser/request/hybridSearchQueryResult.js +5 -0
  257. package/dist/browser/request/hybridSearchQueryResult.js.map +1 -1
  258. package/dist/browser/request/request.d.ts.map +1 -1
  259. package/dist/browser/request/request.js +8 -4
  260. package/dist/browser/request/request.js.map +1 -1
  261. package/dist/browser/retry/bulkExecutionRetryPolicy.js +5 -2
  262. package/dist/browser/retry/bulkExecutionRetryPolicy.js.map +1 -1
  263. package/dist/browser/retry/defaultRetryPolicy.js +4 -3
  264. package/dist/browser/retry/defaultRetryPolicy.js.map +1 -1
  265. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js +11 -2
  266. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  267. package/dist/browser/retry/resourceThrottleRetryPolicy.js +20 -10
  268. package/dist/browser/retry/resourceThrottleRetryPolicy.js.map +1 -1
  269. package/dist/browser/retry/retryUtility.js +2 -3
  270. package/dist/browser/retry/retryUtility.js.map +1 -1
  271. package/dist/browser/retry/sessionRetryPolicy.js +8 -4
  272. package/dist/browser/retry/sessionRetryPolicy.js.map +1 -1
  273. package/dist/browser/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  274. package/dist/browser/retry/timeoutFailoverRetryPolicy.js +17 -7
  275. package/dist/browser/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  276. package/dist/browser/routing/QueryRange.js +4 -0
  277. package/dist/browser/routing/QueryRange.js.map +1 -1
  278. package/dist/browser/routing/inMemoryCollectionRoutingMap.js +4 -0
  279. package/dist/browser/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  280. package/dist/browser/routing/partitionKeyRangeCache.js +2 -0
  281. package/dist/browser/routing/partitionKeyRangeCache.js.map +1 -1
  282. package/dist/browser/routing/smartRoutingMapProvider.js +1 -0
  283. package/dist/browser/routing/smartRoutingMapProvider.js.map +1 -1
  284. package/dist/browser/session/VectorSessionToken.js +6 -2
  285. package/dist/browser/session/VectorSessionToken.js.map +1 -1
  286. package/dist/browser/session/sessionContainer.js +5 -3
  287. package/dist/browser/session/sessionContainer.js.map +1 -1
  288. package/dist/browser/utils/batch.js +15 -4
  289. package/dist/browser/utils/batch.js.map +1 -1
  290. package/dist/browser/utils/fixedSizePriorityQueue.js +4 -0
  291. package/dist/browser/utils/fixedSizePriorityQueue.js.map +1 -1
  292. package/dist/browser/utils/hashing/hash.js +1 -1
  293. package/dist/browser/utils/hashing/hash.js.map +1 -1
  294. package/dist/browser/utils/nonStreamingOrderByMap.js +2 -0
  295. package/dist/browser/utils/nonStreamingOrderByMap.js.map +1 -1
  296. package/dist/browser/utils/time.d.ts +8 -0
  297. package/dist/browser/utils/time.d.ts.map +1 -1
  298. package/dist/browser/utils/time.js +19 -0
  299. package/dist/browser/utils/time.js.map +1 -1
  300. package/dist/commonjs/ChangeFeedIterator.js +17 -11
  301. package/dist/commonjs/ChangeFeedIterator.js.map +1 -1
  302. package/dist/commonjs/ChangeFeedResponse.js +8 -0
  303. package/dist/commonjs/ChangeFeedResponse.js.map +1 -1
  304. package/dist/commonjs/ClientContext.js +122 -29
  305. package/dist/commonjs/ClientContext.js.map +1 -1
  306. package/dist/commonjs/CosmosClient.d.ts.map +1 -1
  307. package/dist/commonjs/CosmosClient.js +37 -3
  308. package/dist/commonjs/CosmosClient.js.map +1 -1
  309. package/dist/commonjs/CosmosDiagnostics.js +3 -0
  310. package/dist/commonjs/CosmosDiagnostics.js.map +1 -1
  311. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js +8 -5
  312. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js.map +1 -1
  313. package/dist/commonjs/bulk/Batcher.js +13 -3
  314. package/dist/commonjs/bulk/Batcher.js.map +1 -1
  315. package/dist/commonjs/bulk/BulkHelper.js +26 -11
  316. package/dist/commonjs/bulk/BulkHelper.js.map +1 -1
  317. package/dist/commonjs/bulk/BulkResponse.js +22 -20
  318. package/dist/commonjs/bulk/BulkResponse.js.map +1 -1
  319. package/dist/commonjs/bulk/CongestionAlgorithm.js +11 -4
  320. package/dist/commonjs/bulk/CongestionAlgorithm.js.map +1 -1
  321. package/dist/commonjs/bulk/HelperPerPartition.js +14 -1
  322. package/dist/commonjs/bulk/HelperPerPartition.js.map +1 -1
  323. package/dist/commonjs/bulk/ItemOperationContext.js +4 -0
  324. package/dist/commonjs/bulk/ItemOperationContext.js.map +1 -1
  325. package/dist/commonjs/bulk/Limiter.js +27 -18
  326. package/dist/commonjs/bulk/Limiter.js.map +1 -1
  327. package/dist/commonjs/bulk/PartitionMetric.js +4 -0
  328. package/dist/commonjs/bulk/PartitionMetric.js.map +1 -1
  329. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  330. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  331. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  332. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js +20 -8
  333. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  334. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  335. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  336. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  337. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  338. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  339. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  340. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js +20 -0
  341. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  342. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  343. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  344. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  345. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  346. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  347. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  348. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  349. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  350. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  351. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  352. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  353. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  354. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  355. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  356. package/dist/commonjs/client/ChangeFeed/FeedRange.js +8 -0
  357. package/dist/commonjs/client/ChangeFeed/FeedRange.js.map +1 -1
  358. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js +1 -0
  359. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  360. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js +5 -5
  361. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  362. package/dist/commonjs/client/ClientUtils.js +1 -1
  363. package/dist/commonjs/client/ClientUtils.js.map +1 -1
  364. package/dist/commonjs/client/Conflict/Conflict.js +4 -0
  365. package/dist/commonjs/client/Conflict/Conflict.js.map +1 -1
  366. package/dist/commonjs/client/Conflict/ConflictResponse.js +2 -0
  367. package/dist/commonjs/client/Conflict/ConflictResponse.js.map +1 -1
  368. package/dist/commonjs/client/Conflict/Conflicts.js +2 -0
  369. package/dist/commonjs/client/Conflict/Conflicts.js.map +1 -1
  370. package/dist/commonjs/client/Container/Container.js +18 -3
  371. package/dist/commonjs/client/Container/Container.js.map +1 -1
  372. package/dist/commonjs/client/Container/ContainerResponse.js +2 -0
  373. package/dist/commonjs/client/Container/ContainerResponse.js.map +1 -1
  374. package/dist/commonjs/client/Container/Containers.js +4 -2
  375. package/dist/commonjs/client/Container/Containers.js.map +1 -1
  376. package/dist/commonjs/client/Database/Database.js +33 -0
  377. package/dist/commonjs/client/Database/Database.js.map +1 -1
  378. package/dist/commonjs/client/Database/DatabaseResponse.js +2 -0
  379. package/dist/commonjs/client/Database/DatabaseResponse.js.map +1 -1
  380. package/dist/commonjs/client/Database/Databases.js +3 -0
  381. package/dist/commonjs/client/Database/Databases.js.map +1 -1
  382. package/dist/commonjs/client/Item/Item.js +4 -0
  383. package/dist/commonjs/client/Item/Item.js.map +1 -1
  384. package/dist/commonjs/client/Item/ItemResponse.js +2 -0
  385. package/dist/commonjs/client/Item/ItemResponse.js.map +1 -1
  386. package/dist/commonjs/client/Item/Items.d.ts.map +1 -1
  387. package/dist/commonjs/client/Item/Items.js +12 -0
  388. package/dist/commonjs/client/Item/Items.js.map +1 -1
  389. package/dist/commonjs/client/Offer/Offer.js +3 -0
  390. package/dist/commonjs/client/Offer/Offer.js.map +1 -1
  391. package/dist/commonjs/client/Offer/OfferResponse.js +2 -0
  392. package/dist/commonjs/client/Offer/OfferResponse.js.map +1 -1
  393. package/dist/commonjs/client/Offer/Offers.js +2 -0
  394. package/dist/commonjs/client/Offer/Offers.js.map +1 -1
  395. package/dist/commonjs/client/Permission/Permission.js +3 -0
  396. package/dist/commonjs/client/Permission/Permission.js.map +1 -1
  397. package/dist/commonjs/client/Permission/PermissionResponse.js +2 -0
  398. package/dist/commonjs/client/Permission/PermissionResponse.js.map +1 -1
  399. package/dist/commonjs/client/Permission/Permissions.js +2 -0
  400. package/dist/commonjs/client/Permission/Permissions.js.map +1 -1
  401. package/dist/commonjs/client/SasToken/SasTokenProperties.js +17 -0
  402. package/dist/commonjs/client/SasToken/SasTokenProperties.js.map +1 -1
  403. package/dist/commonjs/client/Script/Scripts.js +5 -0
  404. package/dist/commonjs/client/Script/Scripts.js.map +1 -1
  405. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js +3 -0
  406. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js.map +1 -1
  407. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  408. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  409. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js +2 -0
  410. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js.map +1 -1
  411. package/dist/commonjs/client/Trigger/Trigger.js +3 -0
  412. package/dist/commonjs/client/Trigger/Trigger.js.map +1 -1
  413. package/dist/commonjs/client/Trigger/TriggerResponse.js +2 -0
  414. package/dist/commonjs/client/Trigger/TriggerResponse.js.map +1 -1
  415. package/dist/commonjs/client/Trigger/Triggers.js +2 -0
  416. package/dist/commonjs/client/Trigger/Triggers.js.map +1 -1
  417. package/dist/commonjs/client/User/User.js +9 -0
  418. package/dist/commonjs/client/User/User.js.map +1 -1
  419. package/dist/commonjs/client/User/UserResponse.js +2 -0
  420. package/dist/commonjs/client/User/UserResponse.js.map +1 -1
  421. package/dist/commonjs/client/User/Users.js +2 -0
  422. package/dist/commonjs/client/User/Users.js.map +1 -1
  423. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  424. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  425. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  426. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  427. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  428. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  429. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js +8 -7
  430. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  431. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js +26 -7
  432. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  433. package/dist/commonjs/diagnostics/DiagnosticWriter.js +1 -3
  434. package/dist/commonjs/diagnostics/DiagnosticWriter.js.map +1 -1
  435. package/dist/commonjs/diagnostics/index.js +2 -2
  436. package/dist/commonjs/diagnostics/index.js.map +1 -1
  437. package/dist/commonjs/documents/DatabaseAccount.js +20 -4
  438. package/dist/commonjs/documents/DatabaseAccount.js.map +1 -1
  439. package/dist/commonjs/documents/PartitionKey.js +1 -3
  440. package/dist/commonjs/documents/PartitionKey.js.map +1 -1
  441. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  442. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  443. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  444. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  445. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js +2 -0
  446. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  447. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  448. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  449. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.d.ts.map +1 -1
  450. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js +7 -1
  451. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  452. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  453. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  454. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js +24 -27
  455. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js.map +1 -1
  456. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  457. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  458. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  459. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  460. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  461. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  462. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  463. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  464. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
  465. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js +10 -2
  466. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  467. package/dist/commonjs/encryption/EncryptionManager.js +6 -0
  468. package/dist/commonjs/encryption/EncryptionManager.js.map +1 -1
  469. package/dist/commonjs/encryption/EncryptionProcessor.js +5 -0
  470. package/dist/commonjs/encryption/EncryptionProcessor.js.map +1 -1
  471. package/dist/commonjs/encryption/EncryptionQueryBuilder.js +2 -0
  472. package/dist/commonjs/encryption/EncryptionQueryBuilder.js.map +1 -1
  473. package/dist/commonjs/encryption/EncryptionSettingForProperty.js +6 -0
  474. package/dist/commonjs/encryption/EncryptionSettingForProperty.js.map +1 -1
  475. package/dist/commonjs/encryption/EncryptionSettings.js +6 -3
  476. package/dist/commonjs/encryption/EncryptionSettings.js.map +1 -1
  477. package/dist/commonjs/encryption/KeyEncryptionKey.js +4 -0
  478. package/dist/commonjs/encryption/KeyEncryptionKey.js.map +1 -1
  479. package/dist/commonjs/encryption/Serializers/StringSerializer.js +1 -1
  480. package/dist/commonjs/encryption/Serializers/StringSerializer.js.map +1 -1
  481. package/dist/commonjs/extractPartitionKey.js +2 -2
  482. package/dist/commonjs/extractPartitionKey.js.map +1 -1
  483. package/dist/commonjs/globalEndpointManager.js +21 -4
  484. package/dist/commonjs/globalEndpointManager.js.map +1 -1
  485. package/dist/commonjs/globalPartitionEndpointManager.d.ts.map +1 -1
  486. package/dist/commonjs/globalPartitionEndpointManager.js +16 -9
  487. package/dist/commonjs/globalPartitionEndpointManager.js.map +1 -1
  488. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  489. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  490. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  491. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  492. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  493. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  494. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  495. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  496. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  497. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  498. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  499. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  500. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  501. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  502. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  503. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  504. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  505. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  506. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  507. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  508. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  509. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  510. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  511. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  512. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  513. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  514. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  515. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  516. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  517. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  518. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  519. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  520. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  521. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  522. package/dist/commonjs/queryExecutionContext/FetchResult.js +4 -0
  523. package/dist/commonjs/queryExecutionContext/FetchResult.js.map +1 -1
  524. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  525. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  526. package/dist/commonjs/queryExecutionContext/documentProducer.js +34 -21
  527. package/dist/commonjs/queryExecutionContext/documentProducer.js.map +1 -1
  528. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  529. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  530. package/dist/commonjs/queryExecutionContext/orderByComparator.js +1 -0
  531. package/dist/commonjs/queryExecutionContext/orderByComparator.js.map +1 -1
  532. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  533. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  534. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  535. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  536. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  537. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  538. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  539. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  540. package/dist/commonjs/queryIterator.js +41 -33
  541. package/dist/commonjs/queryIterator.js.map +1 -1
  542. package/dist/commonjs/queryMetrics/clientSideMetrics.js +2 -1
  543. package/dist/commonjs/queryMetrics/clientSideMetrics.js.map +1 -1
  544. package/dist/commonjs/queryMetrics/queryMetrics.js +14 -1
  545. package/dist/commonjs/queryMetrics/queryMetrics.js.map +1 -1
  546. package/dist/commonjs/queryMetrics/queryPreparationTime.js +5 -1
  547. package/dist/commonjs/queryMetrics/queryPreparationTime.js.map +1 -1
  548. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js +4 -1
  549. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  550. package/dist/commonjs/queryMetrics/timeSpan.js +4 -3
  551. package/dist/commonjs/queryMetrics/timeSpan.js.map +1 -1
  552. package/dist/commonjs/request/ErrorResponse.js +19 -0
  553. package/dist/commonjs/request/ErrorResponse.js.map +1 -1
  554. package/dist/commonjs/request/FeedResponse.js +4 -0
  555. package/dist/commonjs/request/FeedResponse.js.map +1 -1
  556. package/dist/commonjs/request/RequestHandler.js +1 -2
  557. package/dist/commonjs/request/RequestHandler.js.map +1 -1
  558. package/dist/commonjs/request/ResourceResponse.js +5 -0
  559. package/dist/commonjs/request/ResourceResponse.js.map +1 -1
  560. package/dist/commonjs/request/TimeoutError.js +1 -1
  561. package/dist/commonjs/request/TimeoutError.js.map +1 -1
  562. package/dist/commonjs/request/hybridSearchQueryResult.js +5 -0
  563. package/dist/commonjs/request/hybridSearchQueryResult.js.map +1 -1
  564. package/dist/commonjs/request/request.d.ts.map +1 -1
  565. package/dist/commonjs/request/request.js +8 -4
  566. package/dist/commonjs/request/request.js.map +1 -1
  567. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js +5 -2
  568. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js.map +1 -1
  569. package/dist/commonjs/retry/defaultRetryPolicy.js +4 -3
  570. package/dist/commonjs/retry/defaultRetryPolicy.js.map +1 -1
  571. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js +11 -2
  572. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  573. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js +20 -10
  574. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js.map +1 -1
  575. package/dist/commonjs/retry/retryUtility.js +2 -3
  576. package/dist/commonjs/retry/retryUtility.js.map +1 -1
  577. package/dist/commonjs/retry/sessionRetryPolicy.js +8 -4
  578. package/dist/commonjs/retry/sessionRetryPolicy.js.map +1 -1
  579. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  580. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js +17 -7
  581. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  582. package/dist/commonjs/routing/QueryRange.js +4 -0
  583. package/dist/commonjs/routing/QueryRange.js.map +1 -1
  584. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js +4 -0
  585. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  586. package/dist/commonjs/routing/partitionKeyRangeCache.js +2 -0
  587. package/dist/commonjs/routing/partitionKeyRangeCache.js.map +1 -1
  588. package/dist/commonjs/routing/smartRoutingMapProvider.js +1 -0
  589. package/dist/commonjs/routing/smartRoutingMapProvider.js.map +1 -1
  590. package/dist/commonjs/session/VectorSessionToken.js +6 -2
  591. package/dist/commonjs/session/VectorSessionToken.js.map +1 -1
  592. package/dist/commonjs/session/sessionContainer.js +5 -3
  593. package/dist/commonjs/session/sessionContainer.js.map +1 -1
  594. package/dist/commonjs/tsdoc-metadata.json +11 -11
  595. package/dist/commonjs/utils/batch.js +15 -4
  596. package/dist/commonjs/utils/batch.js.map +1 -1
  597. package/dist/commonjs/utils/fixedSizePriorityQueue.js +4 -0
  598. package/dist/commonjs/utils/fixedSizePriorityQueue.js.map +1 -1
  599. package/dist/commonjs/utils/hashing/hash.js +1 -1
  600. package/dist/commonjs/utils/hashing/hash.js.map +1 -1
  601. package/dist/commonjs/utils/nonStreamingOrderByMap.js +2 -0
  602. package/dist/commonjs/utils/nonStreamingOrderByMap.js.map +1 -1
  603. package/dist/commonjs/utils/time.d.ts +8 -0
  604. package/dist/commonjs/utils/time.d.ts.map +1 -1
  605. package/dist/commonjs/utils/time.js +20 -0
  606. package/dist/commonjs/utils/time.js.map +1 -1
  607. package/dist/esm/ChangeFeedIterator.js +17 -11
  608. package/dist/esm/ChangeFeedIterator.js.map +1 -1
  609. package/dist/esm/ChangeFeedResponse.js +8 -0
  610. package/dist/esm/ChangeFeedResponse.js.map +1 -1
  611. package/dist/esm/ClientContext.js +122 -29
  612. package/dist/esm/ClientContext.js.map +1 -1
  613. package/dist/esm/CosmosClient.d.ts.map +1 -1
  614. package/dist/esm/CosmosClient.js +37 -3
  615. package/dist/esm/CosmosClient.js.map +1 -1
  616. package/dist/esm/CosmosDiagnostics.js +3 -0
  617. package/dist/esm/CosmosDiagnostics.js.map +1 -1
  618. package/dist/esm/PartitionKeyRangeFailoverInfo.js +8 -5
  619. package/dist/esm/PartitionKeyRangeFailoverInfo.js.map +1 -1
  620. package/dist/esm/bulk/Batcher.js +13 -3
  621. package/dist/esm/bulk/Batcher.js.map +1 -1
  622. package/dist/esm/bulk/BulkHelper.js +26 -11
  623. package/dist/esm/bulk/BulkHelper.js.map +1 -1
  624. package/dist/esm/bulk/BulkResponse.js +22 -20
  625. package/dist/esm/bulk/BulkResponse.js.map +1 -1
  626. package/dist/esm/bulk/CongestionAlgorithm.js +11 -4
  627. package/dist/esm/bulk/CongestionAlgorithm.js.map +1 -1
  628. package/dist/esm/bulk/HelperPerPartition.js +14 -1
  629. package/dist/esm/bulk/HelperPerPartition.js.map +1 -1
  630. package/dist/esm/bulk/ItemOperationContext.js +4 -0
  631. package/dist/esm/bulk/ItemOperationContext.js.map +1 -1
  632. package/dist/esm/bulk/Limiter.js +27 -18
  633. package/dist/esm/bulk/Limiter.js.map +1 -1
  634. package/dist/esm/bulk/PartitionMetric.js +4 -0
  635. package/dist/esm/bulk/PartitionMetric.js.map +1 -1
  636. package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  637. package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  638. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  639. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js +20 -8
  640. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  641. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  642. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  643. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  644. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  645. package/dist/esm/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  646. package/dist/esm/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  647. package/dist/esm/client/ChangeFeed/ChangeFeedRange.js +20 -0
  648. package/dist/esm/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  649. package/dist/esm/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  650. package/dist/esm/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  651. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  652. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  653. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  654. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  655. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  656. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  657. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  658. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  659. package/dist/esm/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  660. package/dist/esm/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  661. package/dist/esm/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  662. package/dist/esm/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  663. package/dist/esm/client/ChangeFeed/FeedRange.js +8 -0
  664. package/dist/esm/client/ChangeFeed/FeedRange.js.map +1 -1
  665. package/dist/esm/client/ChangeFeed/FeedRangeQueue.js +1 -0
  666. package/dist/esm/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  667. package/dist/esm/client/ChangeFeed/changeFeedUtils.js +5 -5
  668. package/dist/esm/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  669. package/dist/esm/client/ClientUtils.js +1 -1
  670. package/dist/esm/client/ClientUtils.js.map +1 -1
  671. package/dist/esm/client/Conflict/Conflict.js +4 -0
  672. package/dist/esm/client/Conflict/Conflict.js.map +1 -1
  673. package/dist/esm/client/Conflict/ConflictResponse.js +2 -0
  674. package/dist/esm/client/Conflict/ConflictResponse.js.map +1 -1
  675. package/dist/esm/client/Conflict/Conflicts.js +2 -0
  676. package/dist/esm/client/Conflict/Conflicts.js.map +1 -1
  677. package/dist/esm/client/Container/Container.js +18 -3
  678. package/dist/esm/client/Container/Container.js.map +1 -1
  679. package/dist/esm/client/Container/ContainerResponse.js +2 -0
  680. package/dist/esm/client/Container/ContainerResponse.js.map +1 -1
  681. package/dist/esm/client/Container/Containers.js +4 -2
  682. package/dist/esm/client/Container/Containers.js.map +1 -1
  683. package/dist/esm/client/Database/Database.js +33 -0
  684. package/dist/esm/client/Database/Database.js.map +1 -1
  685. package/dist/esm/client/Database/DatabaseResponse.js +2 -0
  686. package/dist/esm/client/Database/DatabaseResponse.js.map +1 -1
  687. package/dist/esm/client/Database/Databases.js +3 -0
  688. package/dist/esm/client/Database/Databases.js.map +1 -1
  689. package/dist/esm/client/Item/Item.js +4 -0
  690. package/dist/esm/client/Item/Item.js.map +1 -1
  691. package/dist/esm/client/Item/ItemResponse.js +2 -0
  692. package/dist/esm/client/Item/ItemResponse.js.map +1 -1
  693. package/dist/esm/client/Item/Items.d.ts.map +1 -1
  694. package/dist/esm/client/Item/Items.js +12 -0
  695. package/dist/esm/client/Item/Items.js.map +1 -1
  696. package/dist/esm/client/Offer/Offer.js +3 -0
  697. package/dist/esm/client/Offer/Offer.js.map +1 -1
  698. package/dist/esm/client/Offer/OfferResponse.js +2 -0
  699. package/dist/esm/client/Offer/OfferResponse.js.map +1 -1
  700. package/dist/esm/client/Offer/Offers.js +2 -0
  701. package/dist/esm/client/Offer/Offers.js.map +1 -1
  702. package/dist/esm/client/Permission/Permission.js +3 -0
  703. package/dist/esm/client/Permission/Permission.js.map +1 -1
  704. package/dist/esm/client/Permission/PermissionResponse.js +2 -0
  705. package/dist/esm/client/Permission/PermissionResponse.js.map +1 -1
  706. package/dist/esm/client/Permission/Permissions.js +2 -0
  707. package/dist/esm/client/Permission/Permissions.js.map +1 -1
  708. package/dist/esm/client/SasToken/SasTokenProperties.js +17 -0
  709. package/dist/esm/client/SasToken/SasTokenProperties.js.map +1 -1
  710. package/dist/esm/client/Script/Scripts.js +5 -0
  711. package/dist/esm/client/Script/Scripts.js.map +1 -1
  712. package/dist/esm/client/StoredProcedure/StoredProcedure.js +3 -0
  713. package/dist/esm/client/StoredProcedure/StoredProcedure.js.map +1 -1
  714. package/dist/esm/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  715. package/dist/esm/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  716. package/dist/esm/client/StoredProcedure/StoredProcedures.js +2 -0
  717. package/dist/esm/client/StoredProcedure/StoredProcedures.js.map +1 -1
  718. package/dist/esm/client/Trigger/Trigger.js +3 -0
  719. package/dist/esm/client/Trigger/Trigger.js.map +1 -1
  720. package/dist/esm/client/Trigger/TriggerResponse.js +2 -0
  721. package/dist/esm/client/Trigger/TriggerResponse.js.map +1 -1
  722. package/dist/esm/client/Trigger/Triggers.js +2 -0
  723. package/dist/esm/client/Trigger/Triggers.js.map +1 -1
  724. package/dist/esm/client/User/User.js +9 -0
  725. package/dist/esm/client/User/User.js.map +1 -1
  726. package/dist/esm/client/User/UserResponse.js +2 -0
  727. package/dist/esm/client/User/UserResponse.js.map +1 -1
  728. package/dist/esm/client/User/Users.js +2 -0
  729. package/dist/esm/client/User/Users.js.map +1 -1
  730. package/dist/esm/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  731. package/dist/esm/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  732. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  733. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  734. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  735. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  736. package/dist/esm/diagnostics/CosmosDiagnosticsContext.js +8 -7
  737. package/dist/esm/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  738. package/dist/esm/diagnostics/DiagnosticNodeInternal.js +26 -7
  739. package/dist/esm/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  740. package/dist/esm/diagnostics/DiagnosticWriter.js +1 -3
  741. package/dist/esm/diagnostics/DiagnosticWriter.js.map +1 -1
  742. package/dist/esm/diagnostics/index.js +2 -2
  743. package/dist/esm/diagnostics/index.js.map +1 -1
  744. package/dist/esm/documents/DatabaseAccount.js +20 -4
  745. package/dist/esm/documents/DatabaseAccount.js.map +1 -1
  746. package/dist/esm/documents/PartitionKey.js +1 -3
  747. package/dist/esm/documents/PartitionKey.js.map +1 -1
  748. package/dist/esm/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  749. package/dist/esm/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  750. package/dist/esm/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  751. package/dist/esm/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  752. package/dist/esm/encryption/Cache/EncryptionSettingsCache.js +2 -0
  753. package/dist/esm/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  754. package/dist/esm/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  755. package/dist/esm/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  756. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.d.ts.map +1 -1
  757. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js +7 -1
  758. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  759. package/dist/esm/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  760. package/dist/esm/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  761. package/dist/esm/encryption/EncryptionItemQueryIterator.js +24 -27
  762. package/dist/esm/encryption/EncryptionItemQueryIterator.js.map +1 -1
  763. package/dist/esm/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  764. package/dist/esm/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  765. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  766. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  767. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  768. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  769. package/dist/esm/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  770. package/dist/esm/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  771. package/dist/esm/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
  772. package/dist/esm/encryption/EncryptionKeyStoreProvider.js +10 -2
  773. package/dist/esm/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  774. package/dist/esm/encryption/EncryptionManager.js +6 -0
  775. package/dist/esm/encryption/EncryptionManager.js.map +1 -1
  776. package/dist/esm/encryption/EncryptionProcessor.js +5 -0
  777. package/dist/esm/encryption/EncryptionProcessor.js.map +1 -1
  778. package/dist/esm/encryption/EncryptionQueryBuilder.js +2 -0
  779. package/dist/esm/encryption/EncryptionQueryBuilder.js.map +1 -1
  780. package/dist/esm/encryption/EncryptionSettingForProperty.js +6 -0
  781. package/dist/esm/encryption/EncryptionSettingForProperty.js.map +1 -1
  782. package/dist/esm/encryption/EncryptionSettings.js +6 -3
  783. package/dist/esm/encryption/EncryptionSettings.js.map +1 -1
  784. package/dist/esm/encryption/KeyEncryptionKey.js +4 -0
  785. package/dist/esm/encryption/KeyEncryptionKey.js.map +1 -1
  786. package/dist/esm/encryption/Serializers/StringSerializer.js +1 -1
  787. package/dist/esm/encryption/Serializers/StringSerializer.js.map +1 -1
  788. package/dist/esm/extractPartitionKey.js +2 -2
  789. package/dist/esm/extractPartitionKey.js.map +1 -1
  790. package/dist/esm/globalEndpointManager.js +21 -4
  791. package/dist/esm/globalEndpointManager.js.map +1 -1
  792. package/dist/esm/globalPartitionEndpointManager.d.ts.map +1 -1
  793. package/dist/esm/globalPartitionEndpointManager.js +16 -9
  794. package/dist/esm/globalPartitionEndpointManager.js.map +1 -1
  795. package/dist/esm/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  796. package/dist/esm/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  797. package/dist/esm/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  798. package/dist/esm/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  799. package/dist/esm/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  800. package/dist/esm/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  801. package/dist/esm/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  802. package/dist/esm/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  803. package/dist/esm/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  804. package/dist/esm/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  805. package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  806. package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  807. package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  808. package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  809. package/dist/esm/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  810. package/dist/esm/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  811. package/dist/esm/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  812. package/dist/esm/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  813. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  814. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  815. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  816. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  817. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  818. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  819. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  820. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  821. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  822. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  823. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  824. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  825. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  826. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  827. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  828. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  829. package/dist/esm/queryExecutionContext/FetchResult.js +4 -0
  830. package/dist/esm/queryExecutionContext/FetchResult.js.map +1 -1
  831. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  832. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  833. package/dist/esm/queryExecutionContext/documentProducer.js +34 -21
  834. package/dist/esm/queryExecutionContext/documentProducer.js.map +1 -1
  835. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  836. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  837. package/dist/esm/queryExecutionContext/orderByComparator.js +1 -0
  838. package/dist/esm/queryExecutionContext/orderByComparator.js.map +1 -1
  839. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  840. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  841. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  842. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  843. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  844. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  845. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  846. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  847. package/dist/esm/queryIterator.js +41 -33
  848. package/dist/esm/queryIterator.js.map +1 -1
  849. package/dist/esm/queryMetrics/clientSideMetrics.js +2 -1
  850. package/dist/esm/queryMetrics/clientSideMetrics.js.map +1 -1
  851. package/dist/esm/queryMetrics/queryMetrics.js +14 -1
  852. package/dist/esm/queryMetrics/queryMetrics.js.map +1 -1
  853. package/dist/esm/queryMetrics/queryPreparationTime.js +5 -1
  854. package/dist/esm/queryMetrics/queryPreparationTime.js.map +1 -1
  855. package/dist/esm/queryMetrics/runtimeExecutionTimes.js +4 -1
  856. package/dist/esm/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  857. package/dist/esm/queryMetrics/timeSpan.js +4 -3
  858. package/dist/esm/queryMetrics/timeSpan.js.map +1 -1
  859. package/dist/esm/request/ErrorResponse.js +19 -0
  860. package/dist/esm/request/ErrorResponse.js.map +1 -1
  861. package/dist/esm/request/FeedResponse.js +4 -0
  862. package/dist/esm/request/FeedResponse.js.map +1 -1
  863. package/dist/esm/request/RequestHandler.js +1 -2
  864. package/dist/esm/request/RequestHandler.js.map +1 -1
  865. package/dist/esm/request/ResourceResponse.js +5 -0
  866. package/dist/esm/request/ResourceResponse.js.map +1 -1
  867. package/dist/esm/request/TimeoutError.js +1 -1
  868. package/dist/esm/request/TimeoutError.js.map +1 -1
  869. package/dist/esm/request/hybridSearchQueryResult.js +5 -0
  870. package/dist/esm/request/hybridSearchQueryResult.js.map +1 -1
  871. package/dist/esm/request/request.d.ts.map +1 -1
  872. package/dist/esm/request/request.js +8 -4
  873. package/dist/esm/request/request.js.map +1 -1
  874. package/dist/esm/retry/bulkExecutionRetryPolicy.js +5 -2
  875. package/dist/esm/retry/bulkExecutionRetryPolicy.js.map +1 -1
  876. package/dist/esm/retry/defaultRetryPolicy.js +4 -3
  877. package/dist/esm/retry/defaultRetryPolicy.js.map +1 -1
  878. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js +11 -2
  879. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  880. package/dist/esm/retry/resourceThrottleRetryPolicy.js +20 -10
  881. package/dist/esm/retry/resourceThrottleRetryPolicy.js.map +1 -1
  882. package/dist/esm/retry/retryUtility.js +2 -3
  883. package/dist/esm/retry/retryUtility.js.map +1 -1
  884. package/dist/esm/retry/sessionRetryPolicy.js +8 -4
  885. package/dist/esm/retry/sessionRetryPolicy.js.map +1 -1
  886. package/dist/esm/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  887. package/dist/esm/retry/timeoutFailoverRetryPolicy.js +17 -7
  888. package/dist/esm/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  889. package/dist/esm/routing/QueryRange.js +4 -0
  890. package/dist/esm/routing/QueryRange.js.map +1 -1
  891. package/dist/esm/routing/inMemoryCollectionRoutingMap.js +4 -0
  892. package/dist/esm/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  893. package/dist/esm/routing/partitionKeyRangeCache.js +2 -0
  894. package/dist/esm/routing/partitionKeyRangeCache.js.map +1 -1
  895. package/dist/esm/routing/smartRoutingMapProvider.js +1 -0
  896. package/dist/esm/routing/smartRoutingMapProvider.js.map +1 -1
  897. package/dist/esm/session/VectorSessionToken.js +6 -2
  898. package/dist/esm/session/VectorSessionToken.js.map +1 -1
  899. package/dist/esm/session/sessionContainer.js +5 -3
  900. package/dist/esm/session/sessionContainer.js.map +1 -1
  901. package/dist/esm/utils/batch.js +15 -4
  902. package/dist/esm/utils/batch.js.map +1 -1
  903. package/dist/esm/utils/fixedSizePriorityQueue.js +4 -0
  904. package/dist/esm/utils/fixedSizePriorityQueue.js.map +1 -1
  905. package/dist/esm/utils/hashing/hash.js +1 -1
  906. package/dist/esm/utils/hashing/hash.js.map +1 -1
  907. package/dist/esm/utils/nonStreamingOrderByMap.js +2 -0
  908. package/dist/esm/utils/nonStreamingOrderByMap.js.map +1 -1
  909. package/dist/esm/utils/time.d.ts +8 -0
  910. package/dist/esm/utils/time.d.ts.map +1 -1
  911. package/dist/esm/utils/time.js +19 -0
  912. package/dist/esm/utils/time.js.map +1 -1
  913. package/dist/react-native/ChangeFeedIterator.js +17 -11
  914. package/dist/react-native/ChangeFeedIterator.js.map +1 -1
  915. package/dist/react-native/ChangeFeedResponse.js +8 -0
  916. package/dist/react-native/ChangeFeedResponse.js.map +1 -1
  917. package/dist/react-native/ClientContext.js +122 -29
  918. package/dist/react-native/ClientContext.js.map +1 -1
  919. package/dist/react-native/CosmosClient.d.ts.map +1 -1
  920. package/dist/react-native/CosmosClient.js +37 -3
  921. package/dist/react-native/CosmosClient.js.map +1 -1
  922. package/dist/react-native/CosmosDiagnostics.js +3 -0
  923. package/dist/react-native/CosmosDiagnostics.js.map +1 -1
  924. package/dist/react-native/PartitionKeyRangeFailoverInfo.js +8 -5
  925. package/dist/react-native/PartitionKeyRangeFailoverInfo.js.map +1 -1
  926. package/dist/react-native/bulk/Batcher.js +13 -3
  927. package/dist/react-native/bulk/Batcher.js.map +1 -1
  928. package/dist/react-native/bulk/BulkHelper.js +26 -11
  929. package/dist/react-native/bulk/BulkHelper.js.map +1 -1
  930. package/dist/react-native/bulk/BulkResponse.js +22 -20
  931. package/dist/react-native/bulk/BulkResponse.js.map +1 -1
  932. package/dist/react-native/bulk/CongestionAlgorithm.js +11 -4
  933. package/dist/react-native/bulk/CongestionAlgorithm.js.map +1 -1
  934. package/dist/react-native/bulk/HelperPerPartition.js +14 -1
  935. package/dist/react-native/bulk/HelperPerPartition.js.map +1 -1
  936. package/dist/react-native/bulk/ItemOperationContext.js +4 -0
  937. package/dist/react-native/bulk/ItemOperationContext.js.map +1 -1
  938. package/dist/react-native/bulk/Limiter.js +27 -18
  939. package/dist/react-native/bulk/Limiter.js.map +1 -1
  940. package/dist/react-native/bulk/PartitionMetric.js +4 -0
  941. package/dist/react-native/bulk/PartitionMetric.js.map +1 -1
  942. package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  943. package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  944. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  945. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js +20 -8
  946. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  947. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  948. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  949. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  950. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  951. package/dist/react-native/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  952. package/dist/react-native/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  953. package/dist/react-native/client/ChangeFeed/ChangeFeedRange.js +20 -0
  954. package/dist/react-native/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  955. package/dist/react-native/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  956. package/dist/react-native/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  957. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  958. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  959. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  960. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  961. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  962. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  963. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  964. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  965. package/dist/react-native/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  966. package/dist/react-native/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  967. package/dist/react-native/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  968. package/dist/react-native/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  969. package/dist/react-native/client/ChangeFeed/FeedRange.js +8 -0
  970. package/dist/react-native/client/ChangeFeed/FeedRange.js.map +1 -1
  971. package/dist/react-native/client/ChangeFeed/FeedRangeQueue.js +1 -0
  972. package/dist/react-native/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  973. package/dist/react-native/client/ChangeFeed/changeFeedUtils.js +5 -5
  974. package/dist/react-native/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  975. package/dist/react-native/client/ClientUtils.js +1 -1
  976. package/dist/react-native/client/ClientUtils.js.map +1 -1
  977. package/dist/react-native/client/Conflict/Conflict.js +4 -0
  978. package/dist/react-native/client/Conflict/Conflict.js.map +1 -1
  979. package/dist/react-native/client/Conflict/ConflictResponse.js +2 -0
  980. package/dist/react-native/client/Conflict/ConflictResponse.js.map +1 -1
  981. package/dist/react-native/client/Conflict/Conflicts.js +2 -0
  982. package/dist/react-native/client/Conflict/Conflicts.js.map +1 -1
  983. package/dist/react-native/client/Container/Container.js +18 -3
  984. package/dist/react-native/client/Container/Container.js.map +1 -1
  985. package/dist/react-native/client/Container/ContainerResponse.js +2 -0
  986. package/dist/react-native/client/Container/ContainerResponse.js.map +1 -1
  987. package/dist/react-native/client/Container/Containers.js +4 -2
  988. package/dist/react-native/client/Container/Containers.js.map +1 -1
  989. package/dist/react-native/client/Database/Database.js +33 -0
  990. package/dist/react-native/client/Database/Database.js.map +1 -1
  991. package/dist/react-native/client/Database/DatabaseResponse.js +2 -0
  992. package/dist/react-native/client/Database/DatabaseResponse.js.map +1 -1
  993. package/dist/react-native/client/Database/Databases.js +3 -0
  994. package/dist/react-native/client/Database/Databases.js.map +1 -1
  995. package/dist/react-native/client/Item/Item.js +4 -0
  996. package/dist/react-native/client/Item/Item.js.map +1 -1
  997. package/dist/react-native/client/Item/ItemResponse.js +2 -0
  998. package/dist/react-native/client/Item/ItemResponse.js.map +1 -1
  999. package/dist/react-native/client/Item/Items.d.ts.map +1 -1
  1000. package/dist/react-native/client/Item/Items.js +12 -0
  1001. package/dist/react-native/client/Item/Items.js.map +1 -1
  1002. package/dist/react-native/client/Offer/Offer.js +3 -0
  1003. package/dist/react-native/client/Offer/Offer.js.map +1 -1
  1004. package/dist/react-native/client/Offer/OfferResponse.js +2 -0
  1005. package/dist/react-native/client/Offer/OfferResponse.js.map +1 -1
  1006. package/dist/react-native/client/Offer/Offers.js +2 -0
  1007. package/dist/react-native/client/Offer/Offers.js.map +1 -1
  1008. package/dist/react-native/client/Permission/Permission.js +3 -0
  1009. package/dist/react-native/client/Permission/Permission.js.map +1 -1
  1010. package/dist/react-native/client/Permission/PermissionResponse.js +2 -0
  1011. package/dist/react-native/client/Permission/PermissionResponse.js.map +1 -1
  1012. package/dist/react-native/client/Permission/Permissions.js +2 -0
  1013. package/dist/react-native/client/Permission/Permissions.js.map +1 -1
  1014. package/dist/react-native/client/SasToken/SasTokenProperties.js +17 -0
  1015. package/dist/react-native/client/SasToken/SasTokenProperties.js.map +1 -1
  1016. package/dist/react-native/client/Script/Scripts.js +5 -0
  1017. package/dist/react-native/client/Script/Scripts.js.map +1 -1
  1018. package/dist/react-native/client/StoredProcedure/StoredProcedure.js +3 -0
  1019. package/dist/react-native/client/StoredProcedure/StoredProcedure.js.map +1 -1
  1020. package/dist/react-native/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  1021. package/dist/react-native/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  1022. package/dist/react-native/client/StoredProcedure/StoredProcedures.js +2 -0
  1023. package/dist/react-native/client/StoredProcedure/StoredProcedures.js.map +1 -1
  1024. package/dist/react-native/client/Trigger/Trigger.js +3 -0
  1025. package/dist/react-native/client/Trigger/Trigger.js.map +1 -1
  1026. package/dist/react-native/client/Trigger/TriggerResponse.js +2 -0
  1027. package/dist/react-native/client/Trigger/TriggerResponse.js.map +1 -1
  1028. package/dist/react-native/client/Trigger/Triggers.js +2 -0
  1029. package/dist/react-native/client/Trigger/Triggers.js.map +1 -1
  1030. package/dist/react-native/client/User/User.js +9 -0
  1031. package/dist/react-native/client/User/User.js.map +1 -1
  1032. package/dist/react-native/client/User/UserResponse.js +2 -0
  1033. package/dist/react-native/client/User/UserResponse.js.map +1 -1
  1034. package/dist/react-native/client/User/Users.js +2 -0
  1035. package/dist/react-native/client/User/Users.js.map +1 -1
  1036. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  1037. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  1038. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  1039. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  1040. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  1041. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  1042. package/dist/react-native/diagnostics/CosmosDiagnosticsContext.js +8 -7
  1043. package/dist/react-native/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  1044. package/dist/react-native/diagnostics/DiagnosticNodeInternal.js +26 -7
  1045. package/dist/react-native/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  1046. package/dist/react-native/diagnostics/DiagnosticWriter.js +1 -3
  1047. package/dist/react-native/diagnostics/DiagnosticWriter.js.map +1 -1
  1048. package/dist/react-native/diagnostics/index.js +2 -2
  1049. package/dist/react-native/diagnostics/index.js.map +1 -1
  1050. package/dist/react-native/documents/DatabaseAccount.js +20 -4
  1051. package/dist/react-native/documents/DatabaseAccount.js.map +1 -1
  1052. package/dist/react-native/documents/PartitionKey.js +1 -3
  1053. package/dist/react-native/documents/PartitionKey.js.map +1 -1
  1054. package/dist/react-native/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  1055. package/dist/react-native/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  1056. package/dist/react-native/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  1057. package/dist/react-native/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  1058. package/dist/react-native/encryption/Cache/EncryptionSettingsCache.js +2 -0
  1059. package/dist/react-native/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  1060. package/dist/react-native/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  1061. package/dist/react-native/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  1062. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.d.ts.map +1 -1
  1063. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js +7 -1
  1064. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  1065. package/dist/react-native/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  1066. package/dist/react-native/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  1067. package/dist/react-native/encryption/EncryptionItemQueryIterator.js +24 -27
  1068. package/dist/react-native/encryption/EncryptionItemQueryIterator.js.map +1 -1
  1069. package/dist/react-native/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  1070. package/dist/react-native/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  1071. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  1072. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  1073. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  1074. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  1075. package/dist/react-native/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  1076. package/dist/react-native/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  1077. package/dist/react-native/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
  1078. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js +10 -2
  1079. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  1080. package/dist/react-native/encryption/EncryptionManager.js +6 -0
  1081. package/dist/react-native/encryption/EncryptionManager.js.map +1 -1
  1082. package/dist/react-native/encryption/EncryptionProcessor.js +5 -0
  1083. package/dist/react-native/encryption/EncryptionProcessor.js.map +1 -1
  1084. package/dist/react-native/encryption/EncryptionQueryBuilder.js +2 -0
  1085. package/dist/react-native/encryption/EncryptionQueryBuilder.js.map +1 -1
  1086. package/dist/react-native/encryption/EncryptionSettingForProperty.js +6 -0
  1087. package/dist/react-native/encryption/EncryptionSettingForProperty.js.map +1 -1
  1088. package/dist/react-native/encryption/EncryptionSettings.js +6 -3
  1089. package/dist/react-native/encryption/EncryptionSettings.js.map +1 -1
  1090. package/dist/react-native/encryption/KeyEncryptionKey.js +4 -0
  1091. package/dist/react-native/encryption/KeyEncryptionKey.js.map +1 -1
  1092. package/dist/react-native/encryption/Serializers/StringSerializer.js +1 -1
  1093. package/dist/react-native/encryption/Serializers/StringSerializer.js.map +1 -1
  1094. package/dist/react-native/extractPartitionKey.js +2 -2
  1095. package/dist/react-native/extractPartitionKey.js.map +1 -1
  1096. package/dist/react-native/globalEndpointManager.js +21 -4
  1097. package/dist/react-native/globalEndpointManager.js.map +1 -1
  1098. package/dist/react-native/globalPartitionEndpointManager.d.ts.map +1 -1
  1099. package/dist/react-native/globalPartitionEndpointManager.js +16 -9
  1100. package/dist/react-native/globalPartitionEndpointManager.js.map +1 -1
  1101. package/dist/react-native/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  1102. package/dist/react-native/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  1103. package/dist/react-native/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  1104. package/dist/react-native/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  1105. package/dist/react-native/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  1106. package/dist/react-native/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  1107. package/dist/react-native/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  1108. package/dist/react-native/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  1109. package/dist/react-native/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  1110. package/dist/react-native/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  1111. package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  1112. package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  1113. package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  1114. package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  1115. package/dist/react-native/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  1116. package/dist/react-native/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  1117. package/dist/react-native/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  1118. package/dist/react-native/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  1119. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  1120. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  1121. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  1122. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  1123. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  1124. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  1125. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  1126. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  1127. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  1128. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  1129. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  1130. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  1131. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  1132. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  1133. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  1134. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  1135. package/dist/react-native/queryExecutionContext/FetchResult.js +4 -0
  1136. package/dist/react-native/queryExecutionContext/FetchResult.js.map +1 -1
  1137. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  1138. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  1139. package/dist/react-native/queryExecutionContext/documentProducer.js +34 -21
  1140. package/dist/react-native/queryExecutionContext/documentProducer.js.map +1 -1
  1141. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  1142. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  1143. package/dist/react-native/queryExecutionContext/orderByComparator.js +1 -0
  1144. package/dist/react-native/queryExecutionContext/orderByComparator.js.map +1 -1
  1145. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  1146. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  1147. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  1148. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  1149. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  1150. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  1151. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  1152. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  1153. package/dist/react-native/queryIterator.js +41 -33
  1154. package/dist/react-native/queryIterator.js.map +1 -1
  1155. package/dist/react-native/queryMetrics/clientSideMetrics.js +2 -1
  1156. package/dist/react-native/queryMetrics/clientSideMetrics.js.map +1 -1
  1157. package/dist/react-native/queryMetrics/queryMetrics.js +14 -1
  1158. package/dist/react-native/queryMetrics/queryMetrics.js.map +1 -1
  1159. package/dist/react-native/queryMetrics/queryPreparationTime.js +5 -1
  1160. package/dist/react-native/queryMetrics/queryPreparationTime.js.map +1 -1
  1161. package/dist/react-native/queryMetrics/runtimeExecutionTimes.js +4 -1
  1162. package/dist/react-native/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  1163. package/dist/react-native/queryMetrics/timeSpan.js +4 -3
  1164. package/dist/react-native/queryMetrics/timeSpan.js.map +1 -1
  1165. package/dist/react-native/request/ErrorResponse.js +19 -0
  1166. package/dist/react-native/request/ErrorResponse.js.map +1 -1
  1167. package/dist/react-native/request/FeedResponse.js +4 -0
  1168. package/dist/react-native/request/FeedResponse.js.map +1 -1
  1169. package/dist/react-native/request/RequestHandler.js +1 -2
  1170. package/dist/react-native/request/RequestHandler.js.map +1 -1
  1171. package/dist/react-native/request/ResourceResponse.js +5 -0
  1172. package/dist/react-native/request/ResourceResponse.js.map +1 -1
  1173. package/dist/react-native/request/TimeoutError.js +1 -1
  1174. package/dist/react-native/request/TimeoutError.js.map +1 -1
  1175. package/dist/react-native/request/hybridSearchQueryResult.js +5 -0
  1176. package/dist/react-native/request/hybridSearchQueryResult.js.map +1 -1
  1177. package/dist/react-native/request/request.d.ts.map +1 -1
  1178. package/dist/react-native/request/request.js +8 -4
  1179. package/dist/react-native/request/request.js.map +1 -1
  1180. package/dist/react-native/retry/bulkExecutionRetryPolicy.js +5 -2
  1181. package/dist/react-native/retry/bulkExecutionRetryPolicy.js.map +1 -1
  1182. package/dist/react-native/retry/defaultRetryPolicy.js +4 -3
  1183. package/dist/react-native/retry/defaultRetryPolicy.js.map +1 -1
  1184. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js +11 -2
  1185. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  1186. package/dist/react-native/retry/resourceThrottleRetryPolicy.js +20 -10
  1187. package/dist/react-native/retry/resourceThrottleRetryPolicy.js.map +1 -1
  1188. package/dist/react-native/retry/retryUtility.js +2 -3
  1189. package/dist/react-native/retry/retryUtility.js.map +1 -1
  1190. package/dist/react-native/retry/sessionRetryPolicy.js +8 -4
  1191. package/dist/react-native/retry/sessionRetryPolicy.js.map +1 -1
  1192. package/dist/react-native/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  1193. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js +17 -7
  1194. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  1195. package/dist/react-native/routing/QueryRange.js +4 -0
  1196. package/dist/react-native/routing/QueryRange.js.map +1 -1
  1197. package/dist/react-native/routing/inMemoryCollectionRoutingMap.js +4 -0
  1198. package/dist/react-native/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  1199. package/dist/react-native/routing/partitionKeyRangeCache.js +2 -0
  1200. package/dist/react-native/routing/partitionKeyRangeCache.js.map +1 -1
  1201. package/dist/react-native/routing/smartRoutingMapProvider.js +1 -0
  1202. package/dist/react-native/routing/smartRoutingMapProvider.js.map +1 -1
  1203. package/dist/react-native/session/VectorSessionToken.js +6 -2
  1204. package/dist/react-native/session/VectorSessionToken.js.map +1 -1
  1205. package/dist/react-native/session/sessionContainer.js +5 -3
  1206. package/dist/react-native/session/sessionContainer.js.map +1 -1
  1207. package/dist/react-native/utils/batch.js +15 -4
  1208. package/dist/react-native/utils/batch.js.map +1 -1
  1209. package/dist/react-native/utils/fixedSizePriorityQueue.js +4 -0
  1210. package/dist/react-native/utils/fixedSizePriorityQueue.js.map +1 -1
  1211. package/dist/react-native/utils/hashing/hash.js +1 -1
  1212. package/dist/react-native/utils/hashing/hash.js.map +1 -1
  1213. package/dist/react-native/utils/nonStreamingOrderByMap.js +2 -0
  1214. package/dist/react-native/utils/nonStreamingOrderByMap.js.map +1 -1
  1215. package/dist/react-native/utils/time.d.ts +8 -0
  1216. package/dist/react-native/utils/time.d.ts.map +1 -1
  1217. package/dist/react-native/utils/time.js +19 -0
  1218. package/dist/react-native/utils/time.js.map +1 -1
  1219. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"queryIterator.js","sourceRoot":"","sources":["../../src/queryIterator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/// <reference lib=\"esnext.asynciterable\" />\nimport type { ClientContext } from \"./ClientContext.js\";\nimport {\n DiagnosticNodeInternal,\n DiagnosticNodeType,\n} from \"./diagnostics/DiagnosticNodeInternal.js\";\nimport { getPathFromLink, ResourceType, StatusCodes } from \"./common/index.js\";\nimport type {\n CosmosHeaders,\n ExecutionContext,\n FetchFunctionCallback,\n SqlQuerySpec,\n} from \"./queryExecutionContext/index.js\";\nimport {\n DefaultQueryExecutionContext,\n getInitialHeader,\n mergeHeaders,\n PipelinedQueryExecutionContext,\n} from \"./queryExecutionContext/index.js\";\nimport type { Response } from \"./request/index.js\";\nimport type {\n ErrorResponse,\n PartitionedQueryExecutionInfo,\n QueryRange,\n} from \"./request/ErrorResponse.js\";\nimport type { FeedOptions } from \"./request/FeedOptions.js\";\nimport { FeedResponse } from \"./request/FeedResponse.js\";\nimport {\n getEmptyCosmosDiagnostics,\n withDiagnostics,\n withMetadataDiagnostics,\n} from \"./utils/diagnostics.js\";\nimport { MetadataLookUpType } from \"./CosmosDiagnostics.js\";\nimport { randomUUID } from \"@azure/core-util\";\nimport { HybridQueryExecutionContext } from \"./queryExecutionContext/hybridQueryExecutionContext.js\";\nimport { PartitionKeyRangeCache } from \"./routing/index.js\";\n\n/**\n * Represents a QueryIterator Object, an implementation of feed or query response that enables\n * traversal and iterating over the response\n * in the Azure Cosmos DB database service.\n */\nexport class QueryIterator<T> {\n private fetchAllTempResources: T[]; // TODO\n private fetchAllLastResHeaders: CosmosHeaders;\n private queryExecutionContext: ExecutionContext;\n private queryPlanPromise: Promise<Response<PartitionedQueryExecutionInfo>>;\n private isInitialized: boolean;\n private correlatedActivityId: string;\n private partitionKeyRangeCache: PartitionKeyRangeCache;\n /**\n * @hidden\n */\n constructor(\n private clientContext: ClientContext,\n private query: SqlQuerySpec | string,\n private options: FeedOptions,\n private fetchFunctions: FetchFunctionCallback | FetchFunctionCallback[],\n private resourceLink?: string,\n private resourceType?: ResourceType,\n ) {\n this.query = query;\n this.fetchFunctions = fetchFunctions;\n this.options = options || {};\n this.resourceLink = resourceLink;\n this.fetchAllLastResHeaders = getInitialHeader();\n this.reset();\n this.isInitialized = false;\n this.partitionKeyRangeCache = this.clientContext.partitionKeyRangeCache;\n }\n\n /**\n * Gets an async iterator that will yield results until completion.\n *\n * NOTE: AsyncIterators are a very new feature and you might need to\n * use polyfils/etc. in order to use them in your code.\n *\n * If you're using TypeScript, you can use the following polyfill as long\n * as you target ES6 or higher and are running on Node 6 or higher.\n *\n * ```ts snippet:ignore\n * if (!Symbol || !Symbol.asyncIterator) {\n * (Symbol as any).asyncIterator = Symbol.for(\"Symbol.asyncIterator\");\n * }\n * ```\n *\n * @example Iterate over all databases\n * ```ts snippet:QueryIteratorIterateDatabases\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * for await (const { resources: db } of client.databases.readAll().getAsyncIterator()) {\n * console.log(`Got ${db} from AsyncIterator`);\n * }\n * ```\n */\n public async *getAsyncIterator(): AsyncIterable<FeedResponse<T>> {\n const diagnosticNode = new DiagnosticNodeInternal(\n this.clientContext.diagnosticLevel,\n DiagnosticNodeType.CLIENT_REQUEST_NODE,\n null,\n );\n yield* this.getAsyncIteratorInternal(diagnosticNode);\n }\n /**\n * @internal\n */\n public async *getAsyncIteratorInternal(\n diagnosticNode: DiagnosticNodeInternal,\n ): AsyncIterable<FeedResponse<T>> {\n this.reset();\n this.queryPlanPromise = this.fetchQueryPlan(diagnosticNode);\n while (this.queryExecutionContext.hasMoreResults()) {\n let response: Response<any>;\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (error: any) {\n if (this.needsQueryPlan(error)) {\n await this.createExecutionContext(diagnosticNode);\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (queryError: any) {\n this.handleSplitError(queryError);\n }\n } else {\n throw error;\n }\n }\n\n const feedResponse = new FeedResponse<T>(\n response.result,\n response.headers,\n this.queryExecutionContext.hasMoreResults(),\n diagnosticNode.toDiagnostic(this.clientContext.getClientConfig()),\n );\n diagnosticNode = new DiagnosticNodeInternal(\n this.clientContext.diagnosticLevel,\n DiagnosticNodeType.CLIENT_REQUEST_NODE,\n null,\n );\n if (response.result !== undefined) {\n yield feedResponse;\n }\n }\n }\n\n /**\n * Determine if there are still remaining resources to process based on the value of the continuation token or the\n * elements remaining on the current batch in the QueryIterator.\n * @returns true if there is other elements to process in the QueryIterator.\n */\n public hasMoreResults(): boolean {\n return this.queryExecutionContext.hasMoreResults();\n }\n\n /**\n * Fetch all pages for the query and return a single FeedResponse.\n * @example\n * ```ts snippet:ReadmeSampleQueryDatabase\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const { resources } = await container.items\n * .query(\"SELECT * from c WHERE c.isCapitol = true\")\n * .fetchAll();\n * ```\n */\n\n public async fetchAll(): Promise<FeedResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.fetchAllInternal(diagnosticNode);\n }, this.clientContext);\n }\n\n /**\n * @hidden\n */\n public async fetchAllInternal(diagnosticNode: DiagnosticNodeInternal): Promise<FeedResponse<T>> {\n this.reset();\n let response: FeedResponse<T>;\n try {\n response = await this.toArrayImplementation(diagnosticNode);\n } catch (error: any) {\n this.handleSplitError(error);\n }\n return response;\n }\n\n /**\n * Retrieve the next batch from the feed.\n *\n * This may or may not fetch more pages from the backend depending on your settings\n * and the type of query. Aggregate queries will generally fetch all backend pages\n * before returning the first batch of responses.\n *\n * @example\n * ```ts snippet:ReadmeSampleNonStreamableCrossPartitionQuery\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const querySpec = {\n * query: \"SELECT c.status, COUNT(c.id) AS count FROM c GROUP BY c.status\",\n * };\n * const queryOptions = {\n * maxItemCount: 10, // maximum number of items to return per page\n * enableCrossPartitionQuery: true,\n * };\n * const queryIterator = container.items.query(querySpec, queryOptions);\n * while (queryIterator.hasMoreResults()) {\n * const { resources: result } = await queryIterator.fetchNext();\n * // process results\n * }\n * ```\n */\n public async fetchNext(): Promise<FeedResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.fetchNextInternal(diagnosticNode);\n }, this.clientContext);\n }\n /**\n * @internal\n */\n public async fetchNextInternal(diagnosticNode: DiagnosticNodeInternal): Promise<FeedResponse<T>> {\n this.queryPlanPromise = withMetadataDiagnostics(\n async (metadataNode: DiagnosticNodeInternal) => {\n return this.fetchQueryPlan(metadataNode);\n },\n diagnosticNode,\n MetadataLookUpType.QueryPlanLookUp,\n );\n if (!this.isInitialized) {\n await this.init(diagnosticNode);\n }\n let response: Response<any>;\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (error: any) {\n if (this.needsQueryPlan(error)) {\n await this.createExecutionContext(diagnosticNode);\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (queryError: any) {\n this.handleSplitError(queryError);\n }\n } else {\n throw error;\n }\n }\n return new FeedResponse<T>(\n response.result,\n response.headers,\n this.queryExecutionContext.hasMoreResults(),\n getEmptyCosmosDiagnostics(),\n );\n }\n\n /**\n * Reset the QueryIterator to the beginning and clear all the resources inside it\n * @example\n * ```ts snippet:QueryIteratorReset\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const querySpec = {\n * query: \"SELECT c.status, COUNT(c.id) AS count FROM c GROUP BY c.status\",\n * };\n * const queryIterator = container.items.query(querySpec);\n * while (queryIterator.hasMoreResults()) {\n * const { resources: result } = await queryIterator.fetchNext();\n * // process results\n * }\n * queryIterator.reset();\n * ```\n *\n */\n public reset(): void {\n this.correlatedActivityId = randomUUID();\n this.queryPlanPromise = undefined;\n this.fetchAllLastResHeaders = getInitialHeader();\n this.fetchAllTempResources = [];\n this.queryExecutionContext = new DefaultQueryExecutionContext(\n this.options,\n this.fetchFunctions,\n this.correlatedActivityId,\n );\n }\n\n private async toArrayImplementation(\n diagnosticNode: DiagnosticNodeInternal,\n ): Promise<FeedResponse<T>> {\n this.queryPlanPromise = withMetadataDiagnostics(\n async (metadataNode: DiagnosticNodeInternal) => {\n return this.fetchQueryPlan(metadataNode);\n },\n diagnosticNode,\n MetadataLookUpType.QueryPlanLookUp,\n );\n // this.queryPlanPromise = this.fetchQueryPlan(diagnosticNode);\n if (!this.isInitialized) {\n await this.init(diagnosticNode);\n }\n while (this.queryExecutionContext.hasMoreResults()) {\n let response: Response<any>;\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (error: any) {\n if (this.needsQueryPlan(error)) {\n await this.createExecutionContext(diagnosticNode);\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } else {\n throw error;\n }\n }\n const { result, headers } = response;\n // concatenate the results and fetch more\n mergeHeaders(this.fetchAllLastResHeaders, headers);\n if (result) {\n this.fetchAllTempResources.push(...result);\n }\n }\n return new FeedResponse(\n this.fetchAllTempResources,\n this.fetchAllLastResHeaders,\n this.queryExecutionContext.hasMoreResults(),\n getEmptyCosmosDiagnostics(),\n );\n }\n\n private async createExecutionContext(diagnosticNode?: DiagnosticNodeInternal): Promise<void> {\n const queryPlanResponse = await this.queryPlanPromise;\n\n // We always coerce queryPlanPromise to resolved. So if it errored, we need to manually inspect the resolved value\n if (queryPlanResponse instanceof Error) {\n throw queryPlanResponse;\n }\n\n const queryPlan: PartitionedQueryExecutionInfo = queryPlanResponse.result;\n if (queryPlan.hybridSearchQueryInfo && queryPlan.hybridSearchQueryInfo !== null) {\n await this.createHybridQueryExecutionContext(queryPlan, diagnosticNode);\n } else {\n await this.createPipelinedExecutionContext(queryPlan);\n }\n }\n\n private async createHybridQueryExecutionContext(\n queryPlan: PartitionedQueryExecutionInfo,\n diagnosticNode?: DiagnosticNodeInternal,\n ): Promise<void> {\n const allPartitionKeyRanges = (\n await this.partitionKeyRangeCache.onCollectionRoutingMap(this.resourceLink, diagnosticNode)\n ).getOrderedParitionKeyRanges();\n\n // convert allPartitionKeyRanges to QueryRanges\n const queryRanges: QueryRange[] = allPartitionKeyRanges.map((partitionKeyRange) => {\n return {\n min: partitionKeyRange.minInclusive,\n max: partitionKeyRange.maxExclusive,\n isMinInclusive: true,\n isMaxInclusive: false,\n };\n });\n\n this.queryExecutionContext = new HybridQueryExecutionContext(\n this.clientContext,\n this.resourceLink,\n this.query,\n this.options,\n queryPlan,\n this.correlatedActivityId,\n queryRanges,\n );\n }\n\n private async createPipelinedExecutionContext(\n queryPlan: PartitionedQueryExecutionInfo,\n ): Promise<void> {\n const queryInfo = queryPlan.queryInfo;\n if (queryInfo.aggregates.length > 0 && queryInfo.hasSelectValue === false) {\n throw new Error(\"Aggregate queries must use the VALUE keyword\");\n }\n this.queryExecutionContext = new PipelinedQueryExecutionContext(\n this.clientContext,\n this.resourceLink,\n this.query,\n this.options,\n queryPlan,\n this.correlatedActivityId,\n );\n }\n\n private async fetchQueryPlan(diagnosticNode: DiagnosticNodeInternal): Promise<any> {\n if (!this.queryPlanPromise && this.resourceType === ResourceType.item) {\n return this.clientContext\n .getQueryPlan(\n getPathFromLink(this.resourceLink) + \"/docs\",\n ResourceType.item,\n this.resourceLink,\n this.query,\n this.options,\n diagnosticNode,\n this.correlatedActivityId,\n )\n .catch((error: any) => error); // Without this catch, node reports an unhandled rejection. So we stash the promise as resolved even if it errored.\n }\n return this.queryPlanPromise;\n }\n\n private needsQueryPlan(error: ErrorResponse): error is ErrorResponse {\n if (\n error.body?.additionalErrorInfo ||\n error.message.includes(\"Cross partition query only supports\")\n ) {\n return error.code === StatusCodes.BadRequest && this.resourceType === ResourceType.item;\n } else {\n throw error;\n }\n }\n\n private initPromise: Promise<void>;\n /**\n * @internal\n */\n public async init(diagnosticNode: DiagnosticNodeInternal): Promise<void> {\n if (this.isInitialized === true) {\n return;\n }\n if (this.initPromise === undefined) {\n this.initPromise = this._init(diagnosticNode);\n }\n return this.initPromise;\n }\n private async _init(diagnosticNode: DiagnosticNodeInternal): Promise<void> {\n if (this.options.forceQueryPlan === true && this.resourceType === ResourceType.item) {\n await this.createExecutionContext(diagnosticNode);\n }\n this.isInitialized = true;\n }\n\n private handleSplitError(err: any): void {\n if (err.code === 410) {\n const error = new Error(\n \"Encountered partition split and could not recover. This request is retryable\",\n ) as any;\n error.code = 503;\n error.originalError = err;\n throw error;\n } else {\n throw err;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"queryIterator.js","sourceRoot":"","sources":["../../src/queryIterator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/// <reference lib=\"esnext.asynciterable\" />\nimport type { ClientContext } from \"./ClientContext.js\";\nimport {\n DiagnosticNodeInternal,\n DiagnosticNodeType,\n} from \"./diagnostics/DiagnosticNodeInternal.js\";\nimport { getPathFromLink, ResourceType, StatusCodes } from \"./common/index.js\";\nimport type {\n CosmosHeaders,\n ExecutionContext,\n FetchFunctionCallback,\n SqlQuerySpec,\n} from \"./queryExecutionContext/index.js\";\nimport {\n DefaultQueryExecutionContext,\n getInitialHeader,\n mergeHeaders,\n PipelinedQueryExecutionContext,\n} from \"./queryExecutionContext/index.js\";\nimport type { Response } from \"./request/index.js\";\nimport type {\n ErrorResponse,\n PartitionedQueryExecutionInfo,\n QueryRange,\n} from \"./request/ErrorResponse.js\";\nimport type { FeedOptions } from \"./request/FeedOptions.js\";\nimport { FeedResponse } from \"./request/FeedResponse.js\";\nimport {\n getEmptyCosmosDiagnostics,\n withDiagnostics,\n withMetadataDiagnostics,\n} from \"./utils/diagnostics.js\";\nimport { MetadataLookUpType } from \"./CosmosDiagnostics.js\";\nimport { randomUUID } from \"@azure/core-util\";\nimport { HybridQueryExecutionContext } from \"./queryExecutionContext/hybridQueryExecutionContext.js\";\nimport { PartitionKeyRangeCache } from \"./routing/index.js\";\n\n/**\n * Represents a QueryIterator Object, an implementation of feed or query response that enables\n * traversal and iterating over the response\n * in the Azure Cosmos DB database service.\n */\nexport class QueryIterator<T> {\n private fetchAllTempResources: T[]; // TODO\n private fetchAllLastResHeaders: CosmosHeaders;\n private queryExecutionContext: ExecutionContext;\n private queryPlanPromise: Promise<Response<PartitionedQueryExecutionInfo>>;\n private isInitialized: boolean;\n private correlatedActivityId: string;\n private partitionKeyRangeCache: PartitionKeyRangeCache;\n /**\n * @hidden\n */\n constructor(\n private clientContext: ClientContext,\n private query: SqlQuerySpec | string,\n private options: FeedOptions,\n private fetchFunctions: FetchFunctionCallback | FetchFunctionCallback[],\n private resourceLink?: string,\n private resourceType?: ResourceType,\n ) {\n this.query = query;\n this.fetchFunctions = fetchFunctions;\n this.options = options || {};\n this.resourceLink = resourceLink;\n this.fetchAllLastResHeaders = getInitialHeader();\n this.reset();\n this.isInitialized = false;\n this.partitionKeyRangeCache = this.clientContext.partitionKeyRangeCache;\n }\n\n /**\n * Gets an async iterator that will yield results until completion.\n *\n * NOTE: AsyncIterators are a very new feature and you might need to\n * use polyfils/etc. in order to use them in your code.\n *\n * If you're using TypeScript, you can use the following polyfill as long\n * as you target ES6 or higher and are running on Node 6 or higher.\n *\n * ```ts snippet:ignore\n * if (!Symbol || !Symbol.asyncIterator) {\n * (Symbol as any).asyncIterator = Symbol.for(\"Symbol.asyncIterator\");\n * }\n * ```\n *\n * @example Iterate over all databases\n * ```ts snippet:QueryIteratorIterateDatabases\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * for await (const { resources: db } of client.databases.readAll().getAsyncIterator()) {\n * console.log(`Got ${db} from AsyncIterator`);\n * }\n * ```\n */\n public async *getAsyncIterator(): AsyncIterable<FeedResponse<T>> {\n const diagnosticNode = new DiagnosticNodeInternal(\n this.clientContext.diagnosticLevel,\n DiagnosticNodeType.CLIENT_REQUEST_NODE,\n null,\n );\n yield* this.getAsyncIteratorInternal(diagnosticNode);\n }\n /**\n * @internal\n */\n public async *getAsyncIteratorInternal(\n diagnosticNode: DiagnosticNodeInternal,\n ): AsyncIterable<FeedResponse<T>> {\n this.reset();\n this.queryPlanPromise = this.fetchQueryPlan(diagnosticNode);\n while (this.queryExecutionContext.hasMoreResults()) {\n let response: Response<any>;\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (error: any) {\n if (this.needsQueryPlan(error)) {\n await this.createExecutionContext(diagnosticNode);\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (queryError: any) {\n this.handleSplitError(queryError);\n }\n } else {\n throw error;\n }\n }\n\n const feedResponse = new FeedResponse<T>(\n response.result,\n response.headers,\n this.queryExecutionContext.hasMoreResults(),\n diagnosticNode.toDiagnostic(this.clientContext.getClientConfig()),\n );\n diagnosticNode = new DiagnosticNodeInternal(\n this.clientContext.diagnosticLevel,\n DiagnosticNodeType.CLIENT_REQUEST_NODE,\n null,\n );\n if (response.result !== undefined) {\n yield feedResponse;\n }\n }\n }\n\n /**\n * Determine if there are still remaining resources to process based on the value of the continuation token or the\n * elements remaining on the current batch in the QueryIterator.\n * @returns true if there is other elements to process in the QueryIterator.\n */\n public hasMoreResults(): boolean {\n return this.queryExecutionContext.hasMoreResults();\n }\n\n /**\n * Fetch all pages for the query and return a single FeedResponse.\n * @example\n * ```ts snippet:ReadmeSampleQueryDatabase\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const { resources } = await container.items\n * .query(\"SELECT * from c WHERE c.isCapitol = true\")\n * .fetchAll();\n * ```\n */\n\n public async fetchAll(): Promise<FeedResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.fetchAllInternal(diagnosticNode);\n }, this.clientContext);\n }\n\n /**\n * @hidden\n */\n public async fetchAllInternal(diagnosticNode: DiagnosticNodeInternal): Promise<FeedResponse<T>> {\n this.reset();\n let response: FeedResponse<T>;\n try {\n response = await this.toArrayImplementation(diagnosticNode);\n } catch (error: any) {\n this.handleSplitError(error);\n }\n return response;\n }\n\n /**\n * Retrieve the next batch from the feed.\n *\n * This may or may not fetch more pages from the backend depending on your settings\n * and the type of query. Aggregate queries will generally fetch all backend pages\n * before returning the first batch of responses.\n *\n * @example\n * ```ts snippet:ReadmeSampleNonStreamableCrossPartitionQuery\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const querySpec = {\n * query: \"SELECT c.status, COUNT(c.id) AS count FROM c GROUP BY c.status\",\n * };\n * const queryOptions = {\n * maxItemCount: 10, // maximum number of items to return per page\n * enableCrossPartitionQuery: true,\n * };\n * const queryIterator = container.items.query(querySpec, queryOptions);\n * while (queryIterator.hasMoreResults()) {\n * const { resources: result } = await queryIterator.fetchNext();\n * // process results\n * }\n * ```\n */\n public async fetchNext(): Promise<FeedResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.fetchNextInternal(diagnosticNode);\n }, this.clientContext);\n }\n /**\n * @internal\n */\n public async fetchNextInternal(diagnosticNode: DiagnosticNodeInternal): Promise<FeedResponse<T>> {\n this.queryPlanPromise = withMetadataDiagnostics(\n async (metadataNode: DiagnosticNodeInternal) => {\n return this.fetchQueryPlan(metadataNode);\n },\n diagnosticNode,\n MetadataLookUpType.QueryPlanLookUp,\n );\n if (!this.isInitialized) {\n await this.init(diagnosticNode);\n }\n let response: Response<any>;\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (error: any) {\n if (this.needsQueryPlan(error)) {\n await this.createExecutionContext(diagnosticNode);\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (queryError: any) {\n this.handleSplitError(queryError);\n }\n } else {\n throw error;\n }\n }\n return new FeedResponse<T>(\n response.result,\n response.headers,\n this.queryExecutionContext.hasMoreResults(),\n getEmptyCosmosDiagnostics(),\n );\n }\n\n /**\n * Reset the QueryIterator to the beginning and clear all the resources inside it\n * @example\n * ```ts snippet:QueryIteratorReset\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const querySpec = {\n * query: \"SELECT c.status, COUNT(c.id) AS count FROM c GROUP BY c.status\",\n * };\n * const queryIterator = container.items.query(querySpec);\n * while (queryIterator.hasMoreResults()) {\n * const { resources: result } = await queryIterator.fetchNext();\n * // process results\n * }\n * queryIterator.reset();\n * ```\n *\n */\n public reset(): void {\n this.correlatedActivityId = randomUUID();\n this.queryPlanPromise = undefined;\n this.fetchAllLastResHeaders = getInitialHeader();\n this.fetchAllTempResources = [];\n this.queryExecutionContext = new DefaultQueryExecutionContext(\n this.options,\n this.fetchFunctions,\n this.correlatedActivityId,\n );\n }\n\n private async toArrayImplementation(\n diagnosticNode: DiagnosticNodeInternal,\n ): Promise<FeedResponse<T>> {\n this.queryPlanPromise = withMetadataDiagnostics(\n async (metadataNode: DiagnosticNodeInternal) => {\n return this.fetchQueryPlan(metadataNode);\n },\n diagnosticNode,\n MetadataLookUpType.QueryPlanLookUp,\n );\n // this.queryPlanPromise = this.fetchQueryPlan(diagnosticNode);\n if (!this.isInitialized) {\n await this.init(diagnosticNode);\n }\n while (this.queryExecutionContext.hasMoreResults()) {\n let response: Response<any>;\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (error: any) {\n if (this.needsQueryPlan(error)) {\n await this.createExecutionContext(diagnosticNode);\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } else {\n throw error;\n }\n }\n const { result, headers } = response;\n // concatenate the results and fetch more\n mergeHeaders(this.fetchAllLastResHeaders, headers);\n if (result) {\n this.fetchAllTempResources.push(...result);\n }\n }\n return new FeedResponse(\n this.fetchAllTempResources,\n this.fetchAllLastResHeaders,\n this.queryExecutionContext.hasMoreResults(),\n getEmptyCosmosDiagnostics(),\n );\n }\n\n private async createExecutionContext(diagnosticNode?: DiagnosticNodeInternal): Promise<void> {\n const queryPlanResponse = await this.queryPlanPromise;\n\n // We always coerce queryPlanPromise to resolved. So if it errored, we need to manually inspect the resolved value\n if (queryPlanResponse instanceof Error) {\n throw queryPlanResponse;\n }\n\n const queryPlan: PartitionedQueryExecutionInfo = queryPlanResponse.result;\n if (queryPlan.hybridSearchQueryInfo && queryPlan.hybridSearchQueryInfo !== null) {\n await this.createHybridQueryExecutionContext(queryPlan, diagnosticNode);\n } else {\n await this.createPipelinedExecutionContext(queryPlan);\n }\n }\n\n private async createHybridQueryExecutionContext(\n queryPlan: PartitionedQueryExecutionInfo,\n diagnosticNode?: DiagnosticNodeInternal,\n ): Promise<void> {\n const allPartitionKeyRanges = (\n await this.partitionKeyRangeCache.onCollectionRoutingMap(this.resourceLink, diagnosticNode)\n ).getOrderedParitionKeyRanges();\n\n // convert allPartitionKeyRanges to QueryRanges\n const queryRanges: QueryRange[] = allPartitionKeyRanges.map((partitionKeyRange) => {\n return {\n min: partitionKeyRange.minInclusive,\n max: partitionKeyRange.maxExclusive,\n isMinInclusive: true,\n isMaxInclusive: false,\n };\n });\n\n this.queryExecutionContext = new HybridQueryExecutionContext(\n this.clientContext,\n this.resourceLink,\n this.query,\n this.options,\n queryPlan,\n this.correlatedActivityId,\n queryRanges,\n );\n }\n\n private async createPipelinedExecutionContext(\n queryPlan: PartitionedQueryExecutionInfo,\n ): Promise<void> {\n const queryInfo = queryPlan.queryInfo;\n if (queryInfo.aggregates.length > 0 && queryInfo.hasSelectValue === false) {\n throw new Error(\"Aggregate queries must use the VALUE keyword\");\n }\n this.queryExecutionContext = new PipelinedQueryExecutionContext(\n this.clientContext,\n this.resourceLink,\n this.query,\n this.options,\n queryPlan,\n this.correlatedActivityId,\n );\n }\n\n private async fetchQueryPlan(diagnosticNode: DiagnosticNodeInternal): Promise<any> {\n if (!this.queryPlanPromise && this.resourceType === ResourceType.item) {\n return this.clientContext\n .getQueryPlan(\n getPathFromLink(this.resourceLink) + \"/docs\",\n ResourceType.item,\n this.resourceLink,\n this.query,\n this.options,\n diagnosticNode,\n this.correlatedActivityId,\n )\n .catch((error: any) => error); // Without this catch, node reports an unhandled rejection. So we stash the promise as resolved even if it errored.\n }\n return this.queryPlanPromise;\n }\n\n private needsQueryPlan(error: ErrorResponse): error is ErrorResponse {\n if (\n error.body?.additionalErrorInfo ||\n error.message.includes(\"Cross partition query only supports\")\n ) {\n return error.code === StatusCodes.BadRequest && this.resourceType === ResourceType.item;\n } else {\n throw error;\n }\n }\n\n private initPromise: Promise<void>;\n /**\n * @internal\n */\n public async init(diagnosticNode: DiagnosticNodeInternal): Promise<void> {\n if (this.isInitialized === true) {\n return;\n }\n if (this.initPromise === undefined) {\n this.initPromise = this._init(diagnosticNode);\n }\n return this.initPromise;\n }\n private async _init(diagnosticNode: DiagnosticNodeInternal): Promise<void> {\n if (this.options.forceQueryPlan === true && this.resourceType === ResourceType.item) {\n await this.createExecutionContext(diagnosticNode);\n }\n this.isInitialized = true;\n }\n\n private handleSplitError(err: any): void {\n if (err.code === 410) {\n const error = new Error(\n \"Encountered partition split and could not recover. This request is retryable\",\n ) as any;\n error.code = 503;\n error.originalError = err;\n throw error;\n } else {\n throw err;\n }\n }\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
  export class ClientSideMetrics {
4
+ requestCharge;
4
5
  constructor(requestCharge) {
5
6
  this.requestCharge = requestCharge;
6
7
  }
@@ -17,6 +18,7 @@ export class ClientSideMetrics {
17
18
  }
18
19
  return new ClientSideMetrics(requestCharge);
19
20
  }
21
+ static zero = new ClientSideMetrics(0);
20
22
  static createFromArray(...clientSideMetricsArray) {
21
23
  if (clientSideMetricsArray == null) {
22
24
  throw new Error("clientSideMetricsArray is null or undefined item(s)");
@@ -24,5 +26,4 @@ export class ClientSideMetrics {
24
26
  return this.zero.add(...clientSideMetricsArray);
25
27
  }
26
28
  }
27
- ClientSideMetrics.zero = new ClientSideMetrics(0);
28
29
  //# sourceMappingURL=clientSideMetrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientSideMetrics.js","sourceRoot":"","sources":["../../../src/queryMetrics/clientSideMetrics.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,OAAO,iBAAiB;IAC5B,YAA4B,aAAqB;QAArB,kBAAa,GAAb,aAAa,CAAQ;IAAG,CAAC;IAErD;;OAEG;IACI,GAAG,CAAC,GAAG,sBAA2C;QACvD,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACvC,KAAK,MAAM,iBAAiB,IAAI,sBAAsB,EAAE,CAAC;YACvD,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YAED,aAAa,IAAI,iBAAiB,CAAC,aAAa,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAIM,MAAM,CAAC,eAAe,CAAC,GAAG,sBAA2C;QAC1E,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAClD,CAAC;;AARsB,sBAAI,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class ClientSideMetrics {\n constructor(public readonly requestCharge: number) {}\n\n /**\n * Adds one or more ClientSideMetrics to a copy of this instance and returns the result.\n */\n public add(...clientSideMetricsArray: ClientSideMetrics[]): ClientSideMetrics {\n let requestCharge = this.requestCharge;\n for (const clientSideMetrics of clientSideMetricsArray) {\n if (clientSideMetrics == null) {\n throw new Error(\"clientSideMetrics has null or undefined item(s)\");\n }\n\n requestCharge += clientSideMetrics.requestCharge;\n }\n\n return new ClientSideMetrics(requestCharge);\n }\n\n public static readonly zero = new ClientSideMetrics(0);\n\n public static createFromArray(...clientSideMetricsArray: ClientSideMetrics[]): ClientSideMetrics {\n if (clientSideMetricsArray == null) {\n throw new Error(\"clientSideMetricsArray is null or undefined item(s)\");\n }\n\n return this.zero.add(...clientSideMetricsArray);\n }\n}\n"]}
1
+ {"version":3,"file":"clientSideMetrics.js","sourceRoot":"","sources":["../../../src/queryMetrics/clientSideMetrics.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,OAAO,iBAAiB;IACA;IAA5B,YAA4B,aAAqB;QAArB,kBAAa,GAAb,aAAa,CAAQ;IAAG,CAAC;IAErD;;OAEG;IACI,GAAG,CAAC,GAAG,sBAA2C;QACvD,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACvC,KAAK,MAAM,iBAAiB,IAAI,sBAAsB,EAAE,CAAC;YACvD,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YAED,aAAa,IAAI,iBAAiB,CAAC,aAAa,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAU,IAAI,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAEhD,MAAM,CAAC,eAAe,CAAC,GAAG,sBAA2C;QAC1E,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAClD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class ClientSideMetrics {\n constructor(public readonly requestCharge: number) {}\n\n /**\n * Adds one or more ClientSideMetrics to a copy of this instance and returns the result.\n */\n public add(...clientSideMetricsArray: ClientSideMetrics[]): ClientSideMetrics {\n let requestCharge = this.requestCharge;\n for (const clientSideMetrics of clientSideMetricsArray) {\n if (clientSideMetrics == null) {\n throw new Error(\"clientSideMetrics has null or undefined item(s)\");\n }\n\n requestCharge += clientSideMetrics.requestCharge;\n }\n\n return new ClientSideMetrics(requestCharge);\n }\n\n public static readonly zero = new ClientSideMetrics(0);\n\n public static createFromArray(...clientSideMetricsArray: ClientSideMetrics[]): ClientSideMetrics {\n if (clientSideMetricsArray == null) {\n throw new Error(\"clientSideMetricsArray is null or undefined item(s)\");\n }\n\n return this.zero.add(...clientSideMetricsArray);\n }\n}\n"]}
@@ -7,6 +7,19 @@ import { QueryPreparationTimes } from "./queryPreparationTime.js";
7
7
  import { RuntimeExecutionTimes } from "./runtimeExecutionTimes.js";
8
8
  import { TimeSpan } from "./timeSpan.js";
9
9
  export class QueryMetrics {
10
+ retrievedDocumentCount;
11
+ retrievedDocumentSize;
12
+ outputDocumentCount;
13
+ outputDocumentSize;
14
+ indexHitDocumentCount;
15
+ totalQueryExecutionTime;
16
+ queryPreparationTimes;
17
+ indexLookupTime;
18
+ documentLoadTime;
19
+ vmExecutionTime;
20
+ runtimeExecutionTimes;
21
+ documentWriteTime;
22
+ clientSideMetrics;
10
23
  constructor(retrievedDocumentCount, retrievedDocumentSize, outputDocumentCount, outputDocumentSize, indexHitDocumentCount, totalQueryExecutionTime, queryPreparationTimes, indexLookupTime, documentLoadTime, vmExecutionTime, runtimeExecutionTimes, documentWriteTime, clientSideMetrics) {
11
24
  this.retrievedDocumentCount = retrievedDocumentCount;
12
25
  this.retrievedDocumentSize = retrievedDocumentSize;
@@ -117,6 +130,7 @@ export class QueryMetrics {
117
130
  "=" +
118
131
  this.documentWriteTime.totalMilliseconds());
119
132
  }
133
+ static zero = new QueryMetrics(0, 0, 0, 0, 0, TimeSpan.zero, QueryPreparationTimes.zero, TimeSpan.zero, TimeSpan.zero, TimeSpan.zero, RuntimeExecutionTimes.zero, TimeSpan.zero, ClientSideMetrics.zero);
120
134
  /**
121
135
  * Returns a new instance of the QueryMetrics class that is the aggregation of an array of query metrics.
122
136
  */
@@ -141,5 +155,4 @@ export class QueryMetrics {
141
155
  return new QueryMetrics(retrievedDocumentCount, retrievedDocumentSize, outputDocumentCount, outputDocumentSize, indexHitCount, totalQueryExecutionTime, QueryPreparationTimes.createFromDelimitedString(delimitedString), timeSpanFromMetrics(metrics, QueryMetricsConstants.IndexLookupTimeInMs), timeSpanFromMetrics(metrics, QueryMetricsConstants.DocumentLoadTimeInMs), timeSpanFromMetrics(metrics, QueryMetricsConstants.VMExecutionTimeInMs), RuntimeExecutionTimes.createFromDelimitedString(delimitedString), timeSpanFromMetrics(metrics, QueryMetricsConstants.DocumentWriteTimeInMs), clientSideMetrics || ClientSideMetrics.zero);
142
156
  }
143
157
  }
144
- QueryMetrics.zero = new QueryMetrics(0, 0, 0, 0, 0, TimeSpan.zero, QueryPreparationTimes.zero, TimeSpan.zero, TimeSpan.zero, TimeSpan.zero, RuntimeExecutionTimes.zero, TimeSpan.zero, ClientSideMetrics.zero);
145
158
  //# sourceMappingURL=queryMetrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryMetrics.js","sourceRoot":"","sources":["../../../src/queryMetrics/queryMetrics.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,YAAY;IACvB,YACkB,sBAA8B,EAC9B,qBAA6B,EAC7B,mBAA2B,EAC3B,kBAA0B,EAC1B,qBAA6B,EAC7B,uBAAiC,EACjC,qBAA4C,EAC5C,eAAyB,EACzB,gBAA0B,EAC1B,eAAyB,EACzB,qBAA4C,EAC5C,iBAA2B,EAC3B,iBAAoC;QAZpC,2BAAsB,GAAtB,sBAAsB,CAAQ;QAC9B,0BAAqB,GAArB,qBAAqB,CAAQ;QAC7B,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,uBAAkB,GAAlB,kBAAkB,CAAQ;QAC1B,0BAAqB,GAArB,qBAAqB,CAAQ;QAC7B,4BAAuB,GAAvB,uBAAuB,CAAU;QACjC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,oBAAe,GAAf,eAAe,CAAU;QACzB,qBAAgB,GAAhB,gBAAgB,CAAU;QAC1B,oBAAe,GAAf,eAAe,CAAU;QACzB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,sBAAiB,GAAjB,iBAAiB,CAAU;QAC3B,sBAAiB,GAAjB,iBAAiB,CAAmB;IACnD,CAAC;IAEJ;;;OAGG;IACH,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,sBAAsB,KAAK,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC;IAC/D,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,iBAAiC;QAC1C,IAAI,sBAAsB,GAAG,CAAC,CAAC;QAC/B,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,uBAAuB,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC5C,MAAM,0BAA0B,GAAG,EAAE,CAAC;QACtC,IAAI,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC;QACpC,IAAI,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrC,IAAI,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC;QACpC,MAAM,0BAA0B,GAAG,EAAE,CAAC;QACtC,IAAI,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC;QACtC,MAAM,2BAA2B,GAAG,EAAE,CAAC;QAEvC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,KAAK,MAAM,YAAY,IAAI,iBAAiB,EAAE,CAAC;YAC7C,IAAI,YAAY,EAAE,CAAC;gBACjB,sBAAsB,IAAI,YAAY,CAAC,sBAAsB,CAAC;gBAC9D,qBAAqB,IAAI,YAAY,CAAC,qBAAqB,CAAC;gBAC5D,mBAAmB,IAAI,YAAY,CAAC,mBAAmB,CAAC;gBACxD,kBAAkB,IAAI,YAAY,CAAC,kBAAkB,CAAC;gBACtD,qBAAqB,IAAI,YAAY,CAAC,qBAAqB,CAAC;gBAC5D,uBAAuB,GAAG,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;gBAC5F,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;gBACpE,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;gBACpE,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACvE,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;gBACpE,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;gBACpE,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBAC1E,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,YAAY,CACrB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,CAAC,eAAe,CAAC,0BAA0B,CAAC,EACjE,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,qBAAqB,CAAC,eAAe,CAAC,0BAA0B,CAAC,EACjE,iBAAiB,EACjB,iBAAiB,CAAC,eAAe,CAAC,GAAG,2BAA2B,CAAC,CAClE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,iBAAiB;QACtB,OAAO,CACL,qBAAqB,CAAC,sBAAsB;YAC5C,GAAG;YACH,IAAI,CAAC,sBAAsB;YAC3B,GAAG;YACH,qBAAqB,CAAC,qBAAqB;YAC3C,GAAG;YACH,IAAI,CAAC,qBAAqB;YAC1B,GAAG;YACH,qBAAqB,CAAC,mBAAmB;YACzC,GAAG;YACH,IAAI,CAAC,mBAAmB;YACxB,GAAG;YACH,qBAAqB,CAAC,kBAAkB;YACxC,GAAG;YACH,IAAI,CAAC,kBAAkB;YACvB,GAAG;YACH,qBAAqB,CAAC,aAAa;YACnC,GAAG;YACH,IAAI,CAAC,aAAa;YAClB,GAAG;YACH,qBAAqB,CAAC,2BAA2B;YACjD,GAAG;YACH,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,EAAE;YAChD,GAAG;YACH,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE;YAC9C,GAAG;YACH,qBAAqB,CAAC,mBAAmB;YACzC,GAAG;YACH,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE;YACxC,GAAG;YACH,qBAAqB,CAAC,oBAAoB;YAC1C,GAAG;YACH,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;YACzC,GAAG;YACH,qBAAqB,CAAC,mBAAmB;YACzC,GAAG;YACH,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE;YACxC,GAAG;YACH,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE;YAC9C,GAAG;YACH,qBAAqB,CAAC,qBAAqB;YAC3C,GAAG;YACH,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAC3C,CAAC;IACJ,CAAC;IAkBD;;OAEG;IACI,MAAM,CAAC,eAAe,CAAC,iBAAiC;QAC7D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,yBAAyB,CACrC,eAAuB,EACvB,iBAAqC;QAErC,MAAM,OAAO,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC1F,MAAM,aAAa,GAAG,aAAa,GAAG,sBAAsB,CAAC;QAC7D,MAAM,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClF,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,uBAAuB,GAAG,mBAAmB,CACjD,OAAO,EACP,qBAAqB,CAAC,2BAA2B,CAClD,CAAC;QACF,OAAO,IAAI,YAAY,CACrB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,uBAAuB,EACvB,qBAAqB,CAAC,yBAAyB,CAAC,eAAe,CAAC,EAChE,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,EACvE,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,CAAC,oBAAoB,CAAC,EACxE,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,EACvE,qBAAqB,CAAC,yBAAyB,CAAC,eAAe,CAAC,EAChE,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,EACzE,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAC5C,CAAC;IACJ,CAAC;;AA7DsB,iBAAI,GAAG,IAAI,YAAY,CAC5C,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,QAAQ,CAAC,IAAI,EACb,qBAAqB,CAAC,IAAI,EAC1B,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,IAAI,EACb,qBAAqB,CAAC,IAAI,EAC1B,QAAQ,CAAC,IAAI,EACb,iBAAiB,CAAC,IAAI,CACvB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { ClientSideMetrics } from \"./clientSideMetrics.js\";\nimport QueryMetricsConstants from \"./queryMetricsConstants.js\";\nimport { parseDelimitedString, timeSpanFromMetrics } from \"./queryMetricsUtils.js\";\nimport { QueryPreparationTimes } from \"./queryPreparationTime.js\";\nimport { RuntimeExecutionTimes } from \"./runtimeExecutionTimes.js\";\nimport { TimeSpan } from \"./timeSpan.js\";\n\nexport class QueryMetrics {\n constructor(\n public readonly retrievedDocumentCount: number,\n public readonly retrievedDocumentSize: number,\n public readonly outputDocumentCount: number,\n public readonly outputDocumentSize: number,\n public readonly indexHitDocumentCount: number,\n public readonly totalQueryExecutionTime: TimeSpan,\n public readonly queryPreparationTimes: QueryPreparationTimes,\n public readonly indexLookupTime: TimeSpan,\n public readonly documentLoadTime: TimeSpan,\n public readonly vmExecutionTime: TimeSpan,\n public readonly runtimeExecutionTimes: RuntimeExecutionTimes,\n public readonly documentWriteTime: TimeSpan,\n public readonly clientSideMetrics: ClientSideMetrics,\n ) {}\n\n /**\n * Gets the IndexHitRatio\n * @hidden\n */\n public get indexHitRatio(): number {\n return this.retrievedDocumentCount === 0\n ? 1\n : this.indexHitDocumentCount / this.retrievedDocumentCount;\n }\n\n /**\n * returns a new QueryMetrics instance that is the addition of this and the arguments.\n */\n public add(queryMetricsArray: QueryMetrics[]): QueryMetrics {\n let retrievedDocumentCount = 0;\n let retrievedDocumentSize = 0;\n let outputDocumentCount = 0;\n let outputDocumentSize = 0;\n let indexHitDocumentCount = 0;\n let totalQueryExecutionTime = TimeSpan.zero;\n const queryPreparationTimesArray = [];\n let indexLookupTime = TimeSpan.zero;\n let documentLoadTime = TimeSpan.zero;\n let vmExecutionTime = TimeSpan.zero;\n const runtimeExecutionTimesArray = [];\n let documentWriteTime = TimeSpan.zero;\n const clientSideQueryMetricsArray = [];\n\n queryMetricsArray.push(this);\n\n for (const queryMetrics of queryMetricsArray) {\n if (queryMetrics) {\n retrievedDocumentCount += queryMetrics.retrievedDocumentCount;\n retrievedDocumentSize += queryMetrics.retrievedDocumentSize;\n outputDocumentCount += queryMetrics.outputDocumentCount;\n outputDocumentSize += queryMetrics.outputDocumentSize;\n indexHitDocumentCount += queryMetrics.indexHitDocumentCount;\n totalQueryExecutionTime = totalQueryExecutionTime.add(queryMetrics.totalQueryExecutionTime);\n queryPreparationTimesArray.push(queryMetrics.queryPreparationTimes);\n indexLookupTime = indexLookupTime.add(queryMetrics.indexLookupTime);\n documentLoadTime = documentLoadTime.add(queryMetrics.documentLoadTime);\n vmExecutionTime = vmExecutionTime.add(queryMetrics.vmExecutionTime);\n runtimeExecutionTimesArray.push(queryMetrics.runtimeExecutionTimes);\n documentWriteTime = documentWriteTime.add(queryMetrics.documentWriteTime);\n clientSideQueryMetricsArray.push(queryMetrics.clientSideMetrics);\n }\n }\n\n return new QueryMetrics(\n retrievedDocumentCount,\n retrievedDocumentSize,\n outputDocumentCount,\n outputDocumentSize,\n indexHitDocumentCount,\n totalQueryExecutionTime,\n QueryPreparationTimes.createFromArray(queryPreparationTimesArray),\n indexLookupTime,\n documentLoadTime,\n vmExecutionTime,\n RuntimeExecutionTimes.createFromArray(runtimeExecutionTimesArray),\n documentWriteTime,\n ClientSideMetrics.createFromArray(...clientSideQueryMetricsArray),\n );\n }\n\n /**\n * Output the QueryMetrics as a delimited string.\n * @hidden\n */\n public toDelimitedString(): string {\n return (\n QueryMetricsConstants.RetrievedDocumentCount +\n \"=\" +\n this.retrievedDocumentCount +\n \";\" +\n QueryMetricsConstants.RetrievedDocumentSize +\n \"=\" +\n this.retrievedDocumentSize +\n \";\" +\n QueryMetricsConstants.OutputDocumentCount +\n \"=\" +\n this.outputDocumentCount +\n \";\" +\n QueryMetricsConstants.OutputDocumentSize +\n \"=\" +\n this.outputDocumentSize +\n \";\" +\n QueryMetricsConstants.IndexHitRatio +\n \"=\" +\n this.indexHitRatio +\n \";\" +\n QueryMetricsConstants.TotalQueryExecutionTimeInMs +\n \"=\" +\n this.totalQueryExecutionTime.totalMilliseconds() +\n \";\" +\n this.queryPreparationTimes.toDelimitedString() +\n \";\" +\n QueryMetricsConstants.IndexLookupTimeInMs +\n \"=\" +\n this.indexLookupTime.totalMilliseconds() +\n \";\" +\n QueryMetricsConstants.DocumentLoadTimeInMs +\n \"=\" +\n this.documentLoadTime.totalMilliseconds() +\n \";\" +\n QueryMetricsConstants.VMExecutionTimeInMs +\n \"=\" +\n this.vmExecutionTime.totalMilliseconds() +\n \";\" +\n this.runtimeExecutionTimes.toDelimitedString() +\n \";\" +\n QueryMetricsConstants.DocumentWriteTimeInMs +\n \"=\" +\n this.documentWriteTime.totalMilliseconds()\n );\n }\n\n public static readonly zero = new QueryMetrics(\n 0,\n 0,\n 0,\n 0,\n 0,\n TimeSpan.zero,\n QueryPreparationTimes.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n RuntimeExecutionTimes.zero,\n TimeSpan.zero,\n ClientSideMetrics.zero,\n );\n\n /**\n * Returns a new instance of the QueryMetrics class that is the aggregation of an array of query metrics.\n */\n public static createFromArray(queryMetricsArray: QueryMetrics[]): QueryMetrics {\n if (!queryMetricsArray) {\n throw new Error(\"queryMetricsArray is null or undefined item(s)\");\n }\n\n return QueryMetrics.zero.add(queryMetricsArray);\n }\n\n /**\n * Returns a new instance of the QueryMetrics class this is deserialized from a delimited string.\n */\n public static createFromDelimitedString(\n delimitedString: string,\n clientSideMetrics?: ClientSideMetrics,\n ): QueryMetrics {\n const metrics = parseDelimitedString(delimitedString);\n\n const indexHitRatio = metrics[QueryMetricsConstants.IndexHitRatio] || 0;\n const retrievedDocumentCount = metrics[QueryMetricsConstants.RetrievedDocumentCount] || 0;\n const indexHitCount = indexHitRatio * retrievedDocumentCount;\n const outputDocumentCount = metrics[QueryMetricsConstants.OutputDocumentCount] || 0;\n const outputDocumentSize = metrics[QueryMetricsConstants.OutputDocumentSize] || 0;\n const retrievedDocumentSize = metrics[QueryMetricsConstants.RetrievedDocumentSize] || 0;\n const totalQueryExecutionTime = timeSpanFromMetrics(\n metrics,\n QueryMetricsConstants.TotalQueryExecutionTimeInMs,\n );\n return new QueryMetrics(\n retrievedDocumentCount,\n retrievedDocumentSize,\n outputDocumentCount,\n outputDocumentSize,\n indexHitCount,\n totalQueryExecutionTime,\n QueryPreparationTimes.createFromDelimitedString(delimitedString),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.IndexLookupTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.DocumentLoadTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.VMExecutionTimeInMs),\n RuntimeExecutionTimes.createFromDelimitedString(delimitedString),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.DocumentWriteTimeInMs),\n clientSideMetrics || ClientSideMetrics.zero,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"queryMetrics.js","sourceRoot":"","sources":["../../../src/queryMetrics/queryMetrics.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { ClientSideMetrics } from \"./clientSideMetrics.js\";\nimport QueryMetricsConstants from \"./queryMetricsConstants.js\";\nimport { parseDelimitedString, timeSpanFromMetrics } from \"./queryMetricsUtils.js\";\nimport { QueryPreparationTimes } from \"./queryPreparationTime.js\";\nimport { RuntimeExecutionTimes } from \"./runtimeExecutionTimes.js\";\nimport { TimeSpan } from \"./timeSpan.js\";\n\nexport class QueryMetrics {\n constructor(\n public readonly retrievedDocumentCount: number,\n public readonly retrievedDocumentSize: number,\n public readonly outputDocumentCount: number,\n public readonly outputDocumentSize: number,\n public readonly indexHitDocumentCount: number,\n public readonly totalQueryExecutionTime: TimeSpan,\n public readonly queryPreparationTimes: QueryPreparationTimes,\n public readonly indexLookupTime: TimeSpan,\n public readonly documentLoadTime: TimeSpan,\n public readonly vmExecutionTime: TimeSpan,\n public readonly runtimeExecutionTimes: RuntimeExecutionTimes,\n public readonly documentWriteTime: TimeSpan,\n public readonly clientSideMetrics: ClientSideMetrics,\n ) {}\n\n /**\n * Gets the IndexHitRatio\n * @hidden\n */\n public get indexHitRatio(): number {\n return this.retrievedDocumentCount === 0\n ? 1\n : this.indexHitDocumentCount / this.retrievedDocumentCount;\n }\n\n /**\n * returns a new QueryMetrics instance that is the addition of this and the arguments.\n */\n public add(queryMetricsArray: QueryMetrics[]): QueryMetrics {\n let retrievedDocumentCount = 0;\n let retrievedDocumentSize = 0;\n let outputDocumentCount = 0;\n let outputDocumentSize = 0;\n let indexHitDocumentCount = 0;\n let totalQueryExecutionTime = TimeSpan.zero;\n const queryPreparationTimesArray = [];\n let indexLookupTime = TimeSpan.zero;\n let documentLoadTime = TimeSpan.zero;\n let vmExecutionTime = TimeSpan.zero;\n const runtimeExecutionTimesArray = [];\n let documentWriteTime = TimeSpan.zero;\n const clientSideQueryMetricsArray = [];\n\n queryMetricsArray.push(this);\n\n for (const queryMetrics of queryMetricsArray) {\n if (queryMetrics) {\n retrievedDocumentCount += queryMetrics.retrievedDocumentCount;\n retrievedDocumentSize += queryMetrics.retrievedDocumentSize;\n outputDocumentCount += queryMetrics.outputDocumentCount;\n outputDocumentSize += queryMetrics.outputDocumentSize;\n indexHitDocumentCount += queryMetrics.indexHitDocumentCount;\n totalQueryExecutionTime = totalQueryExecutionTime.add(queryMetrics.totalQueryExecutionTime);\n queryPreparationTimesArray.push(queryMetrics.queryPreparationTimes);\n indexLookupTime = indexLookupTime.add(queryMetrics.indexLookupTime);\n documentLoadTime = documentLoadTime.add(queryMetrics.documentLoadTime);\n vmExecutionTime = vmExecutionTime.add(queryMetrics.vmExecutionTime);\n runtimeExecutionTimesArray.push(queryMetrics.runtimeExecutionTimes);\n documentWriteTime = documentWriteTime.add(queryMetrics.documentWriteTime);\n clientSideQueryMetricsArray.push(queryMetrics.clientSideMetrics);\n }\n }\n\n return new QueryMetrics(\n retrievedDocumentCount,\n retrievedDocumentSize,\n outputDocumentCount,\n outputDocumentSize,\n indexHitDocumentCount,\n totalQueryExecutionTime,\n QueryPreparationTimes.createFromArray(queryPreparationTimesArray),\n indexLookupTime,\n documentLoadTime,\n vmExecutionTime,\n RuntimeExecutionTimes.createFromArray(runtimeExecutionTimesArray),\n documentWriteTime,\n ClientSideMetrics.createFromArray(...clientSideQueryMetricsArray),\n );\n }\n\n /**\n * Output the QueryMetrics as a delimited string.\n * @hidden\n */\n public toDelimitedString(): string {\n return (\n QueryMetricsConstants.RetrievedDocumentCount +\n \"=\" +\n this.retrievedDocumentCount +\n \";\" +\n QueryMetricsConstants.RetrievedDocumentSize +\n \"=\" +\n this.retrievedDocumentSize +\n \";\" +\n QueryMetricsConstants.OutputDocumentCount +\n \"=\" +\n this.outputDocumentCount +\n \";\" +\n QueryMetricsConstants.OutputDocumentSize +\n \"=\" +\n this.outputDocumentSize +\n \";\" +\n QueryMetricsConstants.IndexHitRatio +\n \"=\" +\n this.indexHitRatio +\n \";\" +\n QueryMetricsConstants.TotalQueryExecutionTimeInMs +\n \"=\" +\n this.totalQueryExecutionTime.totalMilliseconds() +\n \";\" +\n this.queryPreparationTimes.toDelimitedString() +\n \";\" +\n QueryMetricsConstants.IndexLookupTimeInMs +\n \"=\" +\n this.indexLookupTime.totalMilliseconds() +\n \";\" +\n QueryMetricsConstants.DocumentLoadTimeInMs +\n \"=\" +\n this.documentLoadTime.totalMilliseconds() +\n \";\" +\n QueryMetricsConstants.VMExecutionTimeInMs +\n \"=\" +\n this.vmExecutionTime.totalMilliseconds() +\n \";\" +\n this.runtimeExecutionTimes.toDelimitedString() +\n \";\" +\n QueryMetricsConstants.DocumentWriteTimeInMs +\n \"=\" +\n this.documentWriteTime.totalMilliseconds()\n );\n }\n\n public static readonly zero = new QueryMetrics(\n 0,\n 0,\n 0,\n 0,\n 0,\n TimeSpan.zero,\n QueryPreparationTimes.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n RuntimeExecutionTimes.zero,\n TimeSpan.zero,\n ClientSideMetrics.zero,\n );\n\n /**\n * Returns a new instance of the QueryMetrics class that is the aggregation of an array of query metrics.\n */\n public static createFromArray(queryMetricsArray: QueryMetrics[]): QueryMetrics {\n if (!queryMetricsArray) {\n throw new Error(\"queryMetricsArray is null or undefined item(s)\");\n }\n\n return QueryMetrics.zero.add(queryMetricsArray);\n }\n\n /**\n * Returns a new instance of the QueryMetrics class this is deserialized from a delimited string.\n */\n public static createFromDelimitedString(\n delimitedString: string,\n clientSideMetrics?: ClientSideMetrics,\n ): QueryMetrics {\n const metrics = parseDelimitedString(delimitedString);\n\n const indexHitRatio = metrics[QueryMetricsConstants.IndexHitRatio] || 0;\n const retrievedDocumentCount = metrics[QueryMetricsConstants.RetrievedDocumentCount] || 0;\n const indexHitCount = indexHitRatio * retrievedDocumentCount;\n const outputDocumentCount = metrics[QueryMetricsConstants.OutputDocumentCount] || 0;\n const outputDocumentSize = metrics[QueryMetricsConstants.OutputDocumentSize] || 0;\n const retrievedDocumentSize = metrics[QueryMetricsConstants.RetrievedDocumentSize] || 0;\n const totalQueryExecutionTime = timeSpanFromMetrics(\n metrics,\n QueryMetricsConstants.TotalQueryExecutionTimeInMs,\n );\n return new QueryMetrics(\n retrievedDocumentCount,\n retrievedDocumentSize,\n outputDocumentCount,\n outputDocumentSize,\n indexHitCount,\n totalQueryExecutionTime,\n QueryPreparationTimes.createFromDelimitedString(delimitedString),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.IndexLookupTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.DocumentLoadTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.VMExecutionTimeInMs),\n RuntimeExecutionTimes.createFromDelimitedString(delimitedString),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.DocumentWriteTimeInMs),\n clientSideMetrics || ClientSideMetrics.zero,\n );\n }\n}\n"]}
@@ -4,6 +4,10 @@ import QueryMetricsConstants from "./queryMetricsConstants.js";
4
4
  import { parseDelimitedString, timeSpanFromMetrics } from "./queryMetricsUtils.js";
5
5
  import { TimeSpan } from "./timeSpan.js";
6
6
  export class QueryPreparationTimes {
7
+ queryCompilationTime;
8
+ logicalPlanBuildTime;
9
+ physicalPlanBuildTime;
10
+ queryOptimizationTime;
7
11
  constructor(queryCompilationTime, logicalPlanBuildTime, physicalPlanBuildTime, queryOptimizationTime) {
8
12
  this.queryCompilationTime = queryCompilationTime;
9
13
  this.logicalPlanBuildTime = logicalPlanBuildTime;
@@ -38,6 +42,7 @@ export class QueryPreparationTimes {
38
42
  `${QueryMetricsConstants.PhysicalPlanBuildTimeInMs}=${this.physicalPlanBuildTime.totalMilliseconds()};` +
39
43
  `${QueryMetricsConstants.QueryOptimizationTimeInMs}=${this.queryOptimizationTime.totalMilliseconds()}`);
40
44
  }
45
+ static zero = new QueryPreparationTimes(TimeSpan.zero, TimeSpan.zero, TimeSpan.zero, TimeSpan.zero);
41
46
  /**
42
47
  * Returns a new instance of the QueryPreparationTimes class that is the
43
48
  * aggregation of an array of QueryPreparationTimes.
@@ -56,5 +61,4 @@ export class QueryPreparationTimes {
56
61
  return new QueryPreparationTimes(timeSpanFromMetrics(metrics, QueryMetricsConstants.QueryCompileTimeInMs), timeSpanFromMetrics(metrics, QueryMetricsConstants.LogicalPlanBuildTimeInMs), timeSpanFromMetrics(metrics, QueryMetricsConstants.PhysicalPlanBuildTimeInMs), timeSpanFromMetrics(metrics, QueryMetricsConstants.QueryOptimizationTimeInMs));
57
62
  }
58
63
  }
59
- QueryPreparationTimes.zero = new QueryPreparationTimes(TimeSpan.zero, TimeSpan.zero, TimeSpan.zero, TimeSpan.zero);
60
64
  //# sourceMappingURL=queryPreparationTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryPreparationTime.js","sourceRoot":"","sources":["../../../src/queryMetrics/queryPreparationTime.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport QueryMetricsConstants from \"./queryMetricsConstants.js\";\nimport { parseDelimitedString, timeSpanFromMetrics } from \"./queryMetricsUtils.js\";\nimport { TimeSpan } from \"./timeSpan.js\";\n\nexport class QueryPreparationTimes {\n constructor(\n public readonly queryCompilationTime: TimeSpan,\n public readonly logicalPlanBuildTime: TimeSpan,\n public readonly physicalPlanBuildTime: TimeSpan,\n public readonly queryOptimizationTime: TimeSpan,\n ) {}\n\n /**\n * returns a new QueryPreparationTimes instance that is the addition of this and the arguments.\n */\n public add(...queryPreparationTimesArray: QueryPreparationTimes[]): QueryPreparationTimes {\n let queryCompilationTime = this.queryCompilationTime;\n let logicalPlanBuildTime = this.logicalPlanBuildTime;\n let physicalPlanBuildTime = this.physicalPlanBuildTime;\n let queryOptimizationTime = this.queryOptimizationTime;\n\n for (const queryPreparationTimes of queryPreparationTimesArray) {\n if (queryPreparationTimes == null) {\n throw new Error(\"queryPreparationTimesArray has null or undefined item(s)\");\n }\n\n queryCompilationTime = queryCompilationTime.add(queryPreparationTimes.queryCompilationTime);\n logicalPlanBuildTime = logicalPlanBuildTime.add(queryPreparationTimes.logicalPlanBuildTime);\n physicalPlanBuildTime = physicalPlanBuildTime.add(\n queryPreparationTimes.physicalPlanBuildTime,\n );\n queryOptimizationTime = queryOptimizationTime.add(\n queryPreparationTimes.queryOptimizationTime,\n );\n }\n\n return new QueryPreparationTimes(\n queryCompilationTime,\n logicalPlanBuildTime,\n physicalPlanBuildTime,\n queryOptimizationTime,\n );\n }\n\n /**\n * Output the QueryPreparationTimes as a delimited string.\n */\n public toDelimitedString(): string {\n return (\n `${\n QueryMetricsConstants.QueryCompileTimeInMs\n }=${this.queryCompilationTime.totalMilliseconds()};` +\n `${\n QueryMetricsConstants.LogicalPlanBuildTimeInMs\n }=${this.logicalPlanBuildTime.totalMilliseconds()};` +\n `${\n QueryMetricsConstants.PhysicalPlanBuildTimeInMs\n }=${this.physicalPlanBuildTime.totalMilliseconds()};` +\n `${\n QueryMetricsConstants.QueryOptimizationTimeInMs\n }=${this.queryOptimizationTime.totalMilliseconds()}`\n );\n }\n\n public static readonly zero = new QueryPreparationTimes(\n TimeSpan.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n );\n\n /**\n * Returns a new instance of the QueryPreparationTimes class that is the\n * aggregation of an array of QueryPreparationTimes.\n */\n public static createFromArray(\n queryPreparationTimesArray: QueryPreparationTimes[],\n ): QueryPreparationTimes {\n if (queryPreparationTimesArray == null) {\n throw new Error(\"queryPreparationTimesArray is null or undefined item(s)\");\n }\n\n return QueryPreparationTimes.zero.add(...queryPreparationTimesArray);\n }\n\n /**\n * Returns a new instance of the QueryPreparationTimes class this is deserialized from a delimited string.\n */\n public static createFromDelimitedString(delimitedString: string): QueryPreparationTimes {\n const metrics = parseDelimitedString(delimitedString);\n\n return new QueryPreparationTimes(\n timeSpanFromMetrics(metrics, QueryMetricsConstants.QueryCompileTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.LogicalPlanBuildTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.PhysicalPlanBuildTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.QueryOptimizationTimeInMs),\n );\n }\n}\n"]}
1
+ {"version":3,"file":"queryPreparationTime.js","sourceRoot":"","sources":["../../../src/queryMetrics/queryPreparationTime.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport QueryMetricsConstants from \"./queryMetricsConstants.js\";\nimport { parseDelimitedString, timeSpanFromMetrics } from \"./queryMetricsUtils.js\";\nimport { TimeSpan } from \"./timeSpan.js\";\n\nexport class QueryPreparationTimes {\n constructor(\n public readonly queryCompilationTime: TimeSpan,\n public readonly logicalPlanBuildTime: TimeSpan,\n public readonly physicalPlanBuildTime: TimeSpan,\n public readonly queryOptimizationTime: TimeSpan,\n ) {}\n\n /**\n * returns a new QueryPreparationTimes instance that is the addition of this and the arguments.\n */\n public add(...queryPreparationTimesArray: QueryPreparationTimes[]): QueryPreparationTimes {\n let queryCompilationTime = this.queryCompilationTime;\n let logicalPlanBuildTime = this.logicalPlanBuildTime;\n let physicalPlanBuildTime = this.physicalPlanBuildTime;\n let queryOptimizationTime = this.queryOptimizationTime;\n\n for (const queryPreparationTimes of queryPreparationTimesArray) {\n if (queryPreparationTimes == null) {\n throw new Error(\"queryPreparationTimesArray has null or undefined item(s)\");\n }\n\n queryCompilationTime = queryCompilationTime.add(queryPreparationTimes.queryCompilationTime);\n logicalPlanBuildTime = logicalPlanBuildTime.add(queryPreparationTimes.logicalPlanBuildTime);\n physicalPlanBuildTime = physicalPlanBuildTime.add(\n queryPreparationTimes.physicalPlanBuildTime,\n );\n queryOptimizationTime = queryOptimizationTime.add(\n queryPreparationTimes.queryOptimizationTime,\n );\n }\n\n return new QueryPreparationTimes(\n queryCompilationTime,\n logicalPlanBuildTime,\n physicalPlanBuildTime,\n queryOptimizationTime,\n );\n }\n\n /**\n * Output the QueryPreparationTimes as a delimited string.\n */\n public toDelimitedString(): string {\n return (\n `${\n QueryMetricsConstants.QueryCompileTimeInMs\n }=${this.queryCompilationTime.totalMilliseconds()};` +\n `${\n QueryMetricsConstants.LogicalPlanBuildTimeInMs\n }=${this.logicalPlanBuildTime.totalMilliseconds()};` +\n `${\n QueryMetricsConstants.PhysicalPlanBuildTimeInMs\n }=${this.physicalPlanBuildTime.totalMilliseconds()};` +\n `${\n QueryMetricsConstants.QueryOptimizationTimeInMs\n }=${this.queryOptimizationTime.totalMilliseconds()}`\n );\n }\n\n public static readonly zero = new QueryPreparationTimes(\n TimeSpan.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n );\n\n /**\n * Returns a new instance of the QueryPreparationTimes class that is the\n * aggregation of an array of QueryPreparationTimes.\n */\n public static createFromArray(\n queryPreparationTimesArray: QueryPreparationTimes[],\n ): QueryPreparationTimes {\n if (queryPreparationTimesArray == null) {\n throw new Error(\"queryPreparationTimesArray is null or undefined item(s)\");\n }\n\n return QueryPreparationTimes.zero.add(...queryPreparationTimesArray);\n }\n\n /**\n * Returns a new instance of the QueryPreparationTimes class this is deserialized from a delimited string.\n */\n public static createFromDelimitedString(delimitedString: string): QueryPreparationTimes {\n const metrics = parseDelimitedString(delimitedString);\n\n return new QueryPreparationTimes(\n timeSpanFromMetrics(metrics, QueryMetricsConstants.QueryCompileTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.LogicalPlanBuildTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.PhysicalPlanBuildTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.QueryOptimizationTimeInMs),\n );\n }\n}\n"]}
@@ -4,6 +4,9 @@ import QueryMetricsConstants from "./queryMetricsConstants.js";
4
4
  import { parseDelimitedString, timeSpanFromMetrics } from "./queryMetricsUtils.js";
5
5
  import { TimeSpan } from "./timeSpan.js";
6
6
  export class RuntimeExecutionTimes {
7
+ queryEngineExecutionTime;
8
+ systemFunctionExecutionTime;
9
+ userDefinedFunctionExecutionTime;
7
10
  constructor(queryEngineExecutionTime, systemFunctionExecutionTime, userDefinedFunctionExecutionTime) {
8
11
  this.queryEngineExecutionTime = queryEngineExecutionTime;
9
12
  this.systemFunctionExecutionTime = systemFunctionExecutionTime;
@@ -33,6 +36,7 @@ export class RuntimeExecutionTimes {
33
36
  return (`${QueryMetricsConstants.SystemFunctionExecuteTimeInMs}=${this.systemFunctionExecutionTime.totalMilliseconds()};` +
34
37
  `${QueryMetricsConstants.UserDefinedFunctionExecutionTimeInMs}=${this.userDefinedFunctionExecutionTime.totalMilliseconds()}`);
35
38
  }
39
+ static zero = new RuntimeExecutionTimes(TimeSpan.zero, TimeSpan.zero, TimeSpan.zero);
36
40
  /**
37
41
  * Returns a new instance of the RuntimeExecutionTimes class that is
38
42
  * the aggregation of an array of RuntimeExecutionTimes.
@@ -60,5 +64,4 @@ export class RuntimeExecutionTimes {
60
64
  return new RuntimeExecutionTimes(queryEngineExecutionTime, timeSpanFromMetrics(metrics, QueryMetricsConstants.SystemFunctionExecuteTimeInMs), timeSpanFromMetrics(metrics, QueryMetricsConstants.UserDefinedFunctionExecutionTimeInMs));
61
65
  }
62
66
  }
63
- RuntimeExecutionTimes.zero = new RuntimeExecutionTimes(TimeSpan.zero, TimeSpan.zero, TimeSpan.zero);
64
67
  //# sourceMappingURL=runtimeExecutionTimes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeExecutionTimes.js","sourceRoot":"","sources":["../../../src/queryMetrics/runtimeExecutionTimes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport QueryMetricsConstants from \"./queryMetricsConstants.js\";\nimport { parseDelimitedString, timeSpanFromMetrics } from \"./queryMetricsUtils.js\";\nimport { TimeSpan } from \"./timeSpan.js\";\n\nexport class RuntimeExecutionTimes {\n constructor(\n public readonly queryEngineExecutionTime: TimeSpan,\n public readonly systemFunctionExecutionTime: TimeSpan,\n public readonly userDefinedFunctionExecutionTime: TimeSpan,\n ) {}\n\n /**\n * returns a new RuntimeExecutionTimes instance that is the addition of this and the arguments.\n */\n public add(...runtimeExecutionTimesArray: RuntimeExecutionTimes[]): RuntimeExecutionTimes {\n let queryEngineExecutionTime = this.queryEngineExecutionTime;\n let systemFunctionExecutionTime = this.systemFunctionExecutionTime;\n let userDefinedFunctionExecutionTime = this.userDefinedFunctionExecutionTime;\n\n for (const runtimeExecutionTimes of runtimeExecutionTimesArray) {\n if (runtimeExecutionTimes == null) {\n throw new Error(\"runtimeExecutionTimes has null or undefined item(s)\");\n }\n\n queryEngineExecutionTime = queryEngineExecutionTime.add(\n runtimeExecutionTimes.queryEngineExecutionTime,\n );\n systemFunctionExecutionTime = systemFunctionExecutionTime.add(\n runtimeExecutionTimes.systemFunctionExecutionTime,\n );\n userDefinedFunctionExecutionTime = userDefinedFunctionExecutionTime.add(\n runtimeExecutionTimes.userDefinedFunctionExecutionTime,\n );\n }\n\n return new RuntimeExecutionTimes(\n queryEngineExecutionTime,\n systemFunctionExecutionTime,\n userDefinedFunctionExecutionTime,\n );\n }\n\n /**\n * Output the RuntimeExecutionTimes as a delimited string.\n */\n public toDelimitedString(): string {\n return (\n `${\n QueryMetricsConstants.SystemFunctionExecuteTimeInMs\n }=${this.systemFunctionExecutionTime.totalMilliseconds()};` +\n `${\n QueryMetricsConstants.UserDefinedFunctionExecutionTimeInMs\n }=${this.userDefinedFunctionExecutionTime.totalMilliseconds()}`\n );\n }\n\n public static readonly zero = new RuntimeExecutionTimes(\n TimeSpan.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n );\n\n /**\n * Returns a new instance of the RuntimeExecutionTimes class that is\n * the aggregation of an array of RuntimeExecutionTimes.\n */\n public static createFromArray(\n runtimeExecutionTimesArray: RuntimeExecutionTimes[],\n ): RuntimeExecutionTimes {\n if (runtimeExecutionTimesArray == null) {\n throw new Error(\"runtimeExecutionTimesArray is null or undefined item(s)\");\n }\n\n return RuntimeExecutionTimes.zero.add(...runtimeExecutionTimesArray);\n }\n\n /**\n * Returns a new instance of the RuntimeExecutionTimes class this is deserialized from a delimited string.\n */\n public static createFromDelimitedString(delimitedString: string): RuntimeExecutionTimes {\n const metrics = parseDelimitedString(delimitedString);\n\n const vmExecutionTime = timeSpanFromMetrics(metrics, QueryMetricsConstants.VMExecutionTimeInMs);\n const indexLookupTime = timeSpanFromMetrics(metrics, QueryMetricsConstants.IndexLookupTimeInMs);\n const documentLoadTime = timeSpanFromMetrics(\n metrics,\n QueryMetricsConstants.DocumentLoadTimeInMs,\n );\n const documentWriteTime = timeSpanFromMetrics(\n metrics,\n QueryMetricsConstants.DocumentWriteTimeInMs,\n );\n\n let queryEngineExecutionTime = TimeSpan.zero;\n queryEngineExecutionTime = queryEngineExecutionTime.add(vmExecutionTime);\n queryEngineExecutionTime = queryEngineExecutionTime.subtract(indexLookupTime);\n queryEngineExecutionTime = queryEngineExecutionTime.subtract(documentLoadTime);\n queryEngineExecutionTime = queryEngineExecutionTime.subtract(documentWriteTime);\n return new RuntimeExecutionTimes(\n queryEngineExecutionTime,\n timeSpanFromMetrics(metrics, QueryMetricsConstants.SystemFunctionExecuteTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.UserDefinedFunctionExecutionTimeInMs),\n );\n }\n}\n"]}
1
+ {"version":3,"file":"runtimeExecutionTimes.js","sourceRoot":"","sources":["../../../src/queryMetrics/runtimeExecutionTimes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport QueryMetricsConstants from \"./queryMetricsConstants.js\";\nimport { parseDelimitedString, timeSpanFromMetrics } from \"./queryMetricsUtils.js\";\nimport { TimeSpan } from \"./timeSpan.js\";\n\nexport class RuntimeExecutionTimes {\n constructor(\n public readonly queryEngineExecutionTime: TimeSpan,\n public readonly systemFunctionExecutionTime: TimeSpan,\n public readonly userDefinedFunctionExecutionTime: TimeSpan,\n ) {}\n\n /**\n * returns a new RuntimeExecutionTimes instance that is the addition of this and the arguments.\n */\n public add(...runtimeExecutionTimesArray: RuntimeExecutionTimes[]): RuntimeExecutionTimes {\n let queryEngineExecutionTime = this.queryEngineExecutionTime;\n let systemFunctionExecutionTime = this.systemFunctionExecutionTime;\n let userDefinedFunctionExecutionTime = this.userDefinedFunctionExecutionTime;\n\n for (const runtimeExecutionTimes of runtimeExecutionTimesArray) {\n if (runtimeExecutionTimes == null) {\n throw new Error(\"runtimeExecutionTimes has null or undefined item(s)\");\n }\n\n queryEngineExecutionTime = queryEngineExecutionTime.add(\n runtimeExecutionTimes.queryEngineExecutionTime,\n );\n systemFunctionExecutionTime = systemFunctionExecutionTime.add(\n runtimeExecutionTimes.systemFunctionExecutionTime,\n );\n userDefinedFunctionExecutionTime = userDefinedFunctionExecutionTime.add(\n runtimeExecutionTimes.userDefinedFunctionExecutionTime,\n );\n }\n\n return new RuntimeExecutionTimes(\n queryEngineExecutionTime,\n systemFunctionExecutionTime,\n userDefinedFunctionExecutionTime,\n );\n }\n\n /**\n * Output the RuntimeExecutionTimes as a delimited string.\n */\n public toDelimitedString(): string {\n return (\n `${\n QueryMetricsConstants.SystemFunctionExecuteTimeInMs\n }=${this.systemFunctionExecutionTime.totalMilliseconds()};` +\n `${\n QueryMetricsConstants.UserDefinedFunctionExecutionTimeInMs\n }=${this.userDefinedFunctionExecutionTime.totalMilliseconds()}`\n );\n }\n\n public static readonly zero = new RuntimeExecutionTimes(\n TimeSpan.zero,\n TimeSpan.zero,\n TimeSpan.zero,\n );\n\n /**\n * Returns a new instance of the RuntimeExecutionTimes class that is\n * the aggregation of an array of RuntimeExecutionTimes.\n */\n public static createFromArray(\n runtimeExecutionTimesArray: RuntimeExecutionTimes[],\n ): RuntimeExecutionTimes {\n if (runtimeExecutionTimesArray == null) {\n throw new Error(\"runtimeExecutionTimesArray is null or undefined item(s)\");\n }\n\n return RuntimeExecutionTimes.zero.add(...runtimeExecutionTimesArray);\n }\n\n /**\n * Returns a new instance of the RuntimeExecutionTimes class this is deserialized from a delimited string.\n */\n public static createFromDelimitedString(delimitedString: string): RuntimeExecutionTimes {\n const metrics = parseDelimitedString(delimitedString);\n\n const vmExecutionTime = timeSpanFromMetrics(metrics, QueryMetricsConstants.VMExecutionTimeInMs);\n const indexLookupTime = timeSpanFromMetrics(metrics, QueryMetricsConstants.IndexLookupTimeInMs);\n const documentLoadTime = timeSpanFromMetrics(\n metrics,\n QueryMetricsConstants.DocumentLoadTimeInMs,\n );\n const documentWriteTime = timeSpanFromMetrics(\n metrics,\n QueryMetricsConstants.DocumentWriteTimeInMs,\n );\n\n let queryEngineExecutionTime = TimeSpan.zero;\n queryEngineExecutionTime = queryEngineExecutionTime.add(vmExecutionTime);\n queryEngineExecutionTime = queryEngineExecutionTime.subtract(indexLookupTime);\n queryEngineExecutionTime = queryEngineExecutionTime.subtract(documentLoadTime);\n queryEngineExecutionTime = queryEngineExecutionTime.subtract(documentWriteTime);\n return new RuntimeExecutionTimes(\n queryEngineExecutionTime,\n timeSpanFromMetrics(metrics, QueryMetricsConstants.SystemFunctionExecuteTimeInMs),\n timeSpanFromMetrics(metrics, QueryMetricsConstants.UserDefinedFunctionExecutionTimeInMs),\n );\n }\n}\n"]}
@@ -47,6 +47,7 @@ const minMilliSeconds = Number.MIN_SAFE_INTEGER / ticksPerMillisecond;
47
47
  * @hidden
48
48
  */
49
49
  export class TimeSpan {
50
+ _ticks;
50
51
  constructor(days, hours, minutes, seconds, milliseconds) {
51
52
  // Constructor
52
53
  if (!Number.isInteger(days)) {
@@ -164,6 +165,9 @@ export class TimeSpan {
164
165
  timeSpan._ticks = value;
165
166
  return timeSpan;
166
167
  }
168
+ static zero = new TimeSpan(0, 0, 0, 0, 0);
169
+ static maxValue = TimeSpan.fromTicks(Number.MAX_SAFE_INTEGER);
170
+ static minValue = TimeSpan.fromTicks(Number.MIN_SAFE_INTEGER);
167
171
  static isTimeSpan(timespan) {
168
172
  return timespan._ticks;
169
173
  }
@@ -210,7 +214,4 @@ export class TimeSpan {
210
214
  return TimeSpan.interval(value, millisPerDay);
211
215
  }
212
216
  }
213
- TimeSpan.zero = new TimeSpan(0, 0, 0, 0, 0);
214
- TimeSpan.maxValue = TimeSpan.fromTicks(Number.MAX_SAFE_INTEGER);
215
- TimeSpan.minValue = TimeSpan.fromTicks(Number.MIN_SAFE_INTEGER);
216
217
  //# sourceMappingURL=timeSpan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeSpan.js","sourceRoot":"","sources":["../../../src/queryMetrics/timeSpan.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// Ported this implementation to javascript:\n// https://referencesource.microsoft.com/#mscorlib/system/timespan.cs,83e476c1ae112117\n/** @hidden */\n// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nconst ticksPerMillisecond = 10000;\n/** @hidden */\nconst millisecondsPerTick = 1.0 / ticksPerMillisecond;\n\n/** @hidden */\nconst ticksPerSecond = ticksPerMillisecond * 1000; // 10,000,000\n/** @hidden */\nconst secondsPerTick = 1.0 / ticksPerSecond; // 0.0001\n\n/** @hidden */\nconst ticksPerMinute = ticksPerSecond * 60; // 600,000,000\n/** @hidden */\nconst minutesPerTick = 1.0 / ticksPerMinute; // 1.6666666666667e-9\n\n/** @hidden */\nconst ticksPerHour = ticksPerMinute * 60; // 36,000,000,000\n/** @hidden */\nconst hoursPerTick = 1.0 / ticksPerHour; // 2.77777777777777778e-11\n\n/** @hidden */\nconst ticksPerDay = ticksPerHour * 24; // 864,000,000,000\n/** @hidden */\nconst daysPerTick = 1.0 / ticksPerDay; // 1.1574074074074074074e-12\n\n/** @hidden */\nconst millisPerSecond = 1000;\n/** @hidden */\nconst millisPerMinute = millisPerSecond * 60; // 60,000\n/** @hidden */\nconst millisPerHour = millisPerMinute * 60; // 3,600,000\n/** @hidden */\nconst millisPerDay = millisPerHour * 24; // 86,400,000\n\n/** @hidden */\nconst maxMilliSeconds = Number.MAX_SAFE_INTEGER / ticksPerMillisecond;\n/** @hidden */\nconst minMilliSeconds = Number.MIN_SAFE_INTEGER / ticksPerMillisecond;\n\n/**\n * Represents a time interval.\n *\n * @param days - Number of days.\n * @param hours - Number of hours.\n * @param minutes - Number of minutes.\n * @param seconds - Number of seconds.\n * @param milliseconds - Number of milliseconds.\n * @hidden\n */\nexport class TimeSpan {\n protected _ticks: number;\n constructor(days: number, hours: number, minutes: number, seconds: number, milliseconds: number) {\n // Constructor\n if (!Number.isInteger(days)) {\n throw new Error(\"days is not an integer\");\n }\n\n if (!Number.isInteger(hours)) {\n throw new Error(\"hours is not an integer\");\n }\n\n if (!Number.isInteger(minutes)) {\n throw new Error(\"minutes is not an integer\");\n }\n\n if (!Number.isInteger(seconds)) {\n throw new Error(\"seconds is not an integer\");\n }\n\n if (!Number.isInteger(milliseconds)) {\n throw new Error(\"milliseconds is not an integer\");\n }\n\n const totalMilliSeconds =\n (days * 3600 * 24 + hours * 3600 + minutes * 60 + seconds) * 1000 + milliseconds;\n if (totalMilliSeconds > maxMilliSeconds || totalMilliSeconds < minMilliSeconds) {\n throw new Error(\"Total number of milliseconds was either too large or too small\");\n }\n\n this._ticks = totalMilliSeconds * ticksPerMillisecond;\n }\n\n /**\n * Returns a new TimeSpan object whose value is the sum of the specified TimeSpan object and this instance.\n * @param ts - The time interval to add.\n */\n public add(ts: TimeSpan): TimeSpan {\n if (TimeSpan.additionDoesOverflow(this._ticks, ts._ticks)) {\n throw new Error(\"Adding the two timestamps causes an overflow.\");\n }\n\n const results = this._ticks + ts._ticks;\n return TimeSpan.fromTicks(results);\n }\n\n /**\n * Returns a new TimeSpan object whose value is the difference of the specified TimeSpan object and this instance.\n * @param ts - The time interval to subtract.\n */\n public subtract(ts: TimeSpan): TimeSpan {\n if (TimeSpan.subtractionDoesUnderflow(this._ticks, ts._ticks)) {\n throw new Error(\"Subtracting the two timestamps causes an underflow.\");\n }\n\n const results = this._ticks - ts._ticks;\n return TimeSpan.fromTicks(results);\n }\n\n /**\n * Compares this instance to a specified object and returns an integer that indicates whether this\n * instance is shorter than, equal to, or longer than the specified object.\n * @param value - The time interval to add.\n */\n public compareTo(value: TimeSpan): 1 | -1 | 0 {\n if (value == null) {\n return 1;\n }\n\n if (!TimeSpan.isTimeSpan(value)) {\n throw new Error(\"Argument must be a TimeSpan object\");\n }\n\n return TimeSpan.compare(this, value);\n }\n\n /**\n * Returns a new TimeSpan object whose value is the absolute value of the current TimeSpan object.\n */\n public duration(): TimeSpan {\n return TimeSpan.fromTicks(this._ticks >= 0 ? this._ticks : -this._ticks);\n }\n\n /**\n * Returns a value indicating whether this instance is equal to a specified object.\n * @param value - The time interval to check for equality.\n */\n public equals(value: TimeSpan): boolean {\n if (TimeSpan.isTimeSpan(value)) {\n return this._ticks === value._ticks;\n }\n\n return false;\n }\n\n /**\n * Returns a new TimeSpan object whose value is the negated value of this instance.\n * @param value - The time interval to check for equality.\n */\n public negate(): TimeSpan {\n return TimeSpan.fromTicks(-this._ticks);\n }\n\n public days(): number {\n return Math.floor(this._ticks / ticksPerDay);\n }\n\n public hours(): number {\n return Math.floor(this._ticks / ticksPerHour);\n }\n\n public milliseconds(): number {\n return Math.floor(this._ticks / ticksPerMillisecond);\n }\n\n public seconds(): number {\n return Math.floor(this._ticks / ticksPerSecond);\n }\n\n public ticks(): number {\n return this._ticks;\n }\n\n public totalDays(): number {\n return this._ticks * daysPerTick;\n }\n public totalHours(): number {\n return this._ticks * hoursPerTick;\n }\n\n public totalMilliseconds(): number {\n return this._ticks * millisecondsPerTick;\n }\n\n public totalMinutes(): number {\n return this._ticks * minutesPerTick;\n }\n\n public totalSeconds(): number {\n return this._ticks * secondsPerTick;\n }\n\n public static fromTicks(value: number): TimeSpan {\n const timeSpan = new TimeSpan(0, 0, 0, 0, 0);\n timeSpan._ticks = value;\n return timeSpan;\n }\n\n public static readonly zero = new TimeSpan(0, 0, 0, 0, 0);\n public static readonly maxValue = TimeSpan.fromTicks(Number.MAX_SAFE_INTEGER);\n public static readonly minValue = TimeSpan.fromTicks(Number.MIN_SAFE_INTEGER);\n\n public static isTimeSpan(timespan: TimeSpan): number {\n return timespan._ticks;\n }\n\n public static additionDoesOverflow(a: number, b: number): boolean {\n const c = a + b;\n return a !== c - b || b !== c - a;\n }\n\n public static subtractionDoesUnderflow(a: number, b: number): boolean {\n const c = a - b;\n return a !== c + b || b !== a - c;\n }\n\n public static compare(t1: TimeSpan, t2: TimeSpan): 1 | 0 | -1 {\n if (t1._ticks > t2._ticks) {\n return 1;\n }\n if (t1._ticks < t2._ticks) {\n return -1;\n }\n return 0;\n }\n\n public static interval(value: number, scale: number): TimeSpan {\n if (isNaN(value)) {\n throw new Error(\"value must be a number\");\n }\n\n const milliseconds = value * scale;\n if (milliseconds > maxMilliSeconds || milliseconds < minMilliSeconds) {\n throw new Error(\"timespan too long\");\n }\n\n return TimeSpan.fromTicks(Math.floor(milliseconds * ticksPerMillisecond));\n }\n\n public static fromMilliseconds(value: number): TimeSpan {\n return TimeSpan.interval(value, 1);\n }\n\n public static fromSeconds(value: number): TimeSpan {\n return TimeSpan.interval(value, millisPerSecond);\n }\n\n public static fromMinutes(value: number): TimeSpan {\n return TimeSpan.interval(value, millisPerMinute);\n }\n\n public static fromHours(value: number): TimeSpan {\n return TimeSpan.interval(value, millisPerHour);\n }\n\n public static fromDays(value: number): TimeSpan {\n return TimeSpan.interval(value, millisPerDay);\n }\n}\n"]}
1
+ {"version":3,"file":"timeSpan.js","sourceRoot":"","sources":["../../../src/queryMetrics/timeSpan.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,4CAA4C;AAC5C,sFAAsF;AACtF,cAAc;AACd,uCAAuC;AACvC,kCAAkC;AAClC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,cAAc;AACd,MAAM,mBAAmB,GAAG,GAAG,GAAG,mBAAmB,CAAC;AAEtD,cAAc;AACd,MAAM,cAAc,GAAG,mBAAmB,GAAG,IAAI,CAAC,CAAC,aAAa;AAChE,cAAc;AACd,MAAM,cAAc,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC,SAAS;AAEtD,cAAc;AACd,MAAM,cAAc,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC,cAAc;AAC1D,cAAc;AACd,MAAM,cAAc,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC,qBAAqB;AAElE,cAAc;AACd,MAAM,YAAY,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC,iBAAiB;AAC3D,cAAc;AACd,MAAM,YAAY,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,0BAA0B;AAEnE,cAAc;AACd,MAAM,WAAW,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC,kBAAkB;AACzD,cAAc;AACd,MAAM,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,4BAA4B;AAEnE,cAAc;AACd,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,cAAc;AACd,MAAM,eAAe,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC,aAAa;AAC3D,cAAc;AACd,MAAM,aAAa,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC,aAAa;AACzD,cAAc;AACd,MAAM,YAAY,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC,aAAa;AAEtD,cAAc;AACd,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;AACtE,cAAc;AACd,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;AAEtE;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAQ;IACT,MAAM,CAAS;IACzB,YAAY,IAAY,EAAE,KAAa,EAAE,OAAe,EAAE,OAAe,EAAE,YAAoB;QAC7F,cAAc;QACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,iBAAiB,GACrB,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC;QACnF,IAAI,iBAAiB,GAAG,eAAe,IAAI,iBAAiB,GAAG,eAAe,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;IACxD,CAAC;IAED;;;OAGG;IACI,GAAG,CAAC,EAAY;QACrB,IAAI,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACxC,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,EAAY;QAC1B,IAAI,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACxC,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,KAAe;QAC9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAe;QAC3B,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;QACtC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;IAChD,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC;IACvD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;IACnC,CAAC;IACM,UAAU;QACf,OAAO,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;IACpC,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC;IAC3C,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;IACtC,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,KAAa;QACnC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAU,IAAI,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACvE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEvE,MAAM,CAAC,UAAU,CAAC,QAAkB;QACzC,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,CAAS,EAAE,CAAS;QACrD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,wBAAwB,CAAC,CAAS,EAAE,CAAS;QACzD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,EAAY,EAAE,EAAY;QAC9C,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,KAAa;QACjD,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC;QACnC,IAAI,YAAY,GAAG,eAAe,IAAI,YAAY,GAAG,eAAe,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,KAAa;QAC1C,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,KAAa;QACrC,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,KAAa;QACrC,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,KAAa;QACnC,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACjD,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,KAAa;QAClC,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// Ported this implementation to javascript:\n// https://referencesource.microsoft.com/#mscorlib/system/timespan.cs,83e476c1ae112117\n/** @hidden */\n// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nconst ticksPerMillisecond = 10000;\n/** @hidden */\nconst millisecondsPerTick = 1.0 / ticksPerMillisecond;\n\n/** @hidden */\nconst ticksPerSecond = ticksPerMillisecond * 1000; // 10,000,000\n/** @hidden */\nconst secondsPerTick = 1.0 / ticksPerSecond; // 0.0001\n\n/** @hidden */\nconst ticksPerMinute = ticksPerSecond * 60; // 600,000,000\n/** @hidden */\nconst minutesPerTick = 1.0 / ticksPerMinute; // 1.6666666666667e-9\n\n/** @hidden */\nconst ticksPerHour = ticksPerMinute * 60; // 36,000,000,000\n/** @hidden */\nconst hoursPerTick = 1.0 / ticksPerHour; // 2.77777777777777778e-11\n\n/** @hidden */\nconst ticksPerDay = ticksPerHour * 24; // 864,000,000,000\n/** @hidden */\nconst daysPerTick = 1.0 / ticksPerDay; // 1.1574074074074074074e-12\n\n/** @hidden */\nconst millisPerSecond = 1000;\n/** @hidden */\nconst millisPerMinute = millisPerSecond * 60; // 60,000\n/** @hidden */\nconst millisPerHour = millisPerMinute * 60; // 3,600,000\n/** @hidden */\nconst millisPerDay = millisPerHour * 24; // 86,400,000\n\n/** @hidden */\nconst maxMilliSeconds = Number.MAX_SAFE_INTEGER / ticksPerMillisecond;\n/** @hidden */\nconst minMilliSeconds = Number.MIN_SAFE_INTEGER / ticksPerMillisecond;\n\n/**\n * Represents a time interval.\n *\n * @param days - Number of days.\n * @param hours - Number of hours.\n * @param minutes - Number of minutes.\n * @param seconds - Number of seconds.\n * @param milliseconds - Number of milliseconds.\n * @hidden\n */\nexport class TimeSpan {\n protected _ticks: number;\n constructor(days: number, hours: number, minutes: number, seconds: number, milliseconds: number) {\n // Constructor\n if (!Number.isInteger(days)) {\n throw new Error(\"days is not an integer\");\n }\n\n if (!Number.isInteger(hours)) {\n throw new Error(\"hours is not an integer\");\n }\n\n if (!Number.isInteger(minutes)) {\n throw new Error(\"minutes is not an integer\");\n }\n\n if (!Number.isInteger(seconds)) {\n throw new Error(\"seconds is not an integer\");\n }\n\n if (!Number.isInteger(milliseconds)) {\n throw new Error(\"milliseconds is not an integer\");\n }\n\n const totalMilliSeconds =\n (days * 3600 * 24 + hours * 3600 + minutes * 60 + seconds) * 1000 + milliseconds;\n if (totalMilliSeconds > maxMilliSeconds || totalMilliSeconds < minMilliSeconds) {\n throw new Error(\"Total number of milliseconds was either too large or too small\");\n }\n\n this._ticks = totalMilliSeconds * ticksPerMillisecond;\n }\n\n /**\n * Returns a new TimeSpan object whose value is the sum of the specified TimeSpan object and this instance.\n * @param ts - The time interval to add.\n */\n public add(ts: TimeSpan): TimeSpan {\n if (TimeSpan.additionDoesOverflow(this._ticks, ts._ticks)) {\n throw new Error(\"Adding the two timestamps causes an overflow.\");\n }\n\n const results = this._ticks + ts._ticks;\n return TimeSpan.fromTicks(results);\n }\n\n /**\n * Returns a new TimeSpan object whose value is the difference of the specified TimeSpan object and this instance.\n * @param ts - The time interval to subtract.\n */\n public subtract(ts: TimeSpan): TimeSpan {\n if (TimeSpan.subtractionDoesUnderflow(this._ticks, ts._ticks)) {\n throw new Error(\"Subtracting the two timestamps causes an underflow.\");\n }\n\n const results = this._ticks - ts._ticks;\n return TimeSpan.fromTicks(results);\n }\n\n /**\n * Compares this instance to a specified object and returns an integer that indicates whether this\n * instance is shorter than, equal to, or longer than the specified object.\n * @param value - The time interval to add.\n */\n public compareTo(value: TimeSpan): 1 | -1 | 0 {\n if (value == null) {\n return 1;\n }\n\n if (!TimeSpan.isTimeSpan(value)) {\n throw new Error(\"Argument must be a TimeSpan object\");\n }\n\n return TimeSpan.compare(this, value);\n }\n\n /**\n * Returns a new TimeSpan object whose value is the absolute value of the current TimeSpan object.\n */\n public duration(): TimeSpan {\n return TimeSpan.fromTicks(this._ticks >= 0 ? this._ticks : -this._ticks);\n }\n\n /**\n * Returns a value indicating whether this instance is equal to a specified object.\n * @param value - The time interval to check for equality.\n */\n public equals(value: TimeSpan): boolean {\n if (TimeSpan.isTimeSpan(value)) {\n return this._ticks === value._ticks;\n }\n\n return false;\n }\n\n /**\n * Returns a new TimeSpan object whose value is the negated value of this instance.\n * @param value - The time interval to check for equality.\n */\n public negate(): TimeSpan {\n return TimeSpan.fromTicks(-this._ticks);\n }\n\n public days(): number {\n return Math.floor(this._ticks / ticksPerDay);\n }\n\n public hours(): number {\n return Math.floor(this._ticks / ticksPerHour);\n }\n\n public milliseconds(): number {\n return Math.floor(this._ticks / ticksPerMillisecond);\n }\n\n public seconds(): number {\n return Math.floor(this._ticks / ticksPerSecond);\n }\n\n public ticks(): number {\n return this._ticks;\n }\n\n public totalDays(): number {\n return this._ticks * daysPerTick;\n }\n public totalHours(): number {\n return this._ticks * hoursPerTick;\n }\n\n public totalMilliseconds(): number {\n return this._ticks * millisecondsPerTick;\n }\n\n public totalMinutes(): number {\n return this._ticks * minutesPerTick;\n }\n\n public totalSeconds(): number {\n return this._ticks * secondsPerTick;\n }\n\n public static fromTicks(value: number): TimeSpan {\n const timeSpan = new TimeSpan(0, 0, 0, 0, 0);\n timeSpan._ticks = value;\n return timeSpan;\n }\n\n public static readonly zero = new TimeSpan(0, 0, 0, 0, 0);\n public static readonly maxValue = TimeSpan.fromTicks(Number.MAX_SAFE_INTEGER);\n public static readonly minValue = TimeSpan.fromTicks(Number.MIN_SAFE_INTEGER);\n\n public static isTimeSpan(timespan: TimeSpan): number {\n return timespan._ticks;\n }\n\n public static additionDoesOverflow(a: number, b: number): boolean {\n const c = a + b;\n return a !== c - b || b !== c - a;\n }\n\n public static subtractionDoesUnderflow(a: number, b: number): boolean {\n const c = a - b;\n return a !== c + b || b !== a - c;\n }\n\n public static compare(t1: TimeSpan, t2: TimeSpan): 1 | 0 | -1 {\n if (t1._ticks > t2._ticks) {\n return 1;\n }\n if (t1._ticks < t2._ticks) {\n return -1;\n }\n return 0;\n }\n\n public static interval(value: number, scale: number): TimeSpan {\n if (isNaN(value)) {\n throw new Error(\"value must be a number\");\n }\n\n const milliseconds = value * scale;\n if (milliseconds > maxMilliSeconds || milliseconds < minMilliSeconds) {\n throw new Error(\"timespan too long\");\n }\n\n return TimeSpan.fromTicks(Math.floor(milliseconds * ticksPerMillisecond));\n }\n\n public static fromMilliseconds(value: number): TimeSpan {\n return TimeSpan.interval(value, 1);\n }\n\n public static fromSeconds(value: number): TimeSpan {\n return TimeSpan.interval(value, millisPerSecond);\n }\n\n public static fromMinutes(value: number): TimeSpan {\n return TimeSpan.interval(value, millisPerMinute);\n }\n\n public static fromHours(value: number): TimeSpan {\n return TimeSpan.interval(value, millisPerHour);\n }\n\n public static fromDays(value: number): TimeSpan {\n return TimeSpan.interval(value, millisPerDay);\n }\n}\n"]}
@@ -2,5 +2,24 @@
2
2
  * Represents an error response returned in operations.
3
3
  */
4
4
  export class ErrorResponse extends Error {
5
+ /** status or error code returned */
6
+ code;
7
+ /** substatus code returned */
8
+ substatus;
9
+ /** body of the error response, typically including error details */
10
+ body;
11
+ /** HTTP headers */
12
+ headers;
13
+ /** unique identifier for the operation's activity */
14
+ activityId;
15
+ /** delay (in milliseconds) before retrying the operation. */
16
+ retryAfterInMs;
17
+ /** delay (in milliseconds) before retrying the operation. */
18
+ /** Note: Use retryAfterInMs instead */
19
+ retryAfterInMilliseconds;
20
+ /** Detailed diagnostic information associated with the error.*/
21
+ diagnostics;
22
+ /** The request charge of the operation, representing the resource cost incurred.*/
23
+ requestCharge;
5
24
  }
6
25
  //# sourceMappingURL=ErrorResponse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorResponse.js","sourceRoot":"","sources":["../../../src/request/ErrorResponse.ts"],"names":[],"mappings":"AAwGA;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;CAsBvC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { CosmosDiagnostics, CosmosHeaders } from \"../index.js\";\n\nexport interface ErrorBody {\n code: string;\n message: string;\n /**\n * @hidden\n */\n additionalErrorInfo?: PartitionedQueryExecutionInfo;\n}\n\n/**\n * @hidden\n */\nexport interface PartitionedQueryExecutionInfo {\n partitionedQueryExecutionInfoVersion: number;\n queryInfo?: QueryInfo;\n /**\n * Represents hybrid query information.\n */\n hybridSearchQueryInfo?: HybridSearchQueryInfo;\n queryRanges: QueryRange[];\n}\n\n/**\n * @hidden\n */\nexport interface QueryRange {\n min: string;\n max: string;\n isMinInclusive: boolean;\n isMaxInclusive: boolean;\n}\n\n/**\n * @hidden\n */\nexport interface QueryInfo {\n top?: any;\n orderBy?: any[];\n orderByExpressions?: any[];\n offset?: number;\n limit?: number;\n aggregates?: AggregateType[];\n groupByExpressions?: GroupByExpressions;\n groupByAliasToAggregateType: GroupByAliasToAggregateType;\n rewrittenQuery?: any;\n distinctType: string;\n hasSelectValue: boolean;\n /**\n * determines whether the query is of non streaming orderby type.\n */\n hasNonStreamingOrderBy: boolean;\n}\n\n/**\n * @hidden\n * Represents the hybrid search query information\n */\nexport interface HybridSearchQueryInfo {\n /**\n * The query to be used for fetching global statistics\n */\n globalStatisticsQuery: string;\n /**\n * Query information for the subsequent queries\n */\n componentQueryInfos: QueryInfo[];\n /**\n * The number of results in the final result set\n */\n take: number;\n /**\n * The number of results to skip in the final result set\n */\n skip: number;\n /**\n * Whether the query requires global statistics\n */\n requiresGlobalStatistics: boolean;\n /**\n * Represents the weights for each component in a hybrid search query.\n */\n componentWeights?: number[];\n}\n\nexport type GroupByExpressions = string[];\n\nexport type AggregateType =\n | \"Average\"\n | \"Count\"\n | \"Max\"\n | \"Min\"\n | \"Sum\"\n | \"MakeSet\"\n | \"MakeList\"\n | \"CountIf\";\n\nexport interface GroupByAliasToAggregateType {\n [key: string]: AggregateType;\n}\n\n/**\n * Represents an error response returned in operations.\n */\nexport class ErrorResponse extends Error {\n /** status or error code returned */\n code?: number | string;\n /** substatus code returned */\n substatus?: number;\n /** body of the error response, typically including error details */\n body?: ErrorBody;\n /** HTTP headers */\n headers?: CosmosHeaders;\n /** unique identifier for the operation's activity */\n activityId?: string;\n /** delay (in milliseconds) before retrying the operation. */\n retryAfterInMs?: number;\n /** delay (in milliseconds) before retrying the operation. */\n /** Note: Use retryAfterInMs instead */\n retryAfterInMilliseconds?: number;\n /** any additional property */\n [key: string]: any;\n /** Detailed diagnostic information associated with the error.*/\n diagnostics?: CosmosDiagnostics;\n /** The request charge of the operation, representing the resource cost incurred.*/\n requestCharge?: number;\n}\n"]}
1
+ {"version":3,"file":"ErrorResponse.js","sourceRoot":"","sources":["../../../src/request/ErrorResponse.ts"],"names":[],"mappings":"AAwGA;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,oCAAoC;IACpC,IAAI,CAAmB;IACvB,8BAA8B;IAC9B,SAAS,CAAU;IACnB,oEAAoE;IACpE,IAAI,CAAa;IACjB,mBAAmB;IACnB,OAAO,CAAiB;IACxB,qDAAqD;IACrD,UAAU,CAAU;IACpB,6DAA6D;IAC7D,cAAc,CAAU;IACxB,6DAA6D;IAC7D,uCAAuC;IACvC,wBAAwB,CAAU;IAGlC,gEAAgE;IAChE,WAAW,CAAqB;IAChC,mFAAmF;IACnF,aAAa,CAAU;CACxB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { CosmosDiagnostics, CosmosHeaders } from \"../index.js\";\n\nexport interface ErrorBody {\n code: string;\n message: string;\n /**\n * @hidden\n */\n additionalErrorInfo?: PartitionedQueryExecutionInfo;\n}\n\n/**\n * @hidden\n */\nexport interface PartitionedQueryExecutionInfo {\n partitionedQueryExecutionInfoVersion: number;\n queryInfo?: QueryInfo;\n /**\n * Represents hybrid query information.\n */\n hybridSearchQueryInfo?: HybridSearchQueryInfo;\n queryRanges: QueryRange[];\n}\n\n/**\n * @hidden\n */\nexport interface QueryRange {\n min: string;\n max: string;\n isMinInclusive: boolean;\n isMaxInclusive: boolean;\n}\n\n/**\n * @hidden\n */\nexport interface QueryInfo {\n top?: any;\n orderBy?: any[];\n orderByExpressions?: any[];\n offset?: number;\n limit?: number;\n aggregates?: AggregateType[];\n groupByExpressions?: GroupByExpressions;\n groupByAliasToAggregateType: GroupByAliasToAggregateType;\n rewrittenQuery?: any;\n distinctType: string;\n hasSelectValue: boolean;\n /**\n * determines whether the query is of non streaming orderby type.\n */\n hasNonStreamingOrderBy: boolean;\n}\n\n/**\n * @hidden\n * Represents the hybrid search query information\n */\nexport interface HybridSearchQueryInfo {\n /**\n * The query to be used for fetching global statistics\n */\n globalStatisticsQuery: string;\n /**\n * Query information for the subsequent queries\n */\n componentQueryInfos: QueryInfo[];\n /**\n * The number of results in the final result set\n */\n take: number;\n /**\n * The number of results to skip in the final result set\n */\n skip: number;\n /**\n * Whether the query requires global statistics\n */\n requiresGlobalStatistics: boolean;\n /**\n * Represents the weights for each component in a hybrid search query.\n */\n componentWeights?: number[];\n}\n\nexport type GroupByExpressions = string[];\n\nexport type AggregateType =\n | \"Average\"\n | \"Count\"\n | \"Max\"\n | \"Min\"\n | \"Sum\"\n | \"MakeSet\"\n | \"MakeList\"\n | \"CountIf\";\n\nexport interface GroupByAliasToAggregateType {\n [key: string]: AggregateType;\n}\n\n/**\n * Represents an error response returned in operations.\n */\nexport class ErrorResponse extends Error {\n /** status or error code returned */\n code?: number | string;\n /** substatus code returned */\n substatus?: number;\n /** body of the error response, typically including error details */\n body?: ErrorBody;\n /** HTTP headers */\n headers?: CosmosHeaders;\n /** unique identifier for the operation's activity */\n activityId?: string;\n /** delay (in milliseconds) before retrying the operation. */\n retryAfterInMs?: number;\n /** delay (in milliseconds) before retrying the operation. */\n /** Note: Use retryAfterInMs instead */\n retryAfterInMilliseconds?: number;\n /** any additional property */\n [key: string]: any;\n /** Detailed diagnostic information associated with the error.*/\n diagnostics?: CosmosDiagnostics;\n /** The request charge of the operation, representing the resource cost incurred.*/\n requestCharge?: number;\n}\n"]}
@@ -3,6 +3,10 @@
3
3
  import { Constants } from "../common/index.js";
4
4
  import { decodeAndParseJSONString, getRequestChargeIfAny, } from "../queryExecutionContext/headerUtils.js";
5
5
  export class FeedResponse {
6
+ resources;
7
+ headers;
8
+ hasMoreResults;
9
+ diagnostics;
6
10
  constructor(resources, headers, hasMoreResults, diagnostics) {
7
11
  this.resources = resources;
8
12
  this.headers = headers;
@@ -1 +1 @@
1
- {"version":3,"file":"FeedResponse.js","sourceRoot":"","sources":["../../../src/request/FeedResponse.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,yCAAyC,CAAC;AAGjD,MAAM,OAAO,YAAY;IACvB,YACkB,SAAsB,EACrB,OAAsB,EACvB,cAAuB,EACvB,WAA8B;QAH9B,cAAS,GAAT,SAAS,CAAa;QACrB,YAAO,GAAP,OAAO,CAAe;QACvB,mBAAc,GAAd,cAAc,CAAS;QACvB,gBAAW,GAAX,WAAW,CAAmB;IAC7C,CAAC;IAEJ,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IACD,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IACD,IAAW,aAAa;QACtB,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,IAAW,oBAAoB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAClE,CAAC;IACD,IAAW,YAAY;QACrB,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxF,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Constants } from \"../common/index.js\";\nimport type { CosmosHeaders } from \"../queryExecutionContext/headerUtils.js\";\nimport {\n decodeAndParseJSONString,\n getRequestChargeIfAny,\n} from \"../queryExecutionContext/headerUtils.js\";\nimport type { CosmosDiagnostics } from \"../CosmosDiagnostics.js\";\n\nexport class FeedResponse<TResource> {\n constructor(\n public readonly resources: TResource[],\n private readonly headers: CosmosHeaders,\n public readonly hasMoreResults: boolean,\n public readonly diagnostics: CosmosDiagnostics,\n ) {}\n\n public get continuation(): string {\n return this.continuationToken;\n }\n public get continuationToken(): string {\n return this.headers[Constants.HttpHeaders.Continuation];\n }\n public get queryMetrics(): string {\n return this.headers[Constants.HttpHeaders.QueryMetrics];\n }\n public get requestCharge(): number {\n return getRequestChargeIfAny(this.headers);\n }\n public get activityId(): string {\n return this.headers[Constants.HttpHeaders.ActivityId];\n }\n public get correlatedActivityId(): string {\n return this.headers[Constants.HttpHeaders.CorrelatedActivityId];\n }\n public get indexMetrics(): string {\n return decodeAndParseJSONString(this.headers[Constants.HttpHeaders.IndexUtilization]);\n }\n}\n"]}
1
+ {"version":3,"file":"FeedResponse.js","sourceRoot":"","sources":["../../../src/request/FeedResponse.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,yCAAyC,CAAC;AAGjD,MAAM,OAAO,YAAY;IAEL;IACC;IACD;IACA;IAJlB,YACkB,SAAsB,EACrB,OAAsB,EACvB,cAAuB,EACvB,WAA8B;QAH9B,cAAS,GAAT,SAAS,CAAa;QACrB,YAAO,GAAP,OAAO,CAAe;QACvB,mBAAc,GAAd,cAAc,CAAS;QACvB,gBAAW,GAAX,WAAW,CAAmB;IAC7C,CAAC;IAEJ,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IACD,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IACD,IAAW,aAAa;QACtB,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,IAAW,oBAAoB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAClE,CAAC;IACD,IAAW,YAAY;QACrB,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxF,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Constants } from \"../common/index.js\";\nimport type { CosmosHeaders } from \"../queryExecutionContext/headerUtils.js\";\nimport {\n decodeAndParseJSONString,\n getRequestChargeIfAny,\n} from \"../queryExecutionContext/headerUtils.js\";\nimport type { CosmosDiagnostics } from \"../CosmosDiagnostics.js\";\n\nexport class FeedResponse<TResource> {\n constructor(\n public readonly resources: TResource[],\n private readonly headers: CosmosHeaders,\n public readonly hasMoreResults: boolean,\n public readonly diagnostics: CosmosDiagnostics,\n ) {}\n\n public get continuation(): string {\n return this.continuationToken;\n }\n public get continuationToken(): string {\n return this.headers[Constants.HttpHeaders.Continuation];\n }\n public get queryMetrics(): string {\n return this.headers[Constants.HttpHeaders.QueryMetrics];\n }\n public get requestCharge(): number {\n return getRequestChargeIfAny(this.headers);\n }\n public get activityId(): string {\n return this.headers[Constants.HttpHeaders.ActivityId];\n }\n public get correlatedActivityId(): string {\n return this.headers[Constants.HttpHeaders.CorrelatedActivityId];\n }\n public get indexMetrics(): string {\n return decodeAndParseJSONString(this.headers[Constants.HttpHeaders.IndexUtilization]);\n }\n}\n"]}
@@ -22,7 +22,6 @@ async function executeRequest(diagnosticNode, requestContext) {
22
22
  * @hidden
23
23
  */
24
24
  async function httpRequest(requestContext, diagnosticNode) {
25
- var _a;
26
25
  const controller = new AbortController();
27
26
  const signal = controller.signal;
28
27
  // Wrap users passed abort events and call our own internal abort()
@@ -55,7 +54,7 @@ async function httpRequest(requestContext, diagnosticNode) {
55
54
  if (requestContext.body) {
56
55
  requestContext.body = bodyFromData(requestContext.body);
57
56
  }
58
- const httpsClient = (_a = requestContext.httpClient) !== null && _a !== void 0 ? _a : getCachedDefaultHttpClient();
57
+ const httpsClient = requestContext.httpClient ?? getCachedDefaultHttpClient();
59
58
  const url = prepareURL(requestContext.endpoint, requestContext.path);
60
59
  const reqHeaders = createHttpHeaders(requestContext.headers);
61
60
  const pipelineRequest = createPipelineRequest({