@azure/cosmos 4.4.1 → 4.5.0-alpha.20250718.3

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 (489) hide show
  1. package/dist/browser/ClientContext.d.ts +19 -10
  2. package/dist/browser/ClientContext.d.ts.map +1 -1
  3. package/dist/browser/ClientContext.js +30 -11
  4. package/dist/browser/ClientContext.js.map +1 -1
  5. package/dist/browser/CosmosClient.d.ts.map +1 -1
  6. package/dist/browser/CosmosClient.js +13 -2
  7. package/dist/browser/CosmosClient.js.map +1 -1
  8. package/dist/browser/PartitionKeyRangeFailoverInfo.d.ts +49 -0
  9. package/dist/browser/PartitionKeyRangeFailoverInfo.d.ts.map +1 -0
  10. package/dist/browser/PartitionKeyRangeFailoverInfo.js +130 -0
  11. package/dist/browser/PartitionKeyRangeFailoverInfo.js.map +1 -0
  12. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  13. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js +4 -0
  14. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  15. package/dist/browser/client/ClientUtils.d.ts +3 -1
  16. package/dist/browser/client/ClientUtils.d.ts.map +1 -1
  17. package/dist/browser/client/ClientUtils.js +10 -0
  18. package/dist/browser/client/ClientUtils.js.map +1 -1
  19. package/dist/browser/client/Item/Item.d.ts.map +1 -1
  20. package/dist/browser/client/Item/Item.js +13 -0
  21. package/dist/browser/client/Item/Item.js.map +1 -1
  22. package/dist/browser/client/Item/Items.d.ts +1 -0
  23. package/dist/browser/client/Item/Items.d.ts.map +1 -1
  24. package/dist/browser/client/Item/Items.js +29 -3
  25. package/dist/browser/client/Item/Items.js.map +1 -1
  26. package/dist/browser/common/constants.d.ts +20 -0
  27. package/dist/browser/common/constants.d.ts.map +1 -1
  28. package/dist/browser/common/constants.js +23 -1
  29. package/dist/browser/common/constants.js.map +1 -1
  30. package/dist/browser/common/platform.d.ts +6 -1
  31. package/dist/browser/common/platform.d.ts.map +1 -1
  32. package/dist/browser/common/platform.js +23 -4
  33. package/dist/browser/common/platform.js.map +1 -1
  34. package/dist/browser/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
  35. package/dist/browser/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
  36. package/dist/browser/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  37. package/dist/browser/documents/ConnectionPolicy.d.ts +6 -0
  38. package/dist/browser/documents/ConnectionPolicy.d.ts.map +1 -1
  39. package/dist/browser/documents/ConnectionPolicy.js +2 -0
  40. package/dist/browser/documents/ConnectionPolicy.js.map +1 -1
  41. package/dist/browser/documents/DatabaseAccount.d.ts.map +1 -1
  42. package/dist/browser/documents/DatabaseAccount.js +3 -0
  43. package/dist/browser/documents/DatabaseAccount.js.map +1 -1
  44. package/dist/browser/documents/PartitionKeyDefinition.d.ts +1 -1
  45. package/dist/browser/documents/PartitionKeyDefinition.js.map +1 -1
  46. package/dist/browser/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
  47. package/dist/browser/encryption/EncryptionKeyStoreProvider.js +2 -1
  48. package/dist/browser/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  49. package/dist/browser/extractPartitionKey.d.ts.map +1 -1
  50. package/dist/browser/extractPartitionKey.js +33 -20
  51. package/dist/browser/extractPartitionKey.js.map +1 -1
  52. package/dist/browser/globalEndpointManager.d.ts +6 -0
  53. package/dist/browser/globalEndpointManager.d.ts.map +1 -1
  54. package/dist/browser/globalEndpointManager.js +9 -4
  55. package/dist/browser/globalEndpointManager.js.map +1 -1
  56. package/dist/browser/globalPartitionEndpointManager.d.ts +79 -0
  57. package/dist/browser/globalPartitionEndpointManager.d.ts.map +1 -0
  58. package/dist/browser/globalPartitionEndpointManager.js +278 -0
  59. package/dist/browser/globalPartitionEndpointManager.js.map +1 -0
  60. package/dist/browser/queryExecutionContext/Aggregators/index.d.ts.map +1 -1
  61. package/dist/browser/queryExecutionContext/Aggregators/index.js +1 -0
  62. package/dist/browser/queryExecutionContext/Aggregators/index.js.map +1 -1
  63. package/dist/browser/queryExecutionContext/documentProducer.d.ts +2 -3
  64. package/dist/browser/queryExecutionContext/documentProducer.d.ts.map +1 -1
  65. package/dist/browser/queryExecutionContext/documentProducer.js +16 -21
  66. package/dist/browser/queryExecutionContext/documentProducer.js.map +1 -1
  67. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts +3 -1
  68. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
  69. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js +10 -2
  70. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  71. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
  72. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js +2 -1
  73. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  74. package/dist/browser/queryIterator.d.ts.map +1 -1
  75. package/dist/browser/queryIterator.js +2 -3
  76. package/dist/browser/queryIterator.js.map +1 -1
  77. package/dist/browser/request/ErrorResponse.d.ts +1 -1
  78. package/dist/browser/request/ErrorResponse.d.ts.map +1 -1
  79. package/dist/browser/request/ErrorResponse.js.map +1 -1
  80. package/dist/browser/request/RequestContext.d.ts +5 -0
  81. package/dist/browser/request/RequestContext.d.ts.map +1 -1
  82. package/dist/browser/request/RequestContext.js.map +1 -1
  83. package/dist/browser/request/RequestHandler.d.ts.map +1 -1
  84. package/dist/browser/request/RequestHandler.js +14 -4
  85. package/dist/browser/request/RequestHandler.js.map +1 -1
  86. package/dist/browser/request/request.d.ts.map +1 -1
  87. package/dist/browser/request/request.js +3 -3
  88. package/dist/browser/request/request.js.map +1 -1
  89. package/dist/browser/retry/RetryPolicy.d.ts +2 -2
  90. package/dist/browser/retry/RetryPolicy.d.ts.map +1 -1
  91. package/dist/browser/retry/RetryPolicy.js.map +1 -1
  92. package/dist/browser/retry/defaultRetryPolicy.d.ts.map +1 -1
  93. package/dist/browser/retry/defaultRetryPolicy.js +4 -8
  94. package/dist/browser/retry/defaultRetryPolicy.js.map +1 -1
  95. package/dist/browser/retry/endpointDiscoveryRetryPolicy.d.ts +5 -3
  96. package/dist/browser/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  97. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js +9 -2
  98. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  99. package/dist/browser/retry/retryUtility.d.ts.map +1 -1
  100. package/dist/browser/retry/retryUtility.js +11 -5
  101. package/dist/browser/retry/retryUtility.js.map +1 -1
  102. package/dist/browser/retry/timeoutFailoverRetryPolicy.d.ts +6 -3
  103. package/dist/browser/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  104. package/dist/browser/retry/timeoutFailoverRetryPolicy.js +15 -7
  105. package/dist/browser/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  106. package/dist/browser/routing/partitionKeyRangeCache.d.ts.map +1 -1
  107. package/dist/browser/routing/partitionKeyRangeCache.js +11 -0
  108. package/dist/browser/routing/partitionKeyRangeCache.js.map +1 -1
  109. package/dist/browser/utils/checkURL.js +6 -0
  110. package/dist/browser/utils/checkURL.js.map +1 -1
  111. package/dist/browser/utils/hashing/hash.d.ts +2 -0
  112. package/dist/browser/utils/hashing/hash.d.ts.map +1 -1
  113. package/dist/browser/utils/hashing/hash.js +19 -0
  114. package/dist/browser/utils/hashing/hash.js.map +1 -1
  115. package/dist/browser/utils/time.d.ts +8 -0
  116. package/dist/browser/utils/time.d.ts.map +1 -1
  117. package/dist/browser/utils/time.js +19 -0
  118. package/dist/browser/utils/time.js.map +1 -1
  119. package/dist/commonjs/ClientContext.d.ts +19 -10
  120. package/dist/commonjs/ClientContext.d.ts.map +1 -1
  121. package/dist/commonjs/ClientContext.js +30 -11
  122. package/dist/commonjs/ClientContext.js.map +1 -1
  123. package/dist/commonjs/CosmosClient.d.ts.map +1 -1
  124. package/dist/commonjs/CosmosClient.js +13 -2
  125. package/dist/commonjs/CosmosClient.js.map +1 -1
  126. package/dist/commonjs/PartitionKeyRangeFailoverInfo.d.ts +49 -0
  127. package/dist/commonjs/PartitionKeyRangeFailoverInfo.d.ts.map +1 -0
  128. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js +135 -0
  129. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js.map +1 -0
  130. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  131. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js +4 -0
  132. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  133. package/dist/commonjs/client/ClientUtils.d.ts +3 -1
  134. package/dist/commonjs/client/ClientUtils.d.ts.map +1 -1
  135. package/dist/commonjs/client/ClientUtils.js +11 -0
  136. package/dist/commonjs/client/ClientUtils.js.map +1 -1
  137. package/dist/commonjs/client/Item/Item.d.ts.map +1 -1
  138. package/dist/commonjs/client/Item/Item.js +13 -0
  139. package/dist/commonjs/client/Item/Item.js.map +1 -1
  140. package/dist/commonjs/client/Item/Items.d.ts +1 -0
  141. package/dist/commonjs/client/Item/Items.d.ts.map +1 -1
  142. package/dist/commonjs/client/Item/Items.js +27 -1
  143. package/dist/commonjs/client/Item/Items.js.map +1 -1
  144. package/dist/commonjs/common/constants.d.ts +20 -0
  145. package/dist/commonjs/common/constants.d.ts.map +1 -1
  146. package/dist/commonjs/common/constants.js +24 -2
  147. package/dist/commonjs/common/constants.js.map +1 -1
  148. package/dist/commonjs/common/platform.d.ts +6 -1
  149. package/dist/commonjs/common/platform.d.ts.map +1 -1
  150. package/dist/commonjs/common/platform.js +23 -3
  151. package/dist/commonjs/common/platform.js.map +1 -1
  152. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
  153. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
  154. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  155. package/dist/commonjs/documents/ConnectionPolicy.d.ts +6 -0
  156. package/dist/commonjs/documents/ConnectionPolicy.d.ts.map +1 -1
  157. package/dist/commonjs/documents/ConnectionPolicy.js +2 -0
  158. package/dist/commonjs/documents/ConnectionPolicy.js.map +1 -1
  159. package/dist/commonjs/documents/DatabaseAccount.d.ts.map +1 -1
  160. package/dist/commonjs/documents/DatabaseAccount.js +3 -0
  161. package/dist/commonjs/documents/DatabaseAccount.js.map +1 -1
  162. package/dist/commonjs/documents/PartitionKeyDefinition.d.ts +1 -1
  163. package/dist/commonjs/documents/PartitionKeyDefinition.js.map +1 -1
  164. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.d.ts.map +1 -1
  165. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js +2 -1
  166. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  167. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
  168. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js +2 -1
  169. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  170. package/dist/commonjs/extractPartitionKey.d.ts.map +1 -1
  171. package/dist/commonjs/extractPartitionKey.js +33 -20
  172. package/dist/commonjs/extractPartitionKey.js.map +1 -1
  173. package/dist/commonjs/globalEndpointManager.d.ts +6 -0
  174. package/dist/commonjs/globalEndpointManager.d.ts.map +1 -1
  175. package/dist/commonjs/globalEndpointManager.js +10 -5
  176. package/dist/commonjs/globalEndpointManager.js.map +1 -1
  177. package/dist/commonjs/globalPartitionEndpointManager.d.ts +79 -0
  178. package/dist/commonjs/globalPartitionEndpointManager.d.ts.map +1 -0
  179. package/dist/commonjs/globalPartitionEndpointManager.js +282 -0
  180. package/dist/commonjs/globalPartitionEndpointManager.js.map +1 -0
  181. package/dist/commonjs/queryExecutionContext/Aggregators/index.d.ts.map +1 -1
  182. package/dist/commonjs/queryExecutionContext/Aggregators/index.js +1 -0
  183. package/dist/commonjs/queryExecutionContext/Aggregators/index.js.map +1 -1
  184. package/dist/commonjs/queryExecutionContext/documentProducer.d.ts +2 -3
  185. package/dist/commonjs/queryExecutionContext/documentProducer.d.ts.map +1 -1
  186. package/dist/commonjs/queryExecutionContext/documentProducer.js +15 -20
  187. package/dist/commonjs/queryExecutionContext/documentProducer.js.map +1 -1
  188. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts +3 -1
  189. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
  190. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +10 -2
  191. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  192. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
  193. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +2 -1
  194. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  195. package/dist/commonjs/queryIterator.d.ts.map +1 -1
  196. package/dist/commonjs/queryIterator.js +2 -3
  197. package/dist/commonjs/queryIterator.js.map +1 -1
  198. package/dist/commonjs/request/ErrorResponse.d.ts +1 -1
  199. package/dist/commonjs/request/ErrorResponse.d.ts.map +1 -1
  200. package/dist/commonjs/request/ErrorResponse.js.map +1 -1
  201. package/dist/commonjs/request/RequestContext.d.ts +5 -0
  202. package/dist/commonjs/request/RequestContext.d.ts.map +1 -1
  203. package/dist/commonjs/request/RequestContext.js.map +1 -1
  204. package/dist/commonjs/request/RequestHandler.d.ts.map +1 -1
  205. package/dist/commonjs/request/RequestHandler.js +12 -2
  206. package/dist/commonjs/request/RequestHandler.js.map +1 -1
  207. package/dist/commonjs/request/defaultAgent.js +4 -4
  208. package/dist/commonjs/request/defaultAgent.js.map +1 -1
  209. package/dist/commonjs/request/request.d.ts.map +1 -1
  210. package/dist/commonjs/request/request.js +3 -3
  211. package/dist/commonjs/request/request.js.map +1 -1
  212. package/dist/commonjs/retry/RetryPolicy.d.ts +2 -2
  213. package/dist/commonjs/retry/RetryPolicy.d.ts.map +1 -1
  214. package/dist/commonjs/retry/RetryPolicy.js.map +1 -1
  215. package/dist/commonjs/retry/defaultRetryPolicy.d.ts.map +1 -1
  216. package/dist/commonjs/retry/defaultRetryPolicy.js +3 -7
  217. package/dist/commonjs/retry/defaultRetryPolicy.js.map +1 -1
  218. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.d.ts +5 -3
  219. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  220. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js +9 -2
  221. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  222. package/dist/commonjs/retry/retryUtility.d.ts.map +1 -1
  223. package/dist/commonjs/retry/retryUtility.js +11 -5
  224. package/dist/commonjs/retry/retryUtility.js.map +1 -1
  225. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.d.ts +6 -3
  226. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  227. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js +15 -7
  228. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  229. package/dist/commonjs/routing/partitionKeyRangeCache.d.ts.map +1 -1
  230. package/dist/commonjs/routing/partitionKeyRangeCache.js +11 -0
  231. package/dist/commonjs/routing/partitionKeyRangeCache.js.map +1 -1
  232. package/dist/commonjs/tsdoc-metadata.json +11 -11
  233. package/dist/commonjs/utils/checkURL.js +7 -0
  234. package/dist/commonjs/utils/checkURL.js.map +1 -1
  235. package/dist/commonjs/utils/hashing/hash.d.ts +2 -0
  236. package/dist/commonjs/utils/hashing/hash.d.ts.map +1 -1
  237. package/dist/commonjs/utils/hashing/hash.js +20 -0
  238. package/dist/commonjs/utils/hashing/hash.js.map +1 -1
  239. package/dist/commonjs/utils/time.d.ts +8 -0
  240. package/dist/commonjs/utils/time.d.ts.map +1 -1
  241. package/dist/commonjs/utils/time.js +20 -0
  242. package/dist/commonjs/utils/time.js.map +1 -1
  243. package/dist/esm/ClientContext.d.ts +19 -10
  244. package/dist/esm/ClientContext.d.ts.map +1 -1
  245. package/dist/esm/ClientContext.js +30 -11
  246. package/dist/esm/ClientContext.js.map +1 -1
  247. package/dist/esm/CosmosClient.d.ts.map +1 -1
  248. package/dist/esm/CosmosClient.js +13 -2
  249. package/dist/esm/CosmosClient.js.map +1 -1
  250. package/dist/esm/PartitionKeyRangeFailoverInfo.d.ts +49 -0
  251. package/dist/esm/PartitionKeyRangeFailoverInfo.d.ts.map +1 -0
  252. package/dist/esm/PartitionKeyRangeFailoverInfo.js +130 -0
  253. package/dist/esm/PartitionKeyRangeFailoverInfo.js.map +1 -0
  254. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  255. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js +4 -0
  256. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  257. package/dist/esm/client/ClientUtils.d.ts +3 -1
  258. package/dist/esm/client/ClientUtils.d.ts.map +1 -1
  259. package/dist/esm/client/ClientUtils.js +10 -0
  260. package/dist/esm/client/ClientUtils.js.map +1 -1
  261. package/dist/esm/client/Item/Item.d.ts.map +1 -1
  262. package/dist/esm/client/Item/Item.js +13 -0
  263. package/dist/esm/client/Item/Item.js.map +1 -1
  264. package/dist/esm/client/Item/Items.d.ts +1 -0
  265. package/dist/esm/client/Item/Items.d.ts.map +1 -1
  266. package/dist/esm/client/Item/Items.js +29 -3
  267. package/dist/esm/client/Item/Items.js.map +1 -1
  268. package/dist/esm/common/constants.d.ts +20 -0
  269. package/dist/esm/common/constants.d.ts.map +1 -1
  270. package/dist/esm/common/constants.js +23 -1
  271. package/dist/esm/common/constants.js.map +1 -1
  272. package/dist/esm/common/platform.d.ts +6 -1
  273. package/dist/esm/common/platform.d.ts.map +1 -1
  274. package/dist/esm/common/platform.js +23 -4
  275. package/dist/esm/common/platform.js.map +1 -1
  276. package/dist/esm/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
  277. package/dist/esm/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
  278. package/dist/esm/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  279. package/dist/esm/documents/ConnectionPolicy.d.ts +6 -0
  280. package/dist/esm/documents/ConnectionPolicy.d.ts.map +1 -1
  281. package/dist/esm/documents/ConnectionPolicy.js +2 -0
  282. package/dist/esm/documents/ConnectionPolicy.js.map +1 -1
  283. package/dist/esm/documents/DatabaseAccount.d.ts.map +1 -1
  284. package/dist/esm/documents/DatabaseAccount.js +3 -0
  285. package/dist/esm/documents/DatabaseAccount.js.map +1 -1
  286. package/dist/esm/documents/PartitionKeyDefinition.d.ts +1 -1
  287. package/dist/esm/documents/PartitionKeyDefinition.js.map +1 -1
  288. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.d.ts.map +1 -1
  289. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js +2 -1
  290. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  291. package/dist/esm/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
  292. package/dist/esm/encryption/EncryptionKeyStoreProvider.js +2 -1
  293. package/dist/esm/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  294. package/dist/esm/extractPartitionKey.d.ts.map +1 -1
  295. package/dist/esm/extractPartitionKey.js +33 -20
  296. package/dist/esm/extractPartitionKey.js.map +1 -1
  297. package/dist/esm/globalEndpointManager.d.ts +6 -0
  298. package/dist/esm/globalEndpointManager.d.ts.map +1 -1
  299. package/dist/esm/globalEndpointManager.js +9 -4
  300. package/dist/esm/globalEndpointManager.js.map +1 -1
  301. package/dist/esm/globalPartitionEndpointManager.d.ts +79 -0
  302. package/dist/esm/globalPartitionEndpointManager.d.ts.map +1 -0
  303. package/dist/esm/globalPartitionEndpointManager.js +278 -0
  304. package/dist/esm/globalPartitionEndpointManager.js.map +1 -0
  305. package/dist/esm/queryExecutionContext/Aggregators/index.d.ts.map +1 -1
  306. package/dist/esm/queryExecutionContext/Aggregators/index.js +1 -0
  307. package/dist/esm/queryExecutionContext/Aggregators/index.js.map +1 -1
  308. package/dist/esm/queryExecutionContext/documentProducer.d.ts +2 -3
  309. package/dist/esm/queryExecutionContext/documentProducer.d.ts.map +1 -1
  310. package/dist/esm/queryExecutionContext/documentProducer.js +16 -21
  311. package/dist/esm/queryExecutionContext/documentProducer.js.map +1 -1
  312. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts +3 -1
  313. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
  314. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js +10 -2
  315. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  316. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
  317. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js +2 -1
  318. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  319. package/dist/esm/queryIterator.d.ts.map +1 -1
  320. package/dist/esm/queryIterator.js +2 -3
  321. package/dist/esm/queryIterator.js.map +1 -1
  322. package/dist/esm/request/ErrorResponse.d.ts +1 -1
  323. package/dist/esm/request/ErrorResponse.d.ts.map +1 -1
  324. package/dist/esm/request/ErrorResponse.js.map +1 -1
  325. package/dist/esm/request/RequestContext.d.ts +5 -0
  326. package/dist/esm/request/RequestContext.d.ts.map +1 -1
  327. package/dist/esm/request/RequestContext.js.map +1 -1
  328. package/dist/esm/request/RequestHandler.d.ts.map +1 -1
  329. package/dist/esm/request/RequestHandler.js +14 -4
  330. package/dist/esm/request/RequestHandler.js.map +1 -1
  331. package/dist/esm/request/defaultAgent.js +2 -2
  332. package/dist/esm/request/defaultAgent.js.map +1 -1
  333. package/dist/esm/request/request.d.ts.map +1 -1
  334. package/dist/esm/request/request.js +3 -3
  335. package/dist/esm/request/request.js.map +1 -1
  336. package/dist/esm/retry/RetryPolicy.d.ts +2 -2
  337. package/dist/esm/retry/RetryPolicy.d.ts.map +1 -1
  338. package/dist/esm/retry/RetryPolicy.js.map +1 -1
  339. package/dist/esm/retry/defaultRetryPolicy.d.ts.map +1 -1
  340. package/dist/esm/retry/defaultRetryPolicy.js +4 -8
  341. package/dist/esm/retry/defaultRetryPolicy.js.map +1 -1
  342. package/dist/esm/retry/endpointDiscoveryRetryPolicy.d.ts +5 -3
  343. package/dist/esm/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  344. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js +9 -2
  345. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  346. package/dist/esm/retry/retryUtility.d.ts.map +1 -1
  347. package/dist/esm/retry/retryUtility.js +11 -5
  348. package/dist/esm/retry/retryUtility.js.map +1 -1
  349. package/dist/esm/retry/timeoutFailoverRetryPolicy.d.ts +6 -3
  350. package/dist/esm/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  351. package/dist/esm/retry/timeoutFailoverRetryPolicy.js +15 -7
  352. package/dist/esm/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  353. package/dist/esm/routing/partitionKeyRangeCache.d.ts.map +1 -1
  354. package/dist/esm/routing/partitionKeyRangeCache.js +11 -0
  355. package/dist/esm/routing/partitionKeyRangeCache.js.map +1 -1
  356. package/dist/esm/utils/checkURL.js +6 -0
  357. package/dist/esm/utils/checkURL.js.map +1 -1
  358. package/dist/esm/utils/hashing/hash.d.ts +2 -0
  359. package/dist/esm/utils/hashing/hash.d.ts.map +1 -1
  360. package/dist/esm/utils/hashing/hash.js +19 -0
  361. package/dist/esm/utils/hashing/hash.js.map +1 -1
  362. package/dist/esm/utils/time.d.ts +8 -0
  363. package/dist/esm/utils/time.d.ts.map +1 -1
  364. package/dist/esm/utils/time.js +19 -0
  365. package/dist/esm/utils/time.js.map +1 -1
  366. package/dist/react-native/ClientContext.d.ts +19 -10
  367. package/dist/react-native/ClientContext.d.ts.map +1 -1
  368. package/dist/react-native/ClientContext.js +30 -11
  369. package/dist/react-native/ClientContext.js.map +1 -1
  370. package/dist/react-native/CosmosClient.d.ts.map +1 -1
  371. package/dist/react-native/CosmosClient.js +13 -2
  372. package/dist/react-native/CosmosClient.js.map +1 -1
  373. package/dist/react-native/PartitionKeyRangeFailoverInfo.d.ts +49 -0
  374. package/dist/react-native/PartitionKeyRangeFailoverInfo.d.ts.map +1 -0
  375. package/dist/react-native/PartitionKeyRangeFailoverInfo.js +130 -0
  376. package/dist/react-native/PartitionKeyRangeFailoverInfo.js.map +1 -0
  377. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
  378. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js +4 -0
  379. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  380. package/dist/react-native/client/ClientUtils.d.ts +3 -1
  381. package/dist/react-native/client/ClientUtils.d.ts.map +1 -1
  382. package/dist/react-native/client/ClientUtils.js +10 -0
  383. package/dist/react-native/client/ClientUtils.js.map +1 -1
  384. package/dist/react-native/client/Item/Item.d.ts.map +1 -1
  385. package/dist/react-native/client/Item/Item.js +13 -0
  386. package/dist/react-native/client/Item/Item.js.map +1 -1
  387. package/dist/react-native/client/Item/Items.d.ts +1 -0
  388. package/dist/react-native/client/Item/Items.d.ts.map +1 -1
  389. package/dist/react-native/client/Item/Items.js +29 -3
  390. package/dist/react-native/client/Item/Items.js.map +1 -1
  391. package/dist/react-native/common/constants.d.ts +20 -0
  392. package/dist/react-native/common/constants.d.ts.map +1 -1
  393. package/dist/react-native/common/constants.js +23 -1
  394. package/dist/react-native/common/constants.js.map +1 -1
  395. package/dist/react-native/common/platform.d.ts +6 -1
  396. package/dist/react-native/common/platform.d.ts.map +1 -1
  397. package/dist/react-native/common/platform.js +23 -4
  398. package/dist/react-native/common/platform.js.map +1 -1
  399. package/dist/react-native/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
  400. package/dist/react-native/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
  401. package/dist/react-native/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  402. package/dist/react-native/documents/ConnectionPolicy.d.ts +6 -0
  403. package/dist/react-native/documents/ConnectionPolicy.d.ts.map +1 -1
  404. package/dist/react-native/documents/ConnectionPolicy.js +2 -0
  405. package/dist/react-native/documents/ConnectionPolicy.js.map +1 -1
  406. package/dist/react-native/documents/DatabaseAccount.d.ts.map +1 -1
  407. package/dist/react-native/documents/DatabaseAccount.js +3 -0
  408. package/dist/react-native/documents/DatabaseAccount.js.map +1 -1
  409. package/dist/react-native/documents/PartitionKeyDefinition.d.ts +1 -1
  410. package/dist/react-native/documents/PartitionKeyDefinition.js.map +1 -1
  411. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.d.ts.map +1 -1
  412. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js +2 -1
  413. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  414. package/dist/react-native/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
  415. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js +2 -1
  416. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  417. package/dist/react-native/extractPartitionKey.d.ts.map +1 -1
  418. package/dist/react-native/extractPartitionKey.js +33 -20
  419. package/dist/react-native/extractPartitionKey.js.map +1 -1
  420. package/dist/react-native/globalEndpointManager.d.ts +6 -0
  421. package/dist/react-native/globalEndpointManager.d.ts.map +1 -1
  422. package/dist/react-native/globalEndpointManager.js +9 -4
  423. package/dist/react-native/globalEndpointManager.js.map +1 -1
  424. package/dist/react-native/globalPartitionEndpointManager.d.ts +79 -0
  425. package/dist/react-native/globalPartitionEndpointManager.d.ts.map +1 -0
  426. package/dist/react-native/globalPartitionEndpointManager.js +278 -0
  427. package/dist/react-native/globalPartitionEndpointManager.js.map +1 -0
  428. package/dist/react-native/queryExecutionContext/Aggregators/index.d.ts.map +1 -1
  429. package/dist/react-native/queryExecutionContext/Aggregators/index.js +1 -0
  430. package/dist/react-native/queryExecutionContext/Aggregators/index.js.map +1 -1
  431. package/dist/react-native/queryExecutionContext/documentProducer.d.ts +2 -3
  432. package/dist/react-native/queryExecutionContext/documentProducer.d.ts.map +1 -1
  433. package/dist/react-native/queryExecutionContext/documentProducer.js +16 -21
  434. package/dist/react-native/queryExecutionContext/documentProducer.js.map +1 -1
  435. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts +3 -1
  436. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
  437. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js +10 -2
  438. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  439. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
  440. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js +2 -1
  441. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  442. package/dist/react-native/queryIterator.d.ts.map +1 -1
  443. package/dist/react-native/queryIterator.js +2 -3
  444. package/dist/react-native/queryIterator.js.map +1 -1
  445. package/dist/react-native/request/ErrorResponse.d.ts +1 -1
  446. package/dist/react-native/request/ErrorResponse.d.ts.map +1 -1
  447. package/dist/react-native/request/ErrorResponse.js.map +1 -1
  448. package/dist/react-native/request/RequestContext.d.ts +5 -0
  449. package/dist/react-native/request/RequestContext.d.ts.map +1 -1
  450. package/dist/react-native/request/RequestContext.js.map +1 -1
  451. package/dist/react-native/request/RequestHandler.d.ts.map +1 -1
  452. package/dist/react-native/request/RequestHandler.js +14 -4
  453. package/dist/react-native/request/RequestHandler.js.map +1 -1
  454. package/dist/react-native/request/defaultAgent.js +2 -2
  455. package/dist/react-native/request/defaultAgent.js.map +1 -1
  456. package/dist/react-native/request/request.d.ts.map +1 -1
  457. package/dist/react-native/request/request.js +3 -3
  458. package/dist/react-native/request/request.js.map +1 -1
  459. package/dist/react-native/retry/RetryPolicy.d.ts +2 -2
  460. package/dist/react-native/retry/RetryPolicy.d.ts.map +1 -1
  461. package/dist/react-native/retry/RetryPolicy.js.map +1 -1
  462. package/dist/react-native/retry/defaultRetryPolicy.d.ts.map +1 -1
  463. package/dist/react-native/retry/defaultRetryPolicy.js +4 -8
  464. package/dist/react-native/retry/defaultRetryPolicy.js.map +1 -1
  465. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.d.ts +5 -3
  466. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  467. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js +9 -2
  468. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  469. package/dist/react-native/retry/retryUtility.d.ts.map +1 -1
  470. package/dist/react-native/retry/retryUtility.js +11 -5
  471. package/dist/react-native/retry/retryUtility.js.map +1 -1
  472. package/dist/react-native/retry/timeoutFailoverRetryPolicy.d.ts +6 -3
  473. package/dist/react-native/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
  474. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js +15 -7
  475. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  476. package/dist/react-native/routing/partitionKeyRangeCache.d.ts.map +1 -1
  477. package/dist/react-native/routing/partitionKeyRangeCache.js +11 -0
  478. package/dist/react-native/routing/partitionKeyRangeCache.js.map +1 -1
  479. package/dist/react-native/utils/checkURL.js +6 -0
  480. package/dist/react-native/utils/checkURL.js.map +1 -1
  481. package/dist/react-native/utils/hashing/hash.d.ts +2 -0
  482. package/dist/react-native/utils/hashing/hash.d.ts.map +1 -1
  483. package/dist/react-native/utils/hashing/hash.js +19 -0
  484. package/dist/react-native/utils/hashing/hash.js.map +1 -1
  485. package/dist/react-native/utils/time.d.ts +8 -0
  486. package/dist/react-native/utils/time.d.ts.map +1 -1
  487. package/dist/react-native/utils/time.js +19 -0
  488. package/dist/react-native/utils/time.js.map +1 -1
  489. package/package.json +11 -11
@@ -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 = new PartitionKeyRangeCache(this.clientContext);\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.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"]}
@@ -79,7 +79,7 @@ export interface HybridSearchQueryInfo {
79
79
  componentWeights?: number[];
80
80
  }
81
81
  export type GroupByExpressions = string[];
82
- export type AggregateType = "Average" | "Count" | "Max" | "Min" | "Sum" | "MakeSet" | "MakeList";
82
+ export type AggregateType = "Average" | "Count" | "Max" | "Min" | "Sum" | "MakeSet" | "MakeList" | "CountIf";
83
83
  export interface GroupByAliasToAggregateType {
84
84
  [key: string]: AggregateType;
85
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorResponse.d.ts","sourceRoot":"","sources":["../../../src/request/ErrorResponse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,oCAAoC,EAAE,MAAM,CAAC;IAC7C,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;OAEG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,EAAE,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjG,MAAM,WAAW,2BAA2B;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,uCAAuC;IACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,8BAA8B;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,gEAAgE;IAChE,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"ErrorResponse.d.ts","sourceRoot":"","sources":["../../../src/request/ErrorResponse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,oCAAoC,EAAE,MAAM,CAAC;IAC7C,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;OAEG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,EAAE,CAAC;AAE1C,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,OAAO,GACP,KAAK,GACL,KAAK,GACL,KAAK,GACL,SAAS,GACT,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,WAAW,2BAA2B;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,uCAAuC;IACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,8BAA8B;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,gEAAgE;IAChE,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorResponse.js","sourceRoot":"","sources":["../../../src/request/ErrorResponse.ts"],"names":[],"mappings":"AAgGA;;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 = \"Average\" | \"Count\" | \"Max\" | \"Min\" | \"Sum\" | \"MakeSet\" | \"MakeList\";\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;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"]}
@@ -3,6 +3,7 @@ import type { HTTPMethod, OperationType, ResourceType } from "../common/index.js
3
3
  import type { Agent } from "../CosmosClientOptions.js";
4
4
  import type { ConnectionPolicy, PartitionKey } from "../documents/index.js";
5
5
  import type { GlobalEndpointManager } from "../globalEndpointManager.js";
6
+ import type { GlobalPartitionEndpointManager } from "../globalPartitionEndpointManager.js";
6
7
  import type { PluginConfig } from "../plugins/Plugin.js";
7
8
  import type { CosmosHeaders } from "../queryExecutionContext/CosmosHeaders.js";
8
9
  import type { FeedOptions } from "./FeedOptions.js";
@@ -31,5 +32,9 @@ export interface RequestContext {
31
32
  partitionKey?: PartitionKey;
32
33
  pipeline?: Pipeline;
33
34
  httpClient?: HttpClient;
35
+ /**
36
+ * Global partition endpoint manager instance.
37
+ */
38
+ globalPartitionEndpointManager?: GlobalPartitionEndpointManager;
34
39
  }
35
40
  //# sourceMappingURL=RequestContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../../../src/request/RequestContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,KAAK,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC;IACtC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB"}
1
+ {"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../../../src/request/RequestContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,KAAK,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC;IACtC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,8BAA8B,CAAC,EAAE,8BAA8B,CAAC;CACjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"RequestContext.js","sourceRoot":"","sources":["../../../src/request/RequestContext.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../ClientContext.js\";\nimport type { HTTPMethod, OperationType, ResourceType } from \"../common/index.js\";\nimport type { Agent } from \"../CosmosClientOptions.js\";\nimport type { ConnectionPolicy, PartitionKey } from \"../documents/index.js\";\nimport type { GlobalEndpointManager } from \"../globalEndpointManager.js\";\nimport type { PluginConfig } from \"../plugins/Plugin.js\";\nimport type { CosmosHeaders } from \"../queryExecutionContext/CosmosHeaders.js\";\nimport type { FeedOptions } from \"./FeedOptions.js\";\nimport type { RequestOptions } from \"./RequestOptions.js\";\nimport type { HttpClient, Pipeline } from \"@azure/core-rest-pipeline\";\n\n/**\n * @hidden\n */\nexport interface RequestContext {\n path?: string;\n operationType?: OperationType;\n client?: ClientContext;\n retryCount?: number;\n resourceType?: ResourceType;\n resourceId?: string;\n globalEndpointManager: GlobalEndpointManager;\n connectionPolicy: ConnectionPolicy;\n requestAgent: Agent;\n body?: any;\n headers?: CosmosHeaders;\n endpoint?: string;\n method: HTTPMethod;\n partitionKeyRangeId?: string;\n options: FeedOptions | RequestOptions;\n plugins: PluginConfig[];\n partitionKey?: PartitionKey;\n pipeline?: Pipeline;\n httpClient?: HttpClient;\n}\n"]}
1
+ {"version":3,"file":"RequestContext.js","sourceRoot":"","sources":["../../../src/request/RequestContext.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../ClientContext.js\";\nimport type { HTTPMethod, OperationType, ResourceType } from \"../common/index.js\";\nimport type { Agent } from \"../CosmosClientOptions.js\";\nimport type { ConnectionPolicy, PartitionKey } from \"../documents/index.js\";\nimport type { GlobalEndpointManager } from \"../globalEndpointManager.js\";\nimport type { GlobalPartitionEndpointManager } from \"../globalPartitionEndpointManager.js\";\nimport type { PluginConfig } from \"../plugins/Plugin.js\";\nimport type { CosmosHeaders } from \"../queryExecutionContext/CosmosHeaders.js\";\nimport type { FeedOptions } from \"./FeedOptions.js\";\nimport type { RequestOptions } from \"./RequestOptions.js\";\nimport type { HttpClient, Pipeline } from \"@azure/core-rest-pipeline\";\n\n/**\n * @hidden\n */\nexport interface RequestContext {\n path?: string;\n operationType?: OperationType;\n client?: ClientContext;\n retryCount?: number;\n resourceType?: ResourceType;\n resourceId?: string;\n globalEndpointManager: GlobalEndpointManager;\n connectionPolicy: ConnectionPolicy;\n requestAgent: Agent;\n body?: any;\n headers?: CosmosHeaders;\n endpoint?: string;\n method: HTTPMethod;\n partitionKeyRangeId?: string;\n options: FeedOptions | RequestOptions;\n plugins: PluginConfig[];\n partitionKey?: PartitionKey;\n pipeline?: Pipeline;\n httpClient?: HttpClient;\n /**\n * Global partition endpoint manager instance.\n */\n globalPartitionEndpointManager?: GlobalPartitionEndpointManager;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RequestHandler.d.ts","sourceRoot":"","sources":["../../../src/request/RequestHandler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAKhE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AA4JvF;;GAEG;AACH,iBAAe,OAAO,CAAC,CAAC,EACtB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,sBAAsB,GACrC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAmB5B;AAED,eAAO,MAAM,cAAc;;CAE1B,CAAC"}
1
+ {"version":3,"file":"RequestHandler.d.ts","sourceRoot":"","sources":["../../../src/request/RequestHandler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAKhE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AA2KvF;;GAEG;AACH,iBAAe,OAAO,CAAC,CAAC,EACtB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,sBAAsB,GACrC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAmB5B;AAED,eAAO,MAAM,cAAc;;CAE1B,CAAC"}
@@ -1,8 +1,8 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
  import { createPipelineRequest, createHttpHeaders } from "@azure/core-rest-pipeline";
4
- import { prepareURL } from "../common/index.js";
5
- import { Constants } from "../common/constants.js";
4
+ import { isReadRequest, prepareURL } from "../common/index.js";
5
+ import { Constants, ResourceType } from "../common/constants.js";
6
6
  import { executePlugins, PluginOn } from "../plugins/Plugin.js";
7
7
  import * as RetryUtility from "../retry/retryUtility.js";
8
8
  import { defaultHttpAgent, defaultHttpsAgent } from "./defaultAgent.js";
@@ -37,9 +37,20 @@ async function httpRequest(requestContext, diagnosticNode) {
37
37
  });
38
38
  }
39
39
  }
40
+ let requestTimeout = requestContext.connectionPolicy.requestTimeout;
41
+ // If the request is a read request and partition level failover or circuit breaker is enabled,
42
+ // set a shorter timeout to allow for quicker failover in case of partition unavailability.
43
+ // This is to ensure that read requests can quickly failover to another partition if the current one is unavailable.
44
+ if ((requestContext.connectionPolicy.enablePartitionLevelFailover ||
45
+ requestContext.connectionPolicy.enablePartitionLevelCircuitBreaker) &&
46
+ requestContext.partitionKeyRangeId &&
47
+ requestContext.resourceType === ResourceType.item &&
48
+ isReadRequest(requestContext.operationType)) {
49
+ requestTimeout = Math.min(requestContext.connectionPolicy.requestTimeout, Constants.RequestTimeoutForReadsInMs);
50
+ }
40
51
  const timeout = setTimeout(() => {
41
52
  controller.abort();
42
- }, requestContext.connectionPolicy.requestTimeout);
53
+ }, requestTimeout);
43
54
  let response;
44
55
  if (requestContext.body) {
45
56
  requestContext.body = bodyFromData(requestContext.body);
@@ -78,7 +89,6 @@ async function httpRequest(requestContext, diagnosticNode) {
78
89
  clearTimeout(timeout);
79
90
  throw error;
80
91
  }
81
- // If the user didn't cancel, it must be an abort we called due to timeout
82
92
  throw new TimeoutError(`Timeout Error! Request took more than ${requestContext.connectionPolicy.requestTimeout} ms`);
83
93
  }
84
94
  throw error;
@@ -1 +1 @@
1
- {"version":3,"file":"RequestHandler.js","sourceRoot":"","sources":["../../../src/request/RequestHandler.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelineResponse } from \"@azure/core-rest-pipeline\";\nimport { createPipelineRequest, createHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { prepareURL } from \"../common/index.js\";\nimport { Constants } from \"../common/constants.js\";\nimport { executePlugins, PluginOn } from \"../plugins/Plugin.js\";\nimport * as RetryUtility from \"../retry/retryUtility.js\";\nimport { defaultHttpAgent, defaultHttpsAgent } from \"./defaultAgent.js\";\nimport { ErrorResponse } from \"./ErrorResponse.js\";\nimport { bodyFromData } from \"./request.js\";\nimport type { RequestContext } from \"./RequestContext.js\";\nimport type { Response as CosmosResponse } from \"./Response.js\";\nimport { TimeoutError } from \"./TimeoutError.js\";\nimport { getCachedDefaultHttpClient } from \"../utils/cachedClient.js\";\nimport type { AzureLogger } from \"@azure/logger\";\nimport { createClientLogger } from \"@azure/logger\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { DiagnosticNodeType } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { addDiagnosticChild } from \"../utils/diagnostics.js\";\nimport { getCurrentTimestampInMs } from \"../utils/time.js\";\n\nconst logger: AzureLogger = createClientLogger(\"RequestHandler\");\n\nasync function executeRequest(\n diagnosticNode: DiagnosticNodeInternal,\n requestContext: RequestContext,\n): Promise<CosmosResponse<any>> {\n return executePlugins(diagnosticNode, requestContext, httpRequest, PluginOn.request);\n}\n\n/**\n * @hidden\n */\nasync function httpRequest(\n requestContext: RequestContext,\n diagnosticNode: DiagnosticNodeInternal,\n): Promise<{\n headers: any;\n result: any;\n code: number;\n substatus: number;\n}> {\n const controller = new AbortController();\n const signal = controller.signal;\n\n // Wrap users passed abort events and call our own internal abort()\n const userSignal = requestContext.options && requestContext.options.abortSignal;\n if (userSignal) {\n if (userSignal.aborted) {\n controller.abort();\n } else {\n userSignal.addEventListener(\"abort\", () => {\n controller.abort();\n });\n }\n }\n\n const timeout = setTimeout(() => {\n controller.abort();\n }, requestContext.connectionPolicy.requestTimeout);\n\n let response: PipelineResponse;\n\n if (requestContext.body) {\n requestContext.body = bodyFromData(requestContext.body);\n }\n\n const httpsClient = requestContext.httpClient ?? getCachedDefaultHttpClient();\n const url = prepareURL(requestContext.endpoint, requestContext.path);\n const reqHeaders = createHttpHeaders(requestContext.headers as any);\n const pipelineRequest = createPipelineRequest({\n url,\n headers: reqHeaders,\n method: requestContext.method,\n abortSignal: signal,\n body: requestContext.body,\n });\n if (requestContext.requestAgent) {\n pipelineRequest.agent = requestContext.requestAgent;\n } else {\n const parsedUrl = new URL(url);\n pipelineRequest.agent = parsedUrl.protocol === \"http:\" ? defaultHttpAgent : defaultHttpsAgent;\n pipelineRequest.allowInsecureConnection = parsedUrl.protocol === \"http:\";\n }\n\n const startTimeUTCInMs = getCurrentTimestampInMs();\n try {\n if (requestContext.pipeline) {\n response = await requestContext.pipeline.sendRequest(httpsClient, pipelineRequest);\n } else {\n response = await httpsClient.sendRequest(pipelineRequest);\n }\n } catch (error: any) {\n if (error.name === \"AbortError\") {\n // If the user passed signal caused the abort, cancel the timeout and rethrow the error\n if (userSignal && userSignal.aborted === true) {\n clearTimeout(timeout);\n throw error;\n }\n // If the user didn't cancel, it must be an abort we called due to timeout\n throw new TimeoutError(\n `Timeout Error! Request took more than ${requestContext.connectionPolicy.requestTimeout} ms`,\n );\n }\n throw error;\n }\n\n clearTimeout(timeout);\n const result =\n response.status === 204 || response.status === 304 || response.bodyAsText === \"\"\n ? null\n : JSON.parse(response.bodyAsText);\n const responseHeaders = response.headers.toJSON();\n\n const substatus = responseHeaders[Constants.HttpHeaders.SubStatus]\n ? parseInt(responseHeaders[Constants.HttpHeaders.SubStatus], 10)\n : undefined;\n\n diagnosticNode.recordSuccessfulNetworkCall(\n startTimeUTCInMs,\n requestContext,\n response,\n substatus,\n url,\n );\n\n if (response.status >= 400) {\n const errorResponse: ErrorResponse = new ErrorResponse(result.message);\n logger.warning(\n response.status +\n \" \" +\n requestContext.endpoint +\n \" \" +\n requestContext.path +\n \" \" +\n result.message,\n );\n\n errorResponse.code = response.status;\n errorResponse.body = result;\n errorResponse.headers = responseHeaders;\n\n if (Constants.HttpHeaders.ActivityId in responseHeaders) {\n errorResponse.activityId = responseHeaders[Constants.HttpHeaders.ActivityId];\n }\n\n if (Constants.HttpHeaders.SubStatus in responseHeaders) {\n errorResponse.substatus = substatus;\n }\n\n if (Constants.HttpHeaders.RetryAfterInMs in responseHeaders) {\n errorResponse.retryAfterInMs = parseInt(\n responseHeaders[Constants.HttpHeaders.RetryAfterInMs],\n 10,\n );\n Object.defineProperty(errorResponse, \"retryAfterInMilliseconds\", {\n get: () => {\n return errorResponse.retryAfterInMs;\n },\n });\n }\n\n throw errorResponse;\n }\n return {\n headers: responseHeaders,\n result,\n code: response.status,\n substatus,\n };\n}\n\n/**\n * @hidden\n */\nasync function request<T>(\n requestContext: RequestContext,\n diagnosticNode: DiagnosticNodeInternal,\n): Promise<CosmosResponse<T>> {\n if (requestContext.body) {\n requestContext.body = bodyFromData(requestContext.body);\n if (!requestContext.body) {\n throw new Error(\"parameter data must be a javascript object, string, or Buffer\");\n }\n }\n\n return addDiagnosticChild(\n async (childNode: DiagnosticNodeInternal) => {\n return RetryUtility.execute({\n diagnosticNode: childNode,\n requestContext,\n executeRequest,\n });\n },\n diagnosticNode,\n DiagnosticNodeType.REQUEST_ATTEMPTS,\n );\n}\n\nexport const RequestHandler = {\n request,\n};\n"]}
1
+ {"version":3,"file":"RequestHandler.js","sourceRoot":"","sources":["../../../src/request/RequestHandler.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelineResponse } from \"@azure/core-rest-pipeline\";\nimport { createPipelineRequest, createHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { isReadRequest, prepareURL } from \"../common/index.js\";\nimport { Constants, ResourceType } from \"../common/constants.js\";\nimport { executePlugins, PluginOn } from \"../plugins/Plugin.js\";\nimport * as RetryUtility from \"../retry/retryUtility.js\";\nimport { defaultHttpAgent, defaultHttpsAgent } from \"./defaultAgent.js\";\nimport { ErrorResponse } from \"./ErrorResponse.js\";\nimport { bodyFromData } from \"./request.js\";\nimport type { RequestContext } from \"./RequestContext.js\";\nimport type { Response as CosmosResponse } from \"./Response.js\";\nimport { TimeoutError } from \"./TimeoutError.js\";\nimport { getCachedDefaultHttpClient } from \"../utils/cachedClient.js\";\nimport type { AzureLogger } from \"@azure/logger\";\nimport { createClientLogger } from \"@azure/logger\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { DiagnosticNodeType } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { addDiagnosticChild } from \"../utils/diagnostics.js\";\nimport { getCurrentTimestampInMs } from \"../utils/time.js\";\n\nconst logger: AzureLogger = createClientLogger(\"RequestHandler\");\n\nasync function executeRequest(\n diagnosticNode: DiagnosticNodeInternal,\n requestContext: RequestContext,\n): Promise<CosmosResponse<any>> {\n return executePlugins(diagnosticNode, requestContext, httpRequest, PluginOn.request);\n}\n\n/**\n * @hidden\n */\nasync function httpRequest(\n requestContext: RequestContext,\n diagnosticNode: DiagnosticNodeInternal,\n): Promise<{\n headers: any;\n result: any;\n code: number;\n substatus: number;\n}> {\n const controller = new AbortController();\n const signal = controller.signal;\n\n // Wrap users passed abort events and call our own internal abort()\n const userSignal = requestContext.options && requestContext.options.abortSignal;\n if (userSignal) {\n if (userSignal.aborted) {\n controller.abort();\n } else {\n userSignal.addEventListener(\"abort\", () => {\n controller.abort();\n });\n }\n }\n\n let requestTimeout = requestContext.connectionPolicy.requestTimeout;\n // If the request is a read request and partition level failover or circuit breaker is enabled,\n // set a shorter timeout to allow for quicker failover in case of partition unavailability.\n // This is to ensure that read requests can quickly failover to another partition if the current one is unavailable.\n if (\n (requestContext.connectionPolicy.enablePartitionLevelFailover ||\n requestContext.connectionPolicy.enablePartitionLevelCircuitBreaker) &&\n requestContext.partitionKeyRangeId &&\n requestContext.resourceType === ResourceType.item &&\n isReadRequest(requestContext.operationType)\n ) {\n requestTimeout = Math.min(\n requestContext.connectionPolicy.requestTimeout,\n Constants.RequestTimeoutForReadsInMs,\n );\n }\n const timeout = setTimeout(() => {\n controller.abort();\n }, requestTimeout);\n\n let response: PipelineResponse;\n\n if (requestContext.body) {\n requestContext.body = bodyFromData(requestContext.body);\n }\n\n const httpsClient = requestContext.httpClient ?? getCachedDefaultHttpClient();\n const url = prepareURL(requestContext.endpoint, requestContext.path);\n const reqHeaders = createHttpHeaders(requestContext.headers as any);\n const pipelineRequest = createPipelineRequest({\n url,\n headers: reqHeaders,\n method: requestContext.method,\n abortSignal: signal,\n body: requestContext.body,\n });\n if (requestContext.requestAgent) {\n pipelineRequest.agent = requestContext.requestAgent;\n } else {\n const parsedUrl = new URL(url);\n pipelineRequest.agent = parsedUrl.protocol === \"http:\" ? defaultHttpAgent : defaultHttpsAgent;\n pipelineRequest.allowInsecureConnection = parsedUrl.protocol === \"http:\";\n }\n\n const startTimeUTCInMs = getCurrentTimestampInMs();\n try {\n if (requestContext.pipeline) {\n response = await requestContext.pipeline.sendRequest(httpsClient, pipelineRequest);\n } else {\n response = await httpsClient.sendRequest(pipelineRequest);\n }\n } catch (error: any) {\n if (error.name === \"AbortError\") {\n // If the user passed signal caused the abort, cancel the timeout and rethrow the error\n if (userSignal && userSignal.aborted === true) {\n clearTimeout(timeout);\n throw error;\n }\n throw new TimeoutError(\n `Timeout Error! Request took more than ${requestContext.connectionPolicy.requestTimeout} ms`,\n );\n }\n throw error;\n }\n\n clearTimeout(timeout);\n const result =\n response.status === 204 || response.status === 304 || response.bodyAsText === \"\"\n ? null\n : JSON.parse(response.bodyAsText);\n const responseHeaders = response.headers.toJSON();\n\n const substatus = responseHeaders[Constants.HttpHeaders.SubStatus]\n ? parseInt(responseHeaders[Constants.HttpHeaders.SubStatus], 10)\n : undefined;\n\n diagnosticNode.recordSuccessfulNetworkCall(\n startTimeUTCInMs,\n requestContext,\n response,\n substatus,\n url,\n );\n\n if (response.status >= 400) {\n const errorResponse: ErrorResponse = new ErrorResponse(result.message);\n logger.warning(\n response.status +\n \" \" +\n requestContext.endpoint +\n \" \" +\n requestContext.path +\n \" \" +\n result.message,\n );\n\n errorResponse.code = response.status;\n errorResponse.body = result;\n errorResponse.headers = responseHeaders;\n\n if (Constants.HttpHeaders.ActivityId in responseHeaders) {\n errorResponse.activityId = responseHeaders[Constants.HttpHeaders.ActivityId];\n }\n\n if (Constants.HttpHeaders.SubStatus in responseHeaders) {\n errorResponse.substatus = substatus;\n }\n\n if (Constants.HttpHeaders.RetryAfterInMs in responseHeaders) {\n errorResponse.retryAfterInMs = parseInt(\n responseHeaders[Constants.HttpHeaders.RetryAfterInMs],\n 10,\n );\n Object.defineProperty(errorResponse, \"retryAfterInMilliseconds\", {\n get: () => {\n return errorResponse.retryAfterInMs;\n },\n });\n }\n\n throw errorResponse;\n }\n return {\n headers: responseHeaders,\n result,\n code: response.status,\n substatus,\n };\n}\n\n/**\n * @hidden\n */\nasync function request<T>(\n requestContext: RequestContext,\n diagnosticNode: DiagnosticNodeInternal,\n): Promise<CosmosResponse<T>> {\n if (requestContext.body) {\n requestContext.body = bodyFromData(requestContext.body);\n if (!requestContext.body) {\n throw new Error(\"parameter data must be a javascript object, string, or Buffer\");\n }\n }\n\n return addDiagnosticChild(\n async (childNode: DiagnosticNodeInternal) => {\n return RetryUtility.execute({\n diagnosticNode: childNode,\n requestContext,\n executeRequest,\n });\n },\n diagnosticNode,\n DiagnosticNodeType.REQUEST_ATTEMPTS,\n );\n}\n\nexport const RequestHandler = {\n request,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/request/request.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,UAAU,EAEV,aAAa,EACb,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAgBlF,cAAc;AACd,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAKpF;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,aAAa,EAAE,mBAAmB,CAAC;IACnC,cAAc,EAAE,aAAa,CAAC;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,cAAc,GAAG,WAAW,CAAC;IACtC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAID;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAC/B,aAAa,EACb,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,OAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,GACb,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAsM5C"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/request/request.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,UAAU,EAEV,aAAa,EACb,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAgBlF,cAAc;AACd,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAKpF;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,aAAa,EAAE,mBAAmB,CAAC;IACnC,cAAc,EAAE,aAAa,CAAC;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,cAAc,GAAG,WAAW,CAAC;IACtC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAID;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAC/B,aAAa,EACb,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,OAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,GACb,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoM5C"}
@@ -134,6 +134,9 @@ export async function getHeaders({ clientOptions, defaultHeaders, verb, path, re
134
134
  if (partitionKey !== undefined && !headers[Constants.HttpHeaders.PartitionKey]) {
135
135
  headers[Constants.HttpHeaders.PartitionKey] = jsonStringifyAndEscapeNonASCII(partitionKey);
136
136
  }
137
+ else if (partitionKeyRangeId !== undefined) {
138
+ headers[Constants.HttpHeaders.PartitionKeyRangeID] = partitionKeyRangeId;
139
+ }
137
140
  if (clientOptions.key || clientOptions.tokenProvider) {
138
141
  headers[Constants.HttpHeaders.XDate] = new Date().toUTCString();
139
142
  }
@@ -145,9 +148,6 @@ export async function getHeaders({ clientOptions, defaultHeaders, verb, path, re
145
148
  if (!headers[Constants.HttpHeaders.Accept]) {
146
149
  headers[Constants.HttpHeaders.Accept] = JsonContentType;
147
150
  }
148
- if (partitionKeyRangeId !== undefined) {
149
- headers[Constants.HttpHeaders.PartitionKeyRangeID] = partitionKeyRangeId;
150
- }
151
151
  if (options.enableScriptLogging) {
152
152
  headers[Constants.HttpHeaders.EnableScriptLogging] = options.enableScriptLogging;
153
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/request/request.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { setAuthorizationHeader } from \"../auth.js\";\nimport {\n Constants,\n HTTPMethod,\n jsonStringifyAndEscapeNonASCII,\n OperationType,\n ResourceType,\n SDKSupportedCapabilities,\n} from \"../common/index.js\";\nimport type { CosmosClientOptions } from \"../CosmosClientOptions.js\";\nimport type { PartitionKeyInternal } from \"../documents/index.js\";\nimport type { CosmosHeaders } from \"../queryExecutionContext/index.js\";\nimport { ErrorResponse, type FeedOptions, type RequestOptions } from \"./index.js\";\nimport { defaultLogger } from \"../common/logger.js\";\nimport { ChangeFeedMode } from \"../client/ChangeFeed/index.js\";\n// ----------------------------------------------------------------------------\n// Utility methods\n//\n\n/** @hidden */\nfunction javaScriptFriendlyJSONStringify(s: unknown): string {\n // two line terminators (Line separator and Paragraph separator) are not needed to be escaped in JSON\n // but are needed to be escaped in JavaScript.\n return JSON.stringify(s)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\n\n/** @hidden */\nexport function bodyFromData(data: Buffer | string | Record<string, unknown>): string {\n if (typeof data === \"object\") {\n return javaScriptFriendlyJSONStringify(data);\n }\n return data;\n}\n\n/**\n * @hidden\n */\ninterface GetHeadersOptions {\n clientOptions: CosmosClientOptions;\n defaultHeaders: CosmosHeaders;\n verb: HTTPMethod;\n path: string;\n resourceId: string;\n resourceType: ResourceType;\n options: RequestOptions & FeedOptions;\n operationType?: OperationType;\n partitionKeyRangeId?: string;\n useMultipleWriteLocations?: boolean;\n partitionKey?: PartitionKeyInternal;\n}\n\nconst JsonContentType = \"application/json\";\n\n/**\n * @hidden\n */\nexport async function getHeaders({\n clientOptions,\n defaultHeaders,\n verb,\n path,\n resourceId,\n resourceType,\n options = {},\n operationType,\n partitionKeyRangeId,\n useMultipleWriteLocations,\n partitionKey,\n}: GetHeadersOptions): Promise<CosmosHeaders> {\n const headers: CosmosHeaders = {\n [Constants.HttpHeaders.ResponseContinuationTokenLimitInKB]: 1,\n [Constants.HttpHeaders.EnableCrossPartitionQuery]: true,\n ...defaultHeaders,\n };\n\n // Adding SDKSupportedCapabilities header to hint that SDK supports partition merge\n headers[Constants.HttpHeaders.SDKSupportedCapabilities] = SDKSupportedCapabilities.PartitionMerge;\n\n if (useMultipleWriteLocations) {\n headers[Constants.HttpHeaders.ALLOW_MULTIPLE_WRITES] = true;\n }\n\n if (options.continuationTokenLimitInKB) {\n headers[Constants.HttpHeaders.ResponseContinuationTokenLimitInKB] =\n options.continuationTokenLimitInKB;\n }\n if (options.continuationToken) {\n headers[Constants.HttpHeaders.Continuation] = options.continuationToken;\n } else if (options.continuation) {\n headers[Constants.HttpHeaders.Continuation] = options.continuation;\n }\n\n if (options.preTriggerInclude) {\n headers[Constants.HttpHeaders.PreTriggerInclude] =\n options.preTriggerInclude.constructor === Array\n ? (options.preTriggerInclude as string[]).join(\",\")\n : (options.preTriggerInclude as string);\n }\n\n if (options.postTriggerInclude) {\n headers[Constants.HttpHeaders.PostTriggerInclude] =\n options.postTriggerInclude.constructor === Array\n ? (options.postTriggerInclude as string[]).join(\",\")\n : (options.postTriggerInclude as string);\n }\n\n if (options.offerType) {\n headers[Constants.HttpHeaders.OfferType] = options.offerType;\n }\n\n if (options.offerThroughput) {\n headers[Constants.HttpHeaders.OfferThroughput] = options.offerThroughput;\n }\n\n if (options.maxItemCount) {\n headers[Constants.HttpHeaders.PageSize] = options.maxItemCount;\n }\n\n if (options.accessCondition) {\n if (options.accessCondition.type === \"IfMatch\") {\n headers[Constants.HttpHeaders.IfMatch] = options.accessCondition.condition;\n } else {\n headers[Constants.HttpHeaders.IfNoneMatch] = options.accessCondition.condition;\n }\n }\n\n if (options.useAllVersionsAndDeletesFeed) {\n // headers required for reading feed in allVersionsAndDeletes mode\n headers[Constants.HttpHeaders.A_IM] = ChangeFeedMode.AllVersionsAndDeletes;\n headers[Constants.HttpHeaders.ChangeFeedWireFormatVersion] =\n Constants.AllVersionsAndDeletesChangeFeedWireFormatVersion;\n }\n\n if (options.useIncrementalFeed || options.useLatestVersionFeed) {\n headers[Constants.HttpHeaders.A_IM] = ChangeFeedMode.LatestVersion;\n }\n\n if (options.indexingDirective) {\n headers[Constants.HttpHeaders.IndexingDirective] = options.indexingDirective;\n }\n\n if (options.consistencyLevel) {\n headers[Constants.HttpHeaders.ConsistencyLevel] = options.consistencyLevel;\n }\n\n if (options.priorityLevel) {\n headers[Constants.HttpHeaders.PriorityLevel] = options.priorityLevel;\n }\n\n if (options.throughputBucket) {\n headers[Constants.HttpHeaders.ThroughputBucket] = options.throughputBucket;\n }\n\n if (options.maxIntegratedCacheStalenessInMs && resourceType === ResourceType.item) {\n if (typeof options.maxIntegratedCacheStalenessInMs === \"number\") {\n headers[Constants.HttpHeaders.DedicatedGatewayPerRequestCacheStaleness] =\n options.maxIntegratedCacheStalenessInMs.toString();\n } else {\n defaultLogger.error(\n `RangeError: maxIntegratedCacheStalenessInMs \"${options.maxIntegratedCacheStalenessInMs}\" is not a valid parameter.`,\n );\n headers[Constants.HttpHeaders.DedicatedGatewayPerRequestCacheStaleness] = \"null\";\n }\n }\n\n if (options.bypassIntegratedCache) {\n headers[Constants.HttpHeaders.DedicatedGatewayPerRequestBypassCache] =\n options.bypassIntegratedCache.toString();\n }\n\n if (options.resourceTokenExpirySeconds) {\n headers[Constants.HttpHeaders.ResourceTokenExpiry] = options.resourceTokenExpirySeconds;\n }\n\n if (options.sessionToken) {\n headers[Constants.HttpHeaders.SessionToken] = options.sessionToken;\n }\n\n if (options.enableScanInQuery) {\n headers[Constants.HttpHeaders.EnableScanInQuery] = options.enableScanInQuery;\n }\n\n if (options.populateQuotaInfo) {\n headers[Constants.HttpHeaders.PopulateQuotaInfo] = options.populateQuotaInfo;\n }\n\n if (options.populateQueryMetrics) {\n headers[Constants.HttpHeaders.PopulateQueryMetrics] = options.populateQueryMetrics;\n }\n\n if (\n options.maxDegreeOfParallelism !== undefined &&\n options.maxDegreeOfParallelism !== 0 &&\n options.maxDegreeOfParallelism !== 1\n ) {\n headers[Constants.HttpHeaders.ParallelizeCrossPartitionQuery] = true;\n }\n\n if (options.populateQuotaInfo) {\n headers[Constants.HttpHeaders.PopulateQuotaInfo] = true;\n }\n\n if (partitionKey !== undefined && !headers[Constants.HttpHeaders.PartitionKey]) {\n headers[Constants.HttpHeaders.PartitionKey] = jsonStringifyAndEscapeNonASCII(partitionKey);\n }\n\n if (clientOptions.key || clientOptions.tokenProvider) {\n headers[Constants.HttpHeaders.XDate] = new Date().toUTCString();\n }\n\n if (verb === HTTPMethod.post || verb === HTTPMethod.put) {\n if (!headers[Constants.HttpHeaders.ContentType]) {\n headers[Constants.HttpHeaders.ContentType] = JsonContentType;\n }\n }\n\n if (!headers[Constants.HttpHeaders.Accept]) {\n headers[Constants.HttpHeaders.Accept] = JsonContentType;\n }\n\n if (partitionKeyRangeId !== undefined) {\n headers[Constants.HttpHeaders.PartitionKeyRangeID] = partitionKeyRangeId;\n }\n\n if (options.enableScriptLogging) {\n headers[Constants.HttpHeaders.EnableScriptLogging] = options.enableScriptLogging;\n }\n\n if (options.disableRUPerMinuteUsage) {\n headers[Constants.HttpHeaders.DisableRUPerMinuteUsage] = true;\n }\n\n if (options.populateIndexMetrics) {\n headers[Constants.HttpHeaders.PopulateIndexMetrics] = options.populateIndexMetrics;\n }\n\n if (clientOptions.clientEncryptionOptions) {\n headers[Constants.HttpHeaders.IsClientEncryptedHeader] = true;\n if (options.containerRid) {\n headers[Constants.HttpHeaders.IntendedCollectionHeader] = options.containerRid;\n }\n }\n\n if (\n clientOptions.key ||\n clientOptions.resourceTokens ||\n clientOptions.tokenProvider ||\n clientOptions.permissionFeed\n ) {\n await setAuthorizationHeader(clientOptions, verb, path, resourceId, resourceType, headers);\n }\n\n if (\n resourceType === ResourceType.item &&\n Object.prototype.hasOwnProperty.call(options, \"contentResponseOnWriteEnabled\") &&\n !options.contentResponseOnWriteEnabled\n ) {\n if (operationType === OperationType.Batch) {\n headers[Constants.HttpHeaders.Prefer] = Constants.HttpHeaders.PreferReturnMinimal;\n } else {\n throw new ErrorResponse(\n \"Currently `contentResponseOnWriteEnabled` option is only supported for batch and bulk operations.\",\n );\n }\n }\n return headers;\n}\n"]}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/request/request.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { setAuthorizationHeader } from \"../auth.js\";\nimport {\n Constants,\n HTTPMethod,\n jsonStringifyAndEscapeNonASCII,\n OperationType,\n ResourceType,\n SDKSupportedCapabilities,\n} from \"../common/index.js\";\nimport type { CosmosClientOptions } from \"../CosmosClientOptions.js\";\nimport type { PartitionKeyInternal } from \"../documents/index.js\";\nimport type { CosmosHeaders } from \"../queryExecutionContext/index.js\";\nimport { ErrorResponse, type FeedOptions, type RequestOptions } from \"./index.js\";\nimport { defaultLogger } from \"../common/logger.js\";\nimport { ChangeFeedMode } from \"../client/ChangeFeed/index.js\";\n// ----------------------------------------------------------------------------\n// Utility methods\n//\n\n/** @hidden */\nfunction javaScriptFriendlyJSONStringify(s: unknown): string {\n // two line terminators (Line separator and Paragraph separator) are not needed to be escaped in JSON\n // but are needed to be escaped in JavaScript.\n return JSON.stringify(s)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\n\n/** @hidden */\nexport function bodyFromData(data: Buffer | string | Record<string, unknown>): string {\n if (typeof data === \"object\") {\n return javaScriptFriendlyJSONStringify(data);\n }\n return data;\n}\n\n/**\n * @hidden\n */\ninterface GetHeadersOptions {\n clientOptions: CosmosClientOptions;\n defaultHeaders: CosmosHeaders;\n verb: HTTPMethod;\n path: string;\n resourceId: string;\n resourceType: ResourceType;\n options: RequestOptions & FeedOptions;\n operationType?: OperationType;\n partitionKeyRangeId?: string;\n useMultipleWriteLocations?: boolean;\n partitionKey?: PartitionKeyInternal;\n}\n\nconst JsonContentType = \"application/json\";\n\n/**\n * @hidden\n */\nexport async function getHeaders({\n clientOptions,\n defaultHeaders,\n verb,\n path,\n resourceId,\n resourceType,\n options = {},\n operationType,\n partitionKeyRangeId,\n useMultipleWriteLocations,\n partitionKey,\n}: GetHeadersOptions): Promise<CosmosHeaders> {\n const headers: CosmosHeaders = {\n [Constants.HttpHeaders.ResponseContinuationTokenLimitInKB]: 1,\n [Constants.HttpHeaders.EnableCrossPartitionQuery]: true,\n ...defaultHeaders,\n };\n\n // Adding SDKSupportedCapabilities header to hint that SDK supports partition merge\n headers[Constants.HttpHeaders.SDKSupportedCapabilities] = SDKSupportedCapabilities.PartitionMerge;\n\n if (useMultipleWriteLocations) {\n headers[Constants.HttpHeaders.ALLOW_MULTIPLE_WRITES] = true;\n }\n\n if (options.continuationTokenLimitInKB) {\n headers[Constants.HttpHeaders.ResponseContinuationTokenLimitInKB] =\n options.continuationTokenLimitInKB;\n }\n if (options.continuationToken) {\n headers[Constants.HttpHeaders.Continuation] = options.continuationToken;\n } else if (options.continuation) {\n headers[Constants.HttpHeaders.Continuation] = options.continuation;\n }\n\n if (options.preTriggerInclude) {\n headers[Constants.HttpHeaders.PreTriggerInclude] =\n options.preTriggerInclude.constructor === Array\n ? (options.preTriggerInclude as string[]).join(\",\")\n : (options.preTriggerInclude as string);\n }\n\n if (options.postTriggerInclude) {\n headers[Constants.HttpHeaders.PostTriggerInclude] =\n options.postTriggerInclude.constructor === Array\n ? (options.postTriggerInclude as string[]).join(\",\")\n : (options.postTriggerInclude as string);\n }\n\n if (options.offerType) {\n headers[Constants.HttpHeaders.OfferType] = options.offerType;\n }\n\n if (options.offerThroughput) {\n headers[Constants.HttpHeaders.OfferThroughput] = options.offerThroughput;\n }\n\n if (options.maxItemCount) {\n headers[Constants.HttpHeaders.PageSize] = options.maxItemCount;\n }\n\n if (options.accessCondition) {\n if (options.accessCondition.type === \"IfMatch\") {\n headers[Constants.HttpHeaders.IfMatch] = options.accessCondition.condition;\n } else {\n headers[Constants.HttpHeaders.IfNoneMatch] = options.accessCondition.condition;\n }\n }\n\n if (options.useAllVersionsAndDeletesFeed) {\n // headers required for reading feed in allVersionsAndDeletes mode\n headers[Constants.HttpHeaders.A_IM] = ChangeFeedMode.AllVersionsAndDeletes;\n headers[Constants.HttpHeaders.ChangeFeedWireFormatVersion] =\n Constants.AllVersionsAndDeletesChangeFeedWireFormatVersion;\n }\n\n if (options.useIncrementalFeed || options.useLatestVersionFeed) {\n headers[Constants.HttpHeaders.A_IM] = ChangeFeedMode.LatestVersion;\n }\n\n if (options.indexingDirective) {\n headers[Constants.HttpHeaders.IndexingDirective] = options.indexingDirective;\n }\n\n if (options.consistencyLevel) {\n headers[Constants.HttpHeaders.ConsistencyLevel] = options.consistencyLevel;\n }\n\n if (options.priorityLevel) {\n headers[Constants.HttpHeaders.PriorityLevel] = options.priorityLevel;\n }\n\n if (options.throughputBucket) {\n headers[Constants.HttpHeaders.ThroughputBucket] = options.throughputBucket;\n }\n\n if (options.maxIntegratedCacheStalenessInMs && resourceType === ResourceType.item) {\n if (typeof options.maxIntegratedCacheStalenessInMs === \"number\") {\n headers[Constants.HttpHeaders.DedicatedGatewayPerRequestCacheStaleness] =\n options.maxIntegratedCacheStalenessInMs.toString();\n } else {\n defaultLogger.error(\n `RangeError: maxIntegratedCacheStalenessInMs \"${options.maxIntegratedCacheStalenessInMs}\" is not a valid parameter.`,\n );\n headers[Constants.HttpHeaders.DedicatedGatewayPerRequestCacheStaleness] = \"null\";\n }\n }\n\n if (options.bypassIntegratedCache) {\n headers[Constants.HttpHeaders.DedicatedGatewayPerRequestBypassCache] =\n options.bypassIntegratedCache.toString();\n }\n\n if (options.resourceTokenExpirySeconds) {\n headers[Constants.HttpHeaders.ResourceTokenExpiry] = options.resourceTokenExpirySeconds;\n }\n\n if (options.sessionToken) {\n headers[Constants.HttpHeaders.SessionToken] = options.sessionToken;\n }\n\n if (options.enableScanInQuery) {\n headers[Constants.HttpHeaders.EnableScanInQuery] = options.enableScanInQuery;\n }\n\n if (options.populateQuotaInfo) {\n headers[Constants.HttpHeaders.PopulateQuotaInfo] = options.populateQuotaInfo;\n }\n\n if (options.populateQueryMetrics) {\n headers[Constants.HttpHeaders.PopulateQueryMetrics] = options.populateQueryMetrics;\n }\n\n if (\n options.maxDegreeOfParallelism !== undefined &&\n options.maxDegreeOfParallelism !== 0 &&\n options.maxDegreeOfParallelism !== 1\n ) {\n headers[Constants.HttpHeaders.ParallelizeCrossPartitionQuery] = true;\n }\n\n if (options.populateQuotaInfo) {\n headers[Constants.HttpHeaders.PopulateQuotaInfo] = true;\n }\n\n if (partitionKey !== undefined && !headers[Constants.HttpHeaders.PartitionKey]) {\n headers[Constants.HttpHeaders.PartitionKey] = jsonStringifyAndEscapeNonASCII(partitionKey);\n } else if (partitionKeyRangeId !== undefined) {\n headers[Constants.HttpHeaders.PartitionKeyRangeID] = partitionKeyRangeId;\n }\n\n if (clientOptions.key || clientOptions.tokenProvider) {\n headers[Constants.HttpHeaders.XDate] = new Date().toUTCString();\n }\n\n if (verb === HTTPMethod.post || verb === HTTPMethod.put) {\n if (!headers[Constants.HttpHeaders.ContentType]) {\n headers[Constants.HttpHeaders.ContentType] = JsonContentType;\n }\n }\n\n if (!headers[Constants.HttpHeaders.Accept]) {\n headers[Constants.HttpHeaders.Accept] = JsonContentType;\n }\n\n if (options.enableScriptLogging) {\n headers[Constants.HttpHeaders.EnableScriptLogging] = options.enableScriptLogging;\n }\n\n if (options.disableRUPerMinuteUsage) {\n headers[Constants.HttpHeaders.DisableRUPerMinuteUsage] = true;\n }\n\n if (options.populateIndexMetrics) {\n headers[Constants.HttpHeaders.PopulateIndexMetrics] = options.populateIndexMetrics;\n }\n\n if (clientOptions.clientEncryptionOptions) {\n headers[Constants.HttpHeaders.IsClientEncryptedHeader] = true;\n if (options.containerRid) {\n headers[Constants.HttpHeaders.IntendedCollectionHeader] = options.containerRid;\n }\n }\n\n if (\n clientOptions.key ||\n clientOptions.resourceTokens ||\n clientOptions.tokenProvider ||\n clientOptions.permissionFeed\n ) {\n await setAuthorizationHeader(clientOptions, verb, path, resourceId, resourceType, headers);\n }\n\n if (\n resourceType === ResourceType.item &&\n Object.prototype.hasOwnProperty.call(options, \"contentResponseOnWriteEnabled\") &&\n !options.contentResponseOnWriteEnabled\n ) {\n if (operationType === OperationType.Batch) {\n headers[Constants.HttpHeaders.Prefer] = Constants.HttpHeaders.PreferReturnMinimal;\n } else {\n throw new ErrorResponse(\n \"Currently `contentResponseOnWriteEnabled` option is only supported for batch and bulk operations.\",\n );\n }\n }\n return headers;\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import type { DiagnosticNodeInternal } from "../diagnostics/DiagnosticNodeInternal.js";
2
- import type { ErrorResponse } from "../request/index.js";
2
+ import type { ErrorResponse, RequestContext } from "../request/index.js";
3
3
  import type { RetryContext } from "./RetryContext.js";
4
4
  /**
5
5
  * @hidden
6
6
  */
7
7
  export interface RetryPolicy {
8
8
  retryAfterInMs: number;
9
- shouldRetry: (errorResponse: ErrorResponse, diagnosticNode: DiagnosticNodeInternal, retryContext?: RetryContext, locationEndpoint?: string) => Promise<boolean | [boolean, string]>;
9
+ shouldRetry: (errorResponse: ErrorResponse, diagnosticNode: DiagnosticNodeInternal, retryContext?: RetryContext, locationEndpoint?: string, requestContext?: RequestContext) => Promise<boolean | [boolean, string]>;
10
10
  }
11
11
  //# sourceMappingURL=RetryPolicy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RetryPolicy.d.ts","sourceRoot":"","sources":["../../../src/retry/RetryPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CACX,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,sBAAsB,EACtC,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,KACtB,OAAO,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C"}
1
+ {"version":3,"file":"RetryPolicy.d.ts","sourceRoot":"","sources":["../../../src/retry/RetryPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CACX,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,sBAAsB,EACtC,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,cAAc,KAC5B,OAAO,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"RetryPolicy.js","sourceRoot":"","sources":["../../../src/retry/RetryPolicy.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type { ErrorResponse } from \"../request/index.js\";\nimport type { RetryContext } from \"./RetryContext.js\";\n\n/**\n * @hidden\n */\nexport interface RetryPolicy {\n retryAfterInMs: number;\n shouldRetry: (\n errorResponse: ErrorResponse,\n diagnosticNode: DiagnosticNodeInternal,\n retryContext?: RetryContext,\n locationEndpoint?: string,\n ) => Promise<boolean | [boolean, string]>;\n}\n"]}
1
+ {"version":3,"file":"RetryPolicy.js","sourceRoot":"","sources":["../../../src/retry/RetryPolicy.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type { ErrorResponse, RequestContext } from \"../request/index.js\";\nimport type { RetryContext } from \"./RetryContext.js\";\n\n/**\n * @hidden\n */\nexport interface RetryPolicy {\n retryAfterInMs: number;\n shouldRetry: (\n errorResponse: ErrorResponse,\n diagnosticNode: DiagnosticNodeInternal,\n retryContext?: RetryContext,\n locationEndpoint?: string,\n requestContext?: RequestContext,\n ) => Promise<boolean | [boolean, string]>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultRetryPolicy.d.ts","sourceRoot":"","sources":["../../../src/retry/defaultRetryPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAqHpD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAKxC,OAAO,CAAC,aAAa;IAJjC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,wBAAwB,CAAa;IACtC,cAAc,EAAE,MAAM,CAAQ;gBAEjB,aAAa,EAAE,aAAa;IAChD;;;OAGG;IACU,WAAW,CACtB,GAAG,EAAE,aAAa,EAClB,cAAc,EAAE,sBAAsB,GACrC,OAAO,CAAC,OAAO,CAAC;CAapB"}
1
+ {"version":3,"file":"defaultRetryPolicy.d.ts","sourceRoot":"","sources":["../../../src/retry/defaultRetryPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAe,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAiHpD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAKxC,OAAO,CAAC,aAAa;IAJjC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,wBAAwB,CAAa;IACtC,cAAc,EAAE,MAAM,CAAQ;gBAEjB,aAAa,EAAE,aAAa;IAChD;;;OAGG;IACU,WAAW,CACtB,GAAG,EAAE,aAAa,EAClB,cAAc,EAAE,sBAAsB,GACrC,OAAO,CAAC,OAAO,CAAC;CAapB"}
@@ -1,4 +1,4 @@
1
- import { OperationType } from "../common/index.js";
1
+ import { OperationType, StatusCodes } from "../common/index.js";
2
2
  import { TimeoutErrorCode } from "../request/TimeoutError.js";
3
3
  /**
4
4
  * @hidden
@@ -101,13 +101,9 @@ const CONNECTION_ERROR_CODES = [
101
101
  * @hidden
102
102
  */
103
103
  function needsRetry(operationType, code) {
104
- if ((operationType === OperationType.Read || operationType === OperationType.Query) &&
105
- CONNECTION_ERROR_CODES.indexOf(code) !== -1) {
106
- return true;
107
- }
108
- else {
109
- return false;
110
- }
104
+ return (code === StatusCodes.ENOTFOUND ||
105
+ ((operationType === OperationType.Read || operationType === OperationType.Query) &&
106
+ CONNECTION_ERROR_CODES.includes(code)));
111
107
  }
112
108
  /**
113
109
  * This class implements the default connection retry policy for requests.
@@ -1 +1 @@
1
- {"version":3,"file":"defaultRetryPolicy.js","sourceRoot":"","sources":["../../../src/retry/defaultRetryPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D;;GAEG;AACH,6BAA6B;AAC7B,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAC7C;;GAEG;AACH,MAAM,yBAAyB,GAAG,KAAK,CAAC;AACxC;;GAEG;AACH,MAAM,uBAAuB,GAAG,KAAK,CAAC;AACtC;;GAEG;AACH,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC;;GAEG;AACH,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC;;GAEG;AACH,MAAM,qCAAqC,GAAG,KAAK,CAAC;AACpD;;GAEG;AACH,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAC5C;;GAEG;AACH,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC;;GAEG;AACH,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAC3C;;GAEG;AACH,MAAM,oCAAoC,GAAG,KAAK,CAAC;AACnD;;GAEG;AACH,MAAM,yBAAyB,GAAG,KAAK,CAAC;AACxC;;GAEG;AACH,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC;;GAEG;AACH,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC;;GAEG;AACH,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC;;GAEG;AACH,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC;;GAEG;AAEH,oBAAoB;AACpB;;GAEG;AACH,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAE1C,mBAAmB;AACnB;;GAEG;AACH,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,8BAA8B;IAC9B,yBAAyB;IACzB,uBAAuB;IACvB,iBAAiB;IACjB,sBAAsB;IACtB,qCAAqC;IACrC,6BAA6B;IAC7B,0BAA0B;IAC1B,4BAA4B;IAC5B,oCAAoC;IACpC,yBAAyB;IACzB,wBAAwB;IACxB,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,UAAU;CACX,CAAC;AAEF;;GAEG;AACH,SAAS,UAAU,CAAC,aAA4B,EAAE,IAAqB;IACrE,IACE,CAAC,aAAa,KAAK,aAAa,CAAC,IAAI,IAAI,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;QAC/E,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAK7B,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAJxC,aAAQ,GAAW,EAAE,CAAC;QACtB,6BAAwB,GAAW,CAAC,CAAC;QACtC,mBAAc,GAAW,IAAI,CAAC;IAEc,CAAC;IACpD;;;OAGG;IACI,KAAK,CAAC,WAAW,CACtB,GAAkB,EAClB,cAAsC;QAEtC,IAAI,GAAG,EAAE,CAAC;YACR,IACE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ;gBAC7C,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,EACxC,CAAC;gBACD,cAAc,CAAC,OAAO,CAAC,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC7D,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { OperationType } from \"../common/index.js\";\nimport type { ErrorResponse } from \"../request/index.js\";\nimport { TimeoutErrorCode } from \"../request/TimeoutError.js\";\nimport type { RetryPolicy } from \"./RetryPolicy.js\";\n\n/**\n * @hidden\n */\n// Windows Socket Error Codes\nconst WindowsInterruptedFunctionCall = 10004;\n/**\n * @hidden\n */\nconst WindowsFileHandleNotValid = 10009;\n/**\n * @hidden\n */\nconst WindowsPermissionDenied = 10013;\n/**\n * @hidden\n */\nconst WindowsBadAddress = 10014;\n/**\n * @hidden\n */\nconst WindowsInvalidArgumnet = 10022;\n/**\n * @hidden\n */\nconst WindowsResourceTemporarilyUnavailable = 10035;\n/**\n * @hidden\n */\nconst WindowsOperationNowInProgress = 10036;\n/**\n * @hidden\n */\nconst WindowsAddressAlreadyInUse = 10048;\n/**\n * @hidden\n */\nconst WindowsConnectionResetByPeer = 10054;\n/**\n * @hidden\n */\nconst WindowsCannotSendAfterSocketShutdown = 10058;\n/**\n * @hidden\n */\nconst WindowsConnectionTimedOut = 10060;\n/**\n * @hidden\n */\nconst WindowsConnectionRefused = 10061;\n/**\n * @hidden\n */\nconst WindowsNameTooLong = 10063;\n/**\n * @hidden\n */\nconst WindowsHostIsDown = 10064;\n/**\n * @hidden\n */\nconst WindowsNoRouteTohost = 10065;\n/**\n * @hidden\n */\n\n// Linux Error Codes\n/**\n * @hidden\n */\nconst LinuxConnectionReset = \"ECONNRESET\";\n\n// Node Error Codes\n/**\n * @hidden\n */\nconst BrokenPipe = \"EPIPE\";\n\n/**\n * @hidden\n */\nconst CONNECTION_ERROR_CODES = [\n WindowsInterruptedFunctionCall,\n WindowsFileHandleNotValid,\n WindowsPermissionDenied,\n WindowsBadAddress,\n WindowsInvalidArgumnet,\n WindowsResourceTemporarilyUnavailable,\n WindowsOperationNowInProgress,\n WindowsAddressAlreadyInUse,\n WindowsConnectionResetByPeer,\n WindowsCannotSendAfterSocketShutdown,\n WindowsConnectionTimedOut,\n WindowsConnectionRefused,\n WindowsNameTooLong,\n WindowsHostIsDown,\n WindowsNoRouteTohost,\n LinuxConnectionReset,\n TimeoutErrorCode,\n BrokenPipe,\n];\n\n/**\n * @hidden\n */\nfunction needsRetry(operationType: OperationType, code: number | string): boolean {\n if (\n (operationType === OperationType.Read || operationType === OperationType.Query) &&\n CONNECTION_ERROR_CODES.indexOf(code) !== -1\n ) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * This class implements the default connection retry policy for requests.\n * @hidden\n */\nexport class DefaultRetryPolicy implements RetryPolicy {\n private maxTries: number = 10;\n private currentRetryAttemptCount: number = 0;\n public retryAfterInMs: number = 1000;\n\n constructor(private operationType: OperationType) {}\n /**\n * Determines whether the request should be retried or not.\n * @param err - Error returned by the request.\n */\n public async shouldRetry(\n err: ErrorResponse,\n diagnosticNode: DiagnosticNodeInternal,\n ): Promise<boolean> {\n if (err) {\n if (\n this.currentRetryAttemptCount < this.maxTries &&\n needsRetry(this.operationType, err.code)\n ) {\n diagnosticNode.addData({ successfulRetryPolicy: \"default\" });\n this.currentRetryAttemptCount++;\n return true;\n }\n }\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"defaultRetryPolicy.js","sourceRoot":"","sources":["../../../src/retry/defaultRetryPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D;;GAEG;AACH,6BAA6B;AAC7B,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAC7C;;GAEG;AACH,MAAM,yBAAyB,GAAG,KAAK,CAAC;AACxC;;GAEG;AACH,MAAM,uBAAuB,GAAG,KAAK,CAAC;AACtC;;GAEG;AACH,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC;;GAEG;AACH,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC;;GAEG;AACH,MAAM,qCAAqC,GAAG,KAAK,CAAC;AACpD;;GAEG;AACH,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAC5C;;GAEG;AACH,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC;;GAEG;AACH,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAC3C;;GAEG;AACH,MAAM,oCAAoC,GAAG,KAAK,CAAC;AACnD;;GAEG;AACH,MAAM,yBAAyB,GAAG,KAAK,CAAC;AACxC;;GAEG;AACH,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC;;GAEG;AACH,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC;;GAEG;AACH,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC;;GAEG;AACH,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC;;GAEG;AAEH,oBAAoB;AACpB;;GAEG;AACH,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAE1C,mBAAmB;AACnB;;GAEG;AACH,MAAM,UAAU,GAAG,OAAO,CAAC;AAE3B;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,8BAA8B;IAC9B,yBAAyB;IACzB,uBAAuB;IACvB,iBAAiB;IACjB,sBAAsB;IACtB,qCAAqC;IACrC,6BAA6B;IAC7B,0BAA0B;IAC1B,4BAA4B;IAC5B,oCAAoC;IACpC,yBAAyB;IACzB,wBAAwB;IACxB,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,UAAU;CACX,CAAC;AAEF;;GAEG;AACH,SAAS,UAAU,CAAC,aAA4B,EAAE,IAAqB;IACrE,OAAO,CACL,IAAI,KAAK,WAAW,CAAC,SAAS;QAC9B,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,IAAI,IAAI,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;YAC9E,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACzC,CAAC;AACJ,CAAC;AACD;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAK7B,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAJxC,aAAQ,GAAW,EAAE,CAAC;QACtB,6BAAwB,GAAW,CAAC,CAAC;QACtC,mBAAc,GAAW,IAAI,CAAC;IAEc,CAAC;IACpD;;;OAGG;IACI,KAAK,CAAC,WAAW,CACtB,GAAkB,EAClB,cAAsC;QAEtC,IAAI,GAAG,EAAE,CAAC;YACR,IACE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ;gBAC7C,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,EACxC,CAAC;gBACD,cAAc,CAAC,OAAO,CAAC,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC7D,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { OperationType, StatusCodes } from \"../common/index.js\";\nimport type { ErrorResponse } from \"../request/index.js\";\nimport { TimeoutErrorCode } from \"../request/TimeoutError.js\";\nimport type { RetryPolicy } from \"./RetryPolicy.js\";\n\n/**\n * @hidden\n */\n// Windows Socket Error Codes\nconst WindowsInterruptedFunctionCall = 10004;\n/**\n * @hidden\n */\nconst WindowsFileHandleNotValid = 10009;\n/**\n * @hidden\n */\nconst WindowsPermissionDenied = 10013;\n/**\n * @hidden\n */\nconst WindowsBadAddress = 10014;\n/**\n * @hidden\n */\nconst WindowsInvalidArgumnet = 10022;\n/**\n * @hidden\n */\nconst WindowsResourceTemporarilyUnavailable = 10035;\n/**\n * @hidden\n */\nconst WindowsOperationNowInProgress = 10036;\n/**\n * @hidden\n */\nconst WindowsAddressAlreadyInUse = 10048;\n/**\n * @hidden\n */\nconst WindowsConnectionResetByPeer = 10054;\n/**\n * @hidden\n */\nconst WindowsCannotSendAfterSocketShutdown = 10058;\n/**\n * @hidden\n */\nconst WindowsConnectionTimedOut = 10060;\n/**\n * @hidden\n */\nconst WindowsConnectionRefused = 10061;\n/**\n * @hidden\n */\nconst WindowsNameTooLong = 10063;\n/**\n * @hidden\n */\nconst WindowsHostIsDown = 10064;\n/**\n * @hidden\n */\nconst WindowsNoRouteTohost = 10065;\n/**\n * @hidden\n */\n\n// Linux Error Codes\n/**\n * @hidden\n */\nconst LinuxConnectionReset = \"ECONNRESET\";\n\n// Node Error Codes\n/**\n * @hidden\n */\nconst BrokenPipe = \"EPIPE\";\n\n/**\n * @hidden\n */\nconst CONNECTION_ERROR_CODES = [\n WindowsInterruptedFunctionCall,\n WindowsFileHandleNotValid,\n WindowsPermissionDenied,\n WindowsBadAddress,\n WindowsInvalidArgumnet,\n WindowsResourceTemporarilyUnavailable,\n WindowsOperationNowInProgress,\n WindowsAddressAlreadyInUse,\n WindowsConnectionResetByPeer,\n WindowsCannotSendAfterSocketShutdown,\n WindowsConnectionTimedOut,\n WindowsConnectionRefused,\n WindowsNameTooLong,\n WindowsHostIsDown,\n WindowsNoRouteTohost,\n LinuxConnectionReset,\n TimeoutErrorCode,\n BrokenPipe,\n];\n\n/**\n * @hidden\n */\nfunction needsRetry(operationType: OperationType, code: number | string): boolean {\n return (\n code === StatusCodes.ENOTFOUND ||\n ((operationType === OperationType.Read || operationType === OperationType.Query) &&\n CONNECTION_ERROR_CODES.includes(code))\n );\n}\n/**\n * This class implements the default connection retry policy for requests.\n * @hidden\n */\nexport class DefaultRetryPolicy implements RetryPolicy {\n private maxTries: number = 10;\n private currentRetryAttemptCount: number = 0;\n public retryAfterInMs: number = 1000;\n\n constructor(private operationType: OperationType) {}\n /**\n * Determines whether the request should be retried or not.\n * @param err - Error returned by the request.\n */\n public async shouldRetry(\n err: ErrorResponse,\n diagnosticNode: DiagnosticNodeInternal,\n ): Promise<boolean> {\n if (err) {\n if (\n this.currentRetryAttemptCount < this.maxTries &&\n needsRetry(this.operationType, err.code)\n ) {\n diagnosticNode.addData({ successfulRetryPolicy: \"default\" });\n this.currentRetryAttemptCount++;\n return true;\n }\n }\n return false;\n }\n}\n"]}
@@ -1,9 +1,10 @@
1
1
  import type { DiagnosticNodeInternal } from "../diagnostics/DiagnosticNodeInternal.js";
2
2
  import type { OperationType } from "../common/index.js";
3
3
  import type { GlobalEndpointManager } from "../globalEndpointManager.js";
4
- import type { ErrorResponse } from "../request/index.js";
4
+ import type { ErrorResponse, RequestContext } from "../request/index.js";
5
5
  import type { RetryContext } from "./RetryContext.js";
6
6
  import type { RetryPolicy } from "./RetryPolicy.js";
7
+ import { GlobalPartitionEndpointManager } from "../globalPartitionEndpointManager.js";
7
8
  /**
8
9
  * This class implements the retry policy for endpoint discovery.
9
10
  * @hidden
@@ -11,6 +12,7 @@ import type { RetryPolicy } from "./RetryPolicy.js";
11
12
  export declare class EndpointDiscoveryRetryPolicy implements RetryPolicy {
12
13
  private globalEndpointManager;
13
14
  private operationType;
15
+ private globalPartitionEndpointManager?;
14
16
  /** Current retry attempt count. */
15
17
  currentRetryAttemptCount: number;
16
18
  /** Retry interval in milliseconds. */
@@ -22,11 +24,11 @@ export declare class EndpointDiscoveryRetryPolicy implements RetryPolicy {
22
24
  /**
23
25
  * @param globalEndpointManager - The GlobalEndpointManager instance.
24
26
  */
25
- constructor(globalEndpointManager: GlobalEndpointManager, operationType: OperationType);
27
+ constructor(globalEndpointManager: GlobalEndpointManager, operationType: OperationType, globalPartitionEndpointManager?: GlobalPartitionEndpointManager);
26
28
  /**
27
29
  * Determines whether the request should be retried or not.
28
30
  * @param err - Error returned by the request.
29
31
  */
30
- shouldRetry(err: ErrorResponse, diagnosticNode: DiagnosticNodeInternal, retryContext?: RetryContext, locationEndpoint?: string): Promise<boolean | [boolean, string]>;
32
+ shouldRetry(err: ErrorResponse, diagnosticNode: DiagnosticNodeInternal, retryContext?: RetryContext, locationEndpoint?: string, requestContext?: RequestContext): Promise<boolean | [boolean, string]>;
31
33
  }
32
34
  //# sourceMappingURL=endpointDiscoveryRetryPolicy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpointDiscoveryRetryPolicy.d.ts","sourceRoot":"","sources":["../../../src/retry/endpointDiscoveryRetryPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;GAGG;AACH,qBAAa,4BAA6B,YAAW,WAAW;IAe5D,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,aAAa;IAfvB,mCAAmC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACxC,sCAAsC;IAC/B,cAAc,EAAE,MAAM,CAAC;IAE9B,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAO;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAE9C;;OAEG;gBAEO,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa;IAOtC;;;OAGG;IACU,WAAW,CACtB,GAAG,EAAE,aAAa,EAClB,cAAc,EAAE,sBAAsB,EACtC,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAqCxC"}
1
+ {"version":3,"file":"endpointDiscoveryRetryPolicy.d.ts","sourceRoot":"","sources":["../../../src/retry/endpointDiscoveryRetryPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAEtF;;;GAGG;AACH,qBAAa,4BAA6B,YAAW,WAAW;IAe5D,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,8BAA8B,CAAC;IAhBzC,mCAAmC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACxC,sCAAsC;IAC/B,cAAc,EAAE,MAAM,CAAC;IAE9B,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAO;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAE9C;;OAEG;gBAEO,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa,EAC5B,8BAA8B,CAAC,EAAE,8BAA8B;IAOzE;;;OAGG;IACU,WAAW,CACtB,GAAG,EAAE,aAAa,EAClB,cAAc,EAAE,sBAAsB,EACtC,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CA+CxC"}