@azure/cosmos 4.5.0 → 4.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1200) hide show
  1. package/dist/browser/ChangeFeedIterator.js +17 -11
  2. package/dist/browser/ChangeFeedIterator.js.map +1 -1
  3. package/dist/browser/ChangeFeedResponse.js +8 -0
  4. package/dist/browser/ChangeFeedResponse.js.map +1 -1
  5. package/dist/browser/ClientContext.js +122 -29
  6. package/dist/browser/ClientContext.js.map +1 -1
  7. package/dist/browser/CosmosClient.js +34 -3
  8. package/dist/browser/CosmosClient.js.map +1 -1
  9. package/dist/browser/CosmosDiagnostics.js +3 -0
  10. package/dist/browser/CosmosDiagnostics.js.map +1 -1
  11. package/dist/browser/PartitionKeyRangeFailoverInfo.js +8 -5
  12. package/dist/browser/PartitionKeyRangeFailoverInfo.js.map +1 -1
  13. package/dist/browser/bulk/Batcher.js +13 -3
  14. package/dist/browser/bulk/Batcher.js.map +1 -1
  15. package/dist/browser/bulk/BulkHelper.js +26 -11
  16. package/dist/browser/bulk/BulkHelper.js.map +1 -1
  17. package/dist/browser/bulk/BulkResponse.js +22 -20
  18. package/dist/browser/bulk/BulkResponse.js.map +1 -1
  19. package/dist/browser/bulk/CongestionAlgorithm.js +11 -4
  20. package/dist/browser/bulk/CongestionAlgorithm.js.map +1 -1
  21. package/dist/browser/bulk/HelperPerPartition.js +14 -1
  22. package/dist/browser/bulk/HelperPerPartition.js.map +1 -1
  23. package/dist/browser/bulk/ItemOperationContext.js +4 -0
  24. package/dist/browser/bulk/ItemOperationContext.js.map +1 -1
  25. package/dist/browser/bulk/Limiter.js +27 -18
  26. package/dist/browser/bulk/Limiter.js.map +1 -1
  27. package/dist/browser/bulk/PartitionMetric.js +4 -0
  28. package/dist/browser/bulk/PartitionMetric.js.map +1 -1
  29. package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  30. package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  31. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js +16 -8
  32. package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  33. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  34. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  35. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  36. package/dist/browser/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  37. package/dist/browser/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  38. package/dist/browser/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  39. package/dist/browser/client/ChangeFeed/ChangeFeedRange.js +20 -0
  40. package/dist/browser/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  41. package/dist/browser/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  42. package/dist/browser/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  43. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  44. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  45. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  46. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  47. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  48. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  49. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  50. package/dist/browser/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  51. package/dist/browser/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  52. package/dist/browser/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  53. package/dist/browser/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  54. package/dist/browser/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  55. package/dist/browser/client/ChangeFeed/FeedRange.js +8 -0
  56. package/dist/browser/client/ChangeFeed/FeedRange.js.map +1 -1
  57. package/dist/browser/client/ChangeFeed/FeedRangeQueue.js +1 -0
  58. package/dist/browser/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  59. package/dist/browser/client/ChangeFeed/changeFeedUtils.js +5 -5
  60. package/dist/browser/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  61. package/dist/browser/client/ClientUtils.js +1 -1
  62. package/dist/browser/client/ClientUtils.js.map +1 -1
  63. package/dist/browser/client/Conflict/Conflict.js +4 -0
  64. package/dist/browser/client/Conflict/Conflict.js.map +1 -1
  65. package/dist/browser/client/Conflict/ConflictResponse.js +2 -0
  66. package/dist/browser/client/Conflict/ConflictResponse.js.map +1 -1
  67. package/dist/browser/client/Conflict/Conflicts.js +2 -0
  68. package/dist/browser/client/Conflict/Conflicts.js.map +1 -1
  69. package/dist/browser/client/Container/Container.js +18 -3
  70. package/dist/browser/client/Container/Container.js.map +1 -1
  71. package/dist/browser/client/Container/ContainerResponse.js +2 -0
  72. package/dist/browser/client/Container/ContainerResponse.js.map +1 -1
  73. package/dist/browser/client/Container/Containers.js +4 -2
  74. package/dist/browser/client/Container/Containers.js.map +1 -1
  75. package/dist/browser/client/Database/Database.js +33 -0
  76. package/dist/browser/client/Database/Database.js.map +1 -1
  77. package/dist/browser/client/Database/DatabaseResponse.js +2 -0
  78. package/dist/browser/client/Database/DatabaseResponse.js.map +1 -1
  79. package/dist/browser/client/Database/Databases.js +3 -0
  80. package/dist/browser/client/Database/Databases.js.map +1 -1
  81. package/dist/browser/client/Item/Item.js +4 -0
  82. package/dist/browser/client/Item/Item.js.map +1 -1
  83. package/dist/browser/client/Item/ItemResponse.js +2 -0
  84. package/dist/browser/client/Item/ItemResponse.js.map +1 -1
  85. package/dist/browser/client/Item/Items.js +3 -0
  86. package/dist/browser/client/Item/Items.js.map +1 -1
  87. package/dist/browser/client/Offer/Offer.js +3 -0
  88. package/dist/browser/client/Offer/Offer.js.map +1 -1
  89. package/dist/browser/client/Offer/OfferResponse.js +2 -0
  90. package/dist/browser/client/Offer/OfferResponse.js.map +1 -1
  91. package/dist/browser/client/Offer/Offers.js +2 -0
  92. package/dist/browser/client/Offer/Offers.js.map +1 -1
  93. package/dist/browser/client/Permission/Permission.js +3 -0
  94. package/dist/browser/client/Permission/Permission.js.map +1 -1
  95. package/dist/browser/client/Permission/PermissionResponse.js +2 -0
  96. package/dist/browser/client/Permission/PermissionResponse.js.map +1 -1
  97. package/dist/browser/client/Permission/Permissions.js +2 -0
  98. package/dist/browser/client/Permission/Permissions.js.map +1 -1
  99. package/dist/browser/client/SasToken/SasTokenProperties.js +17 -0
  100. package/dist/browser/client/SasToken/SasTokenProperties.js.map +1 -1
  101. package/dist/browser/client/Script/Scripts.js +5 -0
  102. package/dist/browser/client/Script/Scripts.js.map +1 -1
  103. package/dist/browser/client/StoredProcedure/StoredProcedure.js +3 -0
  104. package/dist/browser/client/StoredProcedure/StoredProcedure.js.map +1 -1
  105. package/dist/browser/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  106. package/dist/browser/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  107. package/dist/browser/client/StoredProcedure/StoredProcedures.js +2 -0
  108. package/dist/browser/client/StoredProcedure/StoredProcedures.js.map +1 -1
  109. package/dist/browser/client/Trigger/Trigger.js +3 -0
  110. package/dist/browser/client/Trigger/Trigger.js.map +1 -1
  111. package/dist/browser/client/Trigger/TriggerResponse.js +2 -0
  112. package/dist/browser/client/Trigger/TriggerResponse.js.map +1 -1
  113. package/dist/browser/client/Trigger/Triggers.js +2 -0
  114. package/dist/browser/client/Trigger/Triggers.js.map +1 -1
  115. package/dist/browser/client/User/User.js +9 -0
  116. package/dist/browser/client/User/User.js.map +1 -1
  117. package/dist/browser/client/User/UserResponse.js +2 -0
  118. package/dist/browser/client/User/UserResponse.js.map +1 -1
  119. package/dist/browser/client/User/Users.js +2 -0
  120. package/dist/browser/client/User/Users.js.map +1 -1
  121. package/dist/browser/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  122. package/dist/browser/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  123. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  124. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  125. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  126. package/dist/browser/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  127. package/dist/browser/common/constants.js +1 -1
  128. package/dist/browser/common/constants.js.map +1 -1
  129. package/dist/browser/diagnostics/CosmosDiagnosticsContext.js +8 -7
  130. package/dist/browser/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  131. package/dist/browser/diagnostics/DiagnosticNodeInternal.js +26 -7
  132. package/dist/browser/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  133. package/dist/browser/diagnostics/DiagnosticWriter.js +1 -3
  134. package/dist/browser/diagnostics/DiagnosticWriter.js.map +1 -1
  135. package/dist/browser/diagnostics/index.js +2 -2
  136. package/dist/browser/diagnostics/index.js.map +1 -1
  137. package/dist/browser/documents/DatabaseAccount.js +20 -4
  138. package/dist/browser/documents/DatabaseAccount.js.map +1 -1
  139. package/dist/browser/documents/PartitionKey.js +1 -3
  140. package/dist/browser/documents/PartitionKey.js.map +1 -1
  141. package/dist/browser/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  142. package/dist/browser/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  143. package/dist/browser/encryption/Cache/EncryptionSettingsCache.js +2 -0
  144. package/dist/browser/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  145. package/dist/browser/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  146. package/dist/browser/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  147. package/dist/browser/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  148. package/dist/browser/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  149. package/dist/browser/encryption/EncryptionItemQueryIterator.js +24 -27
  150. package/dist/browser/encryption/EncryptionItemQueryIterator.js.map +1 -1
  151. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  152. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  153. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  154. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  155. package/dist/browser/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  156. package/dist/browser/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  157. package/dist/browser/encryption/EncryptionKeyStoreProvider.js +8 -1
  158. package/dist/browser/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  159. package/dist/browser/encryption/EncryptionManager.js +6 -0
  160. package/dist/browser/encryption/EncryptionManager.js.map +1 -1
  161. package/dist/browser/encryption/EncryptionProcessor.js +5 -0
  162. package/dist/browser/encryption/EncryptionProcessor.js.map +1 -1
  163. package/dist/browser/encryption/EncryptionQueryBuilder.js +2 -0
  164. package/dist/browser/encryption/EncryptionQueryBuilder.js.map +1 -1
  165. package/dist/browser/encryption/EncryptionSettingForProperty.js +6 -0
  166. package/dist/browser/encryption/EncryptionSettingForProperty.js.map +1 -1
  167. package/dist/browser/encryption/EncryptionSettings.js +6 -3
  168. package/dist/browser/encryption/EncryptionSettings.js.map +1 -1
  169. package/dist/browser/encryption/KeyEncryptionKey.js +4 -0
  170. package/dist/browser/encryption/KeyEncryptionKey.js.map +1 -1
  171. package/dist/browser/encryption/Serializers/StringSerializer.js +1 -1
  172. package/dist/browser/encryption/Serializers/StringSerializer.js.map +1 -1
  173. package/dist/browser/extractPartitionKey.js +2 -2
  174. package/dist/browser/extractPartitionKey.js.map +1 -1
  175. package/dist/browser/globalEndpointManager.d.ts.map +1 -1
  176. package/dist/browser/globalEndpointManager.js +36 -23
  177. package/dist/browser/globalEndpointManager.js.map +1 -1
  178. package/dist/browser/globalPartitionEndpointManager.js +8 -0
  179. package/dist/browser/globalPartitionEndpointManager.js.map +1 -1
  180. package/dist/browser/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  181. package/dist/browser/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  182. package/dist/browser/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  183. package/dist/browser/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  184. package/dist/browser/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  185. package/dist/browser/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  186. package/dist/browser/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  187. package/dist/browser/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  188. package/dist/browser/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  189. package/dist/browser/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  190. package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  191. package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  192. package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  193. package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  194. package/dist/browser/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  195. package/dist/browser/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  196. package/dist/browser/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  197. package/dist/browser/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  198. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  199. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  200. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  201. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  202. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  203. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  204. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  205. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  206. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  207. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  208. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  209. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  210. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  211. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  212. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  213. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  214. package/dist/browser/queryExecutionContext/FetchResult.js +4 -0
  215. package/dist/browser/queryExecutionContext/FetchResult.js.map +1 -1
  216. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  217. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  218. package/dist/browser/queryExecutionContext/documentProducer.js +34 -21
  219. package/dist/browser/queryExecutionContext/documentProducer.js.map +1 -1
  220. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  221. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  222. package/dist/browser/queryExecutionContext/orderByComparator.js +1 -0
  223. package/dist/browser/queryExecutionContext/orderByComparator.js.map +1 -1
  224. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  225. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  226. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  227. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  228. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  229. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  230. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  231. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  232. package/dist/browser/queryIterator.js +41 -33
  233. package/dist/browser/queryIterator.js.map +1 -1
  234. package/dist/browser/queryMetrics/clientSideMetrics.js +2 -1
  235. package/dist/browser/queryMetrics/clientSideMetrics.js.map +1 -1
  236. package/dist/browser/queryMetrics/queryMetrics.js +14 -1
  237. package/dist/browser/queryMetrics/queryMetrics.js.map +1 -1
  238. package/dist/browser/queryMetrics/queryPreparationTime.js +5 -1
  239. package/dist/browser/queryMetrics/queryPreparationTime.js.map +1 -1
  240. package/dist/browser/queryMetrics/runtimeExecutionTimes.js +4 -1
  241. package/dist/browser/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  242. package/dist/browser/queryMetrics/timeSpan.js +4 -3
  243. package/dist/browser/queryMetrics/timeSpan.js.map +1 -1
  244. package/dist/browser/request/ErrorResponse.js +19 -0
  245. package/dist/browser/request/ErrorResponse.js.map +1 -1
  246. package/dist/browser/request/FeedResponse.js +4 -0
  247. package/dist/browser/request/FeedResponse.js.map +1 -1
  248. package/dist/browser/request/RequestHandler.js +1 -2
  249. package/dist/browser/request/RequestHandler.js.map +1 -1
  250. package/dist/browser/request/ResourceResponse.js +5 -0
  251. package/dist/browser/request/ResourceResponse.js.map +1 -1
  252. package/dist/browser/request/TimeoutError.js +1 -1
  253. package/dist/browser/request/TimeoutError.js.map +1 -1
  254. package/dist/browser/request/hybridSearchQueryResult.js +5 -0
  255. package/dist/browser/request/hybridSearchQueryResult.js.map +1 -1
  256. package/dist/browser/request/request.js +5 -1
  257. package/dist/browser/request/request.js.map +1 -1
  258. package/dist/browser/retry/bulkExecutionRetryPolicy.js +5 -2
  259. package/dist/browser/retry/bulkExecutionRetryPolicy.js.map +1 -1
  260. package/dist/browser/retry/defaultRetryPolicy.d.ts.map +1 -1
  261. package/dist/browser/retry/defaultRetryPolicy.js +7 -7
  262. package/dist/browser/retry/defaultRetryPolicy.js.map +1 -1
  263. package/dist/browser/retry/endpointDiscoveryRetryPolicy.d.ts +3 -2
  264. package/dist/browser/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  265. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js +24 -7
  266. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  267. package/dist/browser/retry/resourceThrottleRetryPolicy.js +20 -10
  268. package/dist/browser/retry/resourceThrottleRetryPolicy.js.map +1 -1
  269. package/dist/browser/retry/retryUtility.d.ts.map +1 -1
  270. package/dist/browser/retry/retryUtility.js +5 -5
  271. package/dist/browser/retry/retryUtility.js.map +1 -1
  272. package/dist/browser/retry/sessionRetryPolicy.js +8 -4
  273. package/dist/browser/retry/sessionRetryPolicy.js.map +1 -1
  274. package/dist/browser/retry/timeoutFailoverRetryPolicy.js +14 -4
  275. package/dist/browser/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  276. package/dist/browser/routing/QueryRange.js +4 -0
  277. package/dist/browser/routing/QueryRange.js.map +1 -1
  278. package/dist/browser/routing/inMemoryCollectionRoutingMap.js +4 -0
  279. package/dist/browser/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  280. package/dist/browser/routing/partitionKeyRangeCache.js +2 -0
  281. package/dist/browser/routing/partitionKeyRangeCache.js.map +1 -1
  282. package/dist/browser/routing/smartRoutingMapProvider.js +1 -0
  283. package/dist/browser/routing/smartRoutingMapProvider.js.map +1 -1
  284. package/dist/browser/session/VectorSessionToken.js +6 -2
  285. package/dist/browser/session/VectorSessionToken.js.map +1 -1
  286. package/dist/browser/session/sessionContainer.js +5 -3
  287. package/dist/browser/session/sessionContainer.js.map +1 -1
  288. package/dist/browser/utils/batch.js +15 -4
  289. package/dist/browser/utils/batch.js.map +1 -1
  290. package/dist/browser/utils/fixedSizePriorityQueue.js +4 -0
  291. package/dist/browser/utils/fixedSizePriorityQueue.js.map +1 -1
  292. package/dist/browser/utils/hashing/hash.js +1 -1
  293. package/dist/browser/utils/hashing/hash.js.map +1 -1
  294. package/dist/browser/utils/nonStreamingOrderByMap.js +2 -0
  295. package/dist/browser/utils/nonStreamingOrderByMap.js.map +1 -1
  296. package/dist/commonjs/ChangeFeedIterator.js +17 -11
  297. package/dist/commonjs/ChangeFeedIterator.js.map +1 -1
  298. package/dist/commonjs/ChangeFeedResponse.js +8 -0
  299. package/dist/commonjs/ChangeFeedResponse.js.map +1 -1
  300. package/dist/commonjs/ClientContext.js +122 -29
  301. package/dist/commonjs/ClientContext.js.map +1 -1
  302. package/dist/commonjs/CosmosClient.js +34 -3
  303. package/dist/commonjs/CosmosClient.js.map +1 -1
  304. package/dist/commonjs/CosmosDiagnostics.js +3 -0
  305. package/dist/commonjs/CosmosDiagnostics.js.map +1 -1
  306. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js +8 -5
  307. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js.map +1 -1
  308. package/dist/commonjs/bulk/Batcher.js +13 -3
  309. package/dist/commonjs/bulk/Batcher.js.map +1 -1
  310. package/dist/commonjs/bulk/BulkHelper.js +26 -11
  311. package/dist/commonjs/bulk/BulkHelper.js.map +1 -1
  312. package/dist/commonjs/bulk/BulkResponse.js +22 -20
  313. package/dist/commonjs/bulk/BulkResponse.js.map +1 -1
  314. package/dist/commonjs/bulk/CongestionAlgorithm.js +11 -4
  315. package/dist/commonjs/bulk/CongestionAlgorithm.js.map +1 -1
  316. package/dist/commonjs/bulk/HelperPerPartition.js +14 -1
  317. package/dist/commonjs/bulk/HelperPerPartition.js.map +1 -1
  318. package/dist/commonjs/bulk/ItemOperationContext.js +4 -0
  319. package/dist/commonjs/bulk/ItemOperationContext.js.map +1 -1
  320. package/dist/commonjs/bulk/Limiter.js +27 -18
  321. package/dist/commonjs/bulk/Limiter.js.map +1 -1
  322. package/dist/commonjs/bulk/PartitionMetric.js +4 -0
  323. package/dist/commonjs/bulk/PartitionMetric.js.map +1 -1
  324. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  325. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  326. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js +16 -8
  327. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  328. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  329. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  330. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  331. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  332. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  333. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  334. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js +20 -0
  335. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  336. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  337. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  338. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  339. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  340. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  341. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  342. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  343. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  344. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  345. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  346. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  347. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  348. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  349. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  350. package/dist/commonjs/client/ChangeFeed/FeedRange.js +8 -0
  351. package/dist/commonjs/client/ChangeFeed/FeedRange.js.map +1 -1
  352. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js +1 -0
  353. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  354. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js +5 -5
  355. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  356. package/dist/commonjs/client/ClientUtils.js +1 -1
  357. package/dist/commonjs/client/ClientUtils.js.map +1 -1
  358. package/dist/commonjs/client/Conflict/Conflict.js +4 -0
  359. package/dist/commonjs/client/Conflict/Conflict.js.map +1 -1
  360. package/dist/commonjs/client/Conflict/ConflictResponse.js +2 -0
  361. package/dist/commonjs/client/Conflict/ConflictResponse.js.map +1 -1
  362. package/dist/commonjs/client/Conflict/Conflicts.js +2 -0
  363. package/dist/commonjs/client/Conflict/Conflicts.js.map +1 -1
  364. package/dist/commonjs/client/Container/Container.js +18 -3
  365. package/dist/commonjs/client/Container/Container.js.map +1 -1
  366. package/dist/commonjs/client/Container/ContainerResponse.js +2 -0
  367. package/dist/commonjs/client/Container/ContainerResponse.js.map +1 -1
  368. package/dist/commonjs/client/Container/Containers.js +4 -2
  369. package/dist/commonjs/client/Container/Containers.js.map +1 -1
  370. package/dist/commonjs/client/Database/Database.js +33 -0
  371. package/dist/commonjs/client/Database/Database.js.map +1 -1
  372. package/dist/commonjs/client/Database/DatabaseResponse.js +2 -0
  373. package/dist/commonjs/client/Database/DatabaseResponse.js.map +1 -1
  374. package/dist/commonjs/client/Database/Databases.js +3 -0
  375. package/dist/commonjs/client/Database/Databases.js.map +1 -1
  376. package/dist/commonjs/client/Item/Item.js +4 -0
  377. package/dist/commonjs/client/Item/Item.js.map +1 -1
  378. package/dist/commonjs/client/Item/ItemResponse.js +2 -0
  379. package/dist/commonjs/client/Item/ItemResponse.js.map +1 -1
  380. package/dist/commonjs/client/Item/Items.js +3 -0
  381. package/dist/commonjs/client/Item/Items.js.map +1 -1
  382. package/dist/commonjs/client/Offer/Offer.js +3 -0
  383. package/dist/commonjs/client/Offer/Offer.js.map +1 -1
  384. package/dist/commonjs/client/Offer/OfferResponse.js +2 -0
  385. package/dist/commonjs/client/Offer/OfferResponse.js.map +1 -1
  386. package/dist/commonjs/client/Offer/Offers.js +2 -0
  387. package/dist/commonjs/client/Offer/Offers.js.map +1 -1
  388. package/dist/commonjs/client/Permission/Permission.js +3 -0
  389. package/dist/commonjs/client/Permission/Permission.js.map +1 -1
  390. package/dist/commonjs/client/Permission/PermissionResponse.js +2 -0
  391. package/dist/commonjs/client/Permission/PermissionResponse.js.map +1 -1
  392. package/dist/commonjs/client/Permission/Permissions.js +2 -0
  393. package/dist/commonjs/client/Permission/Permissions.js.map +1 -1
  394. package/dist/commonjs/client/SasToken/SasTokenProperties.js +17 -0
  395. package/dist/commonjs/client/SasToken/SasTokenProperties.js.map +1 -1
  396. package/dist/commonjs/client/Script/Scripts.js +5 -0
  397. package/dist/commonjs/client/Script/Scripts.js.map +1 -1
  398. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js +3 -0
  399. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js.map +1 -1
  400. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  401. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  402. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js +2 -0
  403. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js.map +1 -1
  404. package/dist/commonjs/client/Trigger/Trigger.js +3 -0
  405. package/dist/commonjs/client/Trigger/Trigger.js.map +1 -1
  406. package/dist/commonjs/client/Trigger/TriggerResponse.js +2 -0
  407. package/dist/commonjs/client/Trigger/TriggerResponse.js.map +1 -1
  408. package/dist/commonjs/client/Trigger/Triggers.js +2 -0
  409. package/dist/commonjs/client/Trigger/Triggers.js.map +1 -1
  410. package/dist/commonjs/client/User/User.js +9 -0
  411. package/dist/commonjs/client/User/User.js.map +1 -1
  412. package/dist/commonjs/client/User/UserResponse.js +2 -0
  413. package/dist/commonjs/client/User/UserResponse.js.map +1 -1
  414. package/dist/commonjs/client/User/Users.js +2 -0
  415. package/dist/commonjs/client/User/Users.js.map +1 -1
  416. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  417. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  418. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  419. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  420. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  421. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  422. package/dist/commonjs/common/constants.js +1 -1
  423. package/dist/commonjs/common/constants.js.map +1 -1
  424. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js +8 -7
  425. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  426. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js +26 -7
  427. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  428. package/dist/commonjs/diagnostics/DiagnosticWriter.js +1 -3
  429. package/dist/commonjs/diagnostics/DiagnosticWriter.js.map +1 -1
  430. package/dist/commonjs/diagnostics/index.js +2 -2
  431. package/dist/commonjs/diagnostics/index.js.map +1 -1
  432. package/dist/commonjs/documents/DatabaseAccount.js +20 -4
  433. package/dist/commonjs/documents/DatabaseAccount.js.map +1 -1
  434. package/dist/commonjs/documents/PartitionKey.js +1 -3
  435. package/dist/commonjs/documents/PartitionKey.js.map +1 -1
  436. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  437. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  438. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  439. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  440. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js +2 -0
  441. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  442. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  443. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  444. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js +5 -0
  445. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  446. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  447. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  448. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js +24 -27
  449. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js.map +1 -1
  450. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  451. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  452. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  453. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  454. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  455. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  456. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  457. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  458. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js +8 -1
  459. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  460. package/dist/commonjs/encryption/EncryptionManager.js +6 -0
  461. package/dist/commonjs/encryption/EncryptionManager.js.map +1 -1
  462. package/dist/commonjs/encryption/EncryptionProcessor.js +5 -0
  463. package/dist/commonjs/encryption/EncryptionProcessor.js.map +1 -1
  464. package/dist/commonjs/encryption/EncryptionQueryBuilder.js +2 -0
  465. package/dist/commonjs/encryption/EncryptionQueryBuilder.js.map +1 -1
  466. package/dist/commonjs/encryption/EncryptionSettingForProperty.js +6 -0
  467. package/dist/commonjs/encryption/EncryptionSettingForProperty.js.map +1 -1
  468. package/dist/commonjs/encryption/EncryptionSettings.js +6 -3
  469. package/dist/commonjs/encryption/EncryptionSettings.js.map +1 -1
  470. package/dist/commonjs/encryption/KeyEncryptionKey.js +4 -0
  471. package/dist/commonjs/encryption/KeyEncryptionKey.js.map +1 -1
  472. package/dist/commonjs/encryption/Serializers/StringSerializer.js +1 -1
  473. package/dist/commonjs/encryption/Serializers/StringSerializer.js.map +1 -1
  474. package/dist/commonjs/extractPartitionKey.js +2 -2
  475. package/dist/commonjs/extractPartitionKey.js.map +1 -1
  476. package/dist/commonjs/globalEndpointManager.d.ts.map +1 -1
  477. package/dist/commonjs/globalEndpointManager.js +36 -23
  478. package/dist/commonjs/globalEndpointManager.js.map +1 -1
  479. package/dist/commonjs/globalPartitionEndpointManager.js +8 -0
  480. package/dist/commonjs/globalPartitionEndpointManager.js.map +1 -1
  481. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  482. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  483. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  484. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  485. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  486. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  487. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  488. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  489. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  490. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  491. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  492. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  493. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  494. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  495. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  496. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  497. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  498. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  499. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  500. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  501. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  502. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  503. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  504. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  505. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  506. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  507. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  508. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  509. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  510. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  511. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  512. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  513. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  514. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  515. package/dist/commonjs/queryExecutionContext/FetchResult.js +4 -0
  516. package/dist/commonjs/queryExecutionContext/FetchResult.js.map +1 -1
  517. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  518. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  519. package/dist/commonjs/queryExecutionContext/documentProducer.js +34 -21
  520. package/dist/commonjs/queryExecutionContext/documentProducer.js.map +1 -1
  521. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  522. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  523. package/dist/commonjs/queryExecutionContext/orderByComparator.js +1 -0
  524. package/dist/commonjs/queryExecutionContext/orderByComparator.js.map +1 -1
  525. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  526. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  527. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  528. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  529. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  530. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  531. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  532. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  533. package/dist/commonjs/queryIterator.js +41 -33
  534. package/dist/commonjs/queryIterator.js.map +1 -1
  535. package/dist/commonjs/queryMetrics/clientSideMetrics.js +2 -1
  536. package/dist/commonjs/queryMetrics/clientSideMetrics.js.map +1 -1
  537. package/dist/commonjs/queryMetrics/queryMetrics.js +14 -1
  538. package/dist/commonjs/queryMetrics/queryMetrics.js.map +1 -1
  539. package/dist/commonjs/queryMetrics/queryPreparationTime.js +5 -1
  540. package/dist/commonjs/queryMetrics/queryPreparationTime.js.map +1 -1
  541. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js +4 -1
  542. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  543. package/dist/commonjs/queryMetrics/timeSpan.js +4 -3
  544. package/dist/commonjs/queryMetrics/timeSpan.js.map +1 -1
  545. package/dist/commonjs/request/ErrorResponse.js +19 -0
  546. package/dist/commonjs/request/ErrorResponse.js.map +1 -1
  547. package/dist/commonjs/request/FeedResponse.js +4 -0
  548. package/dist/commonjs/request/FeedResponse.js.map +1 -1
  549. package/dist/commonjs/request/RequestHandler.js +1 -2
  550. package/dist/commonjs/request/RequestHandler.js.map +1 -1
  551. package/dist/commonjs/request/ResourceResponse.js +5 -0
  552. package/dist/commonjs/request/ResourceResponse.js.map +1 -1
  553. package/dist/commonjs/request/TimeoutError.js +1 -1
  554. package/dist/commonjs/request/TimeoutError.js.map +1 -1
  555. package/dist/commonjs/request/hybridSearchQueryResult.js +5 -0
  556. package/dist/commonjs/request/hybridSearchQueryResult.js.map +1 -1
  557. package/dist/commonjs/request/request.js +5 -1
  558. package/dist/commonjs/request/request.js.map +1 -1
  559. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js +5 -2
  560. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js.map +1 -1
  561. package/dist/commonjs/retry/defaultRetryPolicy.d.ts.map +1 -1
  562. package/dist/commonjs/retry/defaultRetryPolicy.js +6 -6
  563. package/dist/commonjs/retry/defaultRetryPolicy.js.map +1 -1
  564. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.d.ts +3 -2
  565. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  566. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js +24 -7
  567. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  568. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js +20 -10
  569. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js.map +1 -1
  570. package/dist/commonjs/retry/retryUtility.d.ts.map +1 -1
  571. package/dist/commonjs/retry/retryUtility.js +5 -5
  572. package/dist/commonjs/retry/retryUtility.js.map +1 -1
  573. package/dist/commonjs/retry/sessionRetryPolicy.js +8 -4
  574. package/dist/commonjs/retry/sessionRetryPolicy.js.map +1 -1
  575. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js +14 -4
  576. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  577. package/dist/commonjs/routing/QueryRange.js +4 -0
  578. package/dist/commonjs/routing/QueryRange.js.map +1 -1
  579. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js +4 -0
  580. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  581. package/dist/commonjs/routing/partitionKeyRangeCache.js +2 -0
  582. package/dist/commonjs/routing/partitionKeyRangeCache.js.map +1 -1
  583. package/dist/commonjs/routing/smartRoutingMapProvider.js +1 -0
  584. package/dist/commonjs/routing/smartRoutingMapProvider.js.map +1 -1
  585. package/dist/commonjs/session/VectorSessionToken.js +6 -2
  586. package/dist/commonjs/session/VectorSessionToken.js.map +1 -1
  587. package/dist/commonjs/session/sessionContainer.js +5 -3
  588. package/dist/commonjs/session/sessionContainer.js.map +1 -1
  589. package/dist/commonjs/tsdoc-metadata.json +1 -1
  590. package/dist/commonjs/utils/batch.js +15 -4
  591. package/dist/commonjs/utils/batch.js.map +1 -1
  592. package/dist/commonjs/utils/fixedSizePriorityQueue.js +4 -0
  593. package/dist/commonjs/utils/fixedSizePriorityQueue.js.map +1 -1
  594. package/dist/commonjs/utils/hashing/hash.js +1 -1
  595. package/dist/commonjs/utils/hashing/hash.js.map +1 -1
  596. package/dist/commonjs/utils/nonStreamingOrderByMap.js +2 -0
  597. package/dist/commonjs/utils/nonStreamingOrderByMap.js.map +1 -1
  598. package/dist/esm/ChangeFeedIterator.js +17 -11
  599. package/dist/esm/ChangeFeedIterator.js.map +1 -1
  600. package/dist/esm/ChangeFeedResponse.js +8 -0
  601. package/dist/esm/ChangeFeedResponse.js.map +1 -1
  602. package/dist/esm/ClientContext.js +122 -29
  603. package/dist/esm/ClientContext.js.map +1 -1
  604. package/dist/esm/CosmosClient.js +34 -3
  605. package/dist/esm/CosmosClient.js.map +1 -1
  606. package/dist/esm/CosmosDiagnostics.js +3 -0
  607. package/dist/esm/CosmosDiagnostics.js.map +1 -1
  608. package/dist/esm/PartitionKeyRangeFailoverInfo.js +8 -5
  609. package/dist/esm/PartitionKeyRangeFailoverInfo.js.map +1 -1
  610. package/dist/esm/bulk/Batcher.js +13 -3
  611. package/dist/esm/bulk/Batcher.js.map +1 -1
  612. package/dist/esm/bulk/BulkHelper.js +26 -11
  613. package/dist/esm/bulk/BulkHelper.js.map +1 -1
  614. package/dist/esm/bulk/BulkResponse.js +22 -20
  615. package/dist/esm/bulk/BulkResponse.js.map +1 -1
  616. package/dist/esm/bulk/CongestionAlgorithm.js +11 -4
  617. package/dist/esm/bulk/CongestionAlgorithm.js.map +1 -1
  618. package/dist/esm/bulk/HelperPerPartition.js +14 -1
  619. package/dist/esm/bulk/HelperPerPartition.js.map +1 -1
  620. package/dist/esm/bulk/ItemOperationContext.js +4 -0
  621. package/dist/esm/bulk/ItemOperationContext.js.map +1 -1
  622. package/dist/esm/bulk/Limiter.js +27 -18
  623. package/dist/esm/bulk/Limiter.js.map +1 -1
  624. package/dist/esm/bulk/PartitionMetric.js +4 -0
  625. package/dist/esm/bulk/PartitionMetric.js.map +1 -1
  626. package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  627. package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  628. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js +16 -8
  629. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  630. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  631. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  632. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  633. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  634. package/dist/esm/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  635. package/dist/esm/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  636. package/dist/esm/client/ChangeFeed/ChangeFeedRange.js +20 -0
  637. package/dist/esm/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  638. package/dist/esm/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  639. package/dist/esm/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  640. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  641. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  642. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  643. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  644. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  645. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  646. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  647. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  648. package/dist/esm/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  649. package/dist/esm/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  650. package/dist/esm/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  651. package/dist/esm/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  652. package/dist/esm/client/ChangeFeed/FeedRange.js +8 -0
  653. package/dist/esm/client/ChangeFeed/FeedRange.js.map +1 -1
  654. package/dist/esm/client/ChangeFeed/FeedRangeQueue.js +1 -0
  655. package/dist/esm/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  656. package/dist/esm/client/ChangeFeed/changeFeedUtils.js +5 -5
  657. package/dist/esm/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  658. package/dist/esm/client/ClientUtils.js +1 -1
  659. package/dist/esm/client/ClientUtils.js.map +1 -1
  660. package/dist/esm/client/Conflict/Conflict.js +4 -0
  661. package/dist/esm/client/Conflict/Conflict.js.map +1 -1
  662. package/dist/esm/client/Conflict/ConflictResponse.js +2 -0
  663. package/dist/esm/client/Conflict/ConflictResponse.js.map +1 -1
  664. package/dist/esm/client/Conflict/Conflicts.js +2 -0
  665. package/dist/esm/client/Conflict/Conflicts.js.map +1 -1
  666. package/dist/esm/client/Container/Container.js +18 -3
  667. package/dist/esm/client/Container/Container.js.map +1 -1
  668. package/dist/esm/client/Container/ContainerResponse.js +2 -0
  669. package/dist/esm/client/Container/ContainerResponse.js.map +1 -1
  670. package/dist/esm/client/Container/Containers.js +4 -2
  671. package/dist/esm/client/Container/Containers.js.map +1 -1
  672. package/dist/esm/client/Database/Database.js +33 -0
  673. package/dist/esm/client/Database/Database.js.map +1 -1
  674. package/dist/esm/client/Database/DatabaseResponse.js +2 -0
  675. package/dist/esm/client/Database/DatabaseResponse.js.map +1 -1
  676. package/dist/esm/client/Database/Databases.js +3 -0
  677. package/dist/esm/client/Database/Databases.js.map +1 -1
  678. package/dist/esm/client/Item/Item.js +4 -0
  679. package/dist/esm/client/Item/Item.js.map +1 -1
  680. package/dist/esm/client/Item/ItemResponse.js +2 -0
  681. package/dist/esm/client/Item/ItemResponse.js.map +1 -1
  682. package/dist/esm/client/Item/Items.js +3 -0
  683. package/dist/esm/client/Item/Items.js.map +1 -1
  684. package/dist/esm/client/Offer/Offer.js +3 -0
  685. package/dist/esm/client/Offer/Offer.js.map +1 -1
  686. package/dist/esm/client/Offer/OfferResponse.js +2 -0
  687. package/dist/esm/client/Offer/OfferResponse.js.map +1 -1
  688. package/dist/esm/client/Offer/Offers.js +2 -0
  689. package/dist/esm/client/Offer/Offers.js.map +1 -1
  690. package/dist/esm/client/Permission/Permission.js +3 -0
  691. package/dist/esm/client/Permission/Permission.js.map +1 -1
  692. package/dist/esm/client/Permission/PermissionResponse.js +2 -0
  693. package/dist/esm/client/Permission/PermissionResponse.js.map +1 -1
  694. package/dist/esm/client/Permission/Permissions.js +2 -0
  695. package/dist/esm/client/Permission/Permissions.js.map +1 -1
  696. package/dist/esm/client/SasToken/SasTokenProperties.js +17 -0
  697. package/dist/esm/client/SasToken/SasTokenProperties.js.map +1 -1
  698. package/dist/esm/client/Script/Scripts.js +5 -0
  699. package/dist/esm/client/Script/Scripts.js.map +1 -1
  700. package/dist/esm/client/StoredProcedure/StoredProcedure.js +3 -0
  701. package/dist/esm/client/StoredProcedure/StoredProcedure.js.map +1 -1
  702. package/dist/esm/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  703. package/dist/esm/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  704. package/dist/esm/client/StoredProcedure/StoredProcedures.js +2 -0
  705. package/dist/esm/client/StoredProcedure/StoredProcedures.js.map +1 -1
  706. package/dist/esm/client/Trigger/Trigger.js +3 -0
  707. package/dist/esm/client/Trigger/Trigger.js.map +1 -1
  708. package/dist/esm/client/Trigger/TriggerResponse.js +2 -0
  709. package/dist/esm/client/Trigger/TriggerResponse.js.map +1 -1
  710. package/dist/esm/client/Trigger/Triggers.js +2 -0
  711. package/dist/esm/client/Trigger/Triggers.js.map +1 -1
  712. package/dist/esm/client/User/User.js +9 -0
  713. package/dist/esm/client/User/User.js.map +1 -1
  714. package/dist/esm/client/User/UserResponse.js +2 -0
  715. package/dist/esm/client/User/UserResponse.js.map +1 -1
  716. package/dist/esm/client/User/Users.js +2 -0
  717. package/dist/esm/client/User/Users.js.map +1 -1
  718. package/dist/esm/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  719. package/dist/esm/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  720. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  721. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  722. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  723. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  724. package/dist/esm/common/constants.js +1 -1
  725. package/dist/esm/common/constants.js.map +1 -1
  726. package/dist/esm/diagnostics/CosmosDiagnosticsContext.js +8 -7
  727. package/dist/esm/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  728. package/dist/esm/diagnostics/DiagnosticNodeInternal.js +26 -7
  729. package/dist/esm/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  730. package/dist/esm/diagnostics/DiagnosticWriter.js +1 -3
  731. package/dist/esm/diagnostics/DiagnosticWriter.js.map +1 -1
  732. package/dist/esm/diagnostics/index.js +2 -2
  733. package/dist/esm/diagnostics/index.js.map +1 -1
  734. package/dist/esm/documents/DatabaseAccount.js +20 -4
  735. package/dist/esm/documents/DatabaseAccount.js.map +1 -1
  736. package/dist/esm/documents/PartitionKey.js +1 -3
  737. package/dist/esm/documents/PartitionKey.js.map +1 -1
  738. package/dist/esm/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  739. package/dist/esm/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  740. package/dist/esm/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  741. package/dist/esm/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  742. package/dist/esm/encryption/Cache/EncryptionSettingsCache.js +2 -0
  743. package/dist/esm/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  744. package/dist/esm/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  745. package/dist/esm/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  746. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js +5 -0
  747. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  748. package/dist/esm/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  749. package/dist/esm/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  750. package/dist/esm/encryption/EncryptionItemQueryIterator.js +24 -27
  751. package/dist/esm/encryption/EncryptionItemQueryIterator.js.map +1 -1
  752. package/dist/esm/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  753. package/dist/esm/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  754. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  755. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  756. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  757. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  758. package/dist/esm/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  759. package/dist/esm/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  760. package/dist/esm/encryption/EncryptionKeyStoreProvider.js +8 -1
  761. package/dist/esm/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  762. package/dist/esm/encryption/EncryptionManager.js +6 -0
  763. package/dist/esm/encryption/EncryptionManager.js.map +1 -1
  764. package/dist/esm/encryption/EncryptionProcessor.js +5 -0
  765. package/dist/esm/encryption/EncryptionProcessor.js.map +1 -1
  766. package/dist/esm/encryption/EncryptionQueryBuilder.js +2 -0
  767. package/dist/esm/encryption/EncryptionQueryBuilder.js.map +1 -1
  768. package/dist/esm/encryption/EncryptionSettingForProperty.js +6 -0
  769. package/dist/esm/encryption/EncryptionSettingForProperty.js.map +1 -1
  770. package/dist/esm/encryption/EncryptionSettings.js +6 -3
  771. package/dist/esm/encryption/EncryptionSettings.js.map +1 -1
  772. package/dist/esm/encryption/KeyEncryptionKey.js +4 -0
  773. package/dist/esm/encryption/KeyEncryptionKey.js.map +1 -1
  774. package/dist/esm/encryption/Serializers/StringSerializer.js +1 -1
  775. package/dist/esm/encryption/Serializers/StringSerializer.js.map +1 -1
  776. package/dist/esm/extractPartitionKey.js +2 -2
  777. package/dist/esm/extractPartitionKey.js.map +1 -1
  778. package/dist/esm/globalEndpointManager.d.ts.map +1 -1
  779. package/dist/esm/globalEndpointManager.js +36 -23
  780. package/dist/esm/globalEndpointManager.js.map +1 -1
  781. package/dist/esm/globalPartitionEndpointManager.js +8 -0
  782. package/dist/esm/globalPartitionEndpointManager.js.map +1 -1
  783. package/dist/esm/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  784. package/dist/esm/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  785. package/dist/esm/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  786. package/dist/esm/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  787. package/dist/esm/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  788. package/dist/esm/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  789. package/dist/esm/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  790. package/dist/esm/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  791. package/dist/esm/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  792. package/dist/esm/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  793. package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  794. package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  795. package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  796. package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  797. package/dist/esm/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  798. package/dist/esm/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  799. package/dist/esm/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  800. package/dist/esm/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  801. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  802. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  803. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  804. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  805. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  806. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  807. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  808. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  809. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  810. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  811. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  812. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  813. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  814. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  815. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  816. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  817. package/dist/esm/queryExecutionContext/FetchResult.js +4 -0
  818. package/dist/esm/queryExecutionContext/FetchResult.js.map +1 -1
  819. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  820. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  821. package/dist/esm/queryExecutionContext/documentProducer.js +34 -21
  822. package/dist/esm/queryExecutionContext/documentProducer.js.map +1 -1
  823. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  824. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  825. package/dist/esm/queryExecutionContext/orderByComparator.js +1 -0
  826. package/dist/esm/queryExecutionContext/orderByComparator.js.map +1 -1
  827. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  828. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  829. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  830. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  831. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  832. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  833. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  834. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  835. package/dist/esm/queryIterator.js +41 -33
  836. package/dist/esm/queryIterator.js.map +1 -1
  837. package/dist/esm/queryMetrics/clientSideMetrics.js +2 -1
  838. package/dist/esm/queryMetrics/clientSideMetrics.js.map +1 -1
  839. package/dist/esm/queryMetrics/queryMetrics.js +14 -1
  840. package/dist/esm/queryMetrics/queryMetrics.js.map +1 -1
  841. package/dist/esm/queryMetrics/queryPreparationTime.js +5 -1
  842. package/dist/esm/queryMetrics/queryPreparationTime.js.map +1 -1
  843. package/dist/esm/queryMetrics/runtimeExecutionTimes.js +4 -1
  844. package/dist/esm/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  845. package/dist/esm/queryMetrics/timeSpan.js +4 -3
  846. package/dist/esm/queryMetrics/timeSpan.js.map +1 -1
  847. package/dist/esm/request/ErrorResponse.js +19 -0
  848. package/dist/esm/request/ErrorResponse.js.map +1 -1
  849. package/dist/esm/request/FeedResponse.js +4 -0
  850. package/dist/esm/request/FeedResponse.js.map +1 -1
  851. package/dist/esm/request/RequestHandler.js +1 -2
  852. package/dist/esm/request/RequestHandler.js.map +1 -1
  853. package/dist/esm/request/ResourceResponse.js +5 -0
  854. package/dist/esm/request/ResourceResponse.js.map +1 -1
  855. package/dist/esm/request/TimeoutError.js +1 -1
  856. package/dist/esm/request/TimeoutError.js.map +1 -1
  857. package/dist/esm/request/hybridSearchQueryResult.js +5 -0
  858. package/dist/esm/request/hybridSearchQueryResult.js.map +1 -1
  859. package/dist/esm/request/request.js +5 -1
  860. package/dist/esm/request/request.js.map +1 -1
  861. package/dist/esm/retry/bulkExecutionRetryPolicy.js +5 -2
  862. package/dist/esm/retry/bulkExecutionRetryPolicy.js.map +1 -1
  863. package/dist/esm/retry/defaultRetryPolicy.d.ts.map +1 -1
  864. package/dist/esm/retry/defaultRetryPolicy.js +7 -7
  865. package/dist/esm/retry/defaultRetryPolicy.js.map +1 -1
  866. package/dist/esm/retry/endpointDiscoveryRetryPolicy.d.ts +3 -2
  867. package/dist/esm/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  868. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js +24 -7
  869. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  870. package/dist/esm/retry/resourceThrottleRetryPolicy.js +20 -10
  871. package/dist/esm/retry/resourceThrottleRetryPolicy.js.map +1 -1
  872. package/dist/esm/retry/retryUtility.d.ts.map +1 -1
  873. package/dist/esm/retry/retryUtility.js +5 -5
  874. package/dist/esm/retry/retryUtility.js.map +1 -1
  875. package/dist/esm/retry/sessionRetryPolicy.js +8 -4
  876. package/dist/esm/retry/sessionRetryPolicy.js.map +1 -1
  877. package/dist/esm/retry/timeoutFailoverRetryPolicy.js +14 -4
  878. package/dist/esm/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  879. package/dist/esm/routing/QueryRange.js +4 -0
  880. package/dist/esm/routing/QueryRange.js.map +1 -1
  881. package/dist/esm/routing/inMemoryCollectionRoutingMap.js +4 -0
  882. package/dist/esm/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  883. package/dist/esm/routing/partitionKeyRangeCache.js +2 -0
  884. package/dist/esm/routing/partitionKeyRangeCache.js.map +1 -1
  885. package/dist/esm/routing/smartRoutingMapProvider.js +1 -0
  886. package/dist/esm/routing/smartRoutingMapProvider.js.map +1 -1
  887. package/dist/esm/session/VectorSessionToken.js +6 -2
  888. package/dist/esm/session/VectorSessionToken.js.map +1 -1
  889. package/dist/esm/session/sessionContainer.js +5 -3
  890. package/dist/esm/session/sessionContainer.js.map +1 -1
  891. package/dist/esm/utils/batch.js +15 -4
  892. package/dist/esm/utils/batch.js.map +1 -1
  893. package/dist/esm/utils/fixedSizePriorityQueue.js +4 -0
  894. package/dist/esm/utils/fixedSizePriorityQueue.js.map +1 -1
  895. package/dist/esm/utils/hashing/hash.js +1 -1
  896. package/dist/esm/utils/hashing/hash.js.map +1 -1
  897. package/dist/esm/utils/nonStreamingOrderByMap.js +2 -0
  898. package/dist/esm/utils/nonStreamingOrderByMap.js.map +1 -1
  899. package/dist/react-native/ChangeFeedIterator.js +17 -11
  900. package/dist/react-native/ChangeFeedIterator.js.map +1 -1
  901. package/dist/react-native/ChangeFeedResponse.js +8 -0
  902. package/dist/react-native/ChangeFeedResponse.js.map +1 -1
  903. package/dist/react-native/ClientContext.js +122 -29
  904. package/dist/react-native/ClientContext.js.map +1 -1
  905. package/dist/react-native/CosmosClient.js +34 -3
  906. package/dist/react-native/CosmosClient.js.map +1 -1
  907. package/dist/react-native/CosmosDiagnostics.js +3 -0
  908. package/dist/react-native/CosmosDiagnostics.js.map +1 -1
  909. package/dist/react-native/PartitionKeyRangeFailoverInfo.js +8 -5
  910. package/dist/react-native/PartitionKeyRangeFailoverInfo.js.map +1 -1
  911. package/dist/react-native/bulk/Batcher.js +13 -3
  912. package/dist/react-native/bulk/Batcher.js.map +1 -1
  913. package/dist/react-native/bulk/BulkHelper.js +26 -11
  914. package/dist/react-native/bulk/BulkHelper.js.map +1 -1
  915. package/dist/react-native/bulk/BulkResponse.js +22 -20
  916. package/dist/react-native/bulk/BulkResponse.js.map +1 -1
  917. package/dist/react-native/bulk/CongestionAlgorithm.js +11 -4
  918. package/dist/react-native/bulk/CongestionAlgorithm.js.map +1 -1
  919. package/dist/react-native/bulk/HelperPerPartition.js +14 -1
  920. package/dist/react-native/bulk/HelperPerPartition.js.map +1 -1
  921. package/dist/react-native/bulk/ItemOperationContext.js +4 -0
  922. package/dist/react-native/bulk/ItemOperationContext.js.map +1 -1
  923. package/dist/react-native/bulk/Limiter.js +27 -18
  924. package/dist/react-native/bulk/Limiter.js.map +1 -1
  925. package/dist/react-native/bulk/PartitionMetric.js +4 -0
  926. package/dist/react-native/bulk/PartitionMetric.js.map +1 -1
  927. package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  928. package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  929. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js +16 -8
  930. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  931. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  932. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  933. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  934. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  935. package/dist/react-native/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  936. package/dist/react-native/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  937. package/dist/react-native/client/ChangeFeed/ChangeFeedRange.js +20 -0
  938. package/dist/react-native/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  939. package/dist/react-native/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  940. package/dist/react-native/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  941. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  942. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  943. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  944. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  945. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  946. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  947. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  948. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  949. package/dist/react-native/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  950. package/dist/react-native/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  951. package/dist/react-native/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  952. package/dist/react-native/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  953. package/dist/react-native/client/ChangeFeed/FeedRange.js +8 -0
  954. package/dist/react-native/client/ChangeFeed/FeedRange.js.map +1 -1
  955. package/dist/react-native/client/ChangeFeed/FeedRangeQueue.js +1 -0
  956. package/dist/react-native/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  957. package/dist/react-native/client/ChangeFeed/changeFeedUtils.js +5 -5
  958. package/dist/react-native/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  959. package/dist/react-native/client/ClientUtils.js +1 -1
  960. package/dist/react-native/client/ClientUtils.js.map +1 -1
  961. package/dist/react-native/client/Conflict/Conflict.js +4 -0
  962. package/dist/react-native/client/Conflict/Conflict.js.map +1 -1
  963. package/dist/react-native/client/Conflict/ConflictResponse.js +2 -0
  964. package/dist/react-native/client/Conflict/ConflictResponse.js.map +1 -1
  965. package/dist/react-native/client/Conflict/Conflicts.js +2 -0
  966. package/dist/react-native/client/Conflict/Conflicts.js.map +1 -1
  967. package/dist/react-native/client/Container/Container.js +18 -3
  968. package/dist/react-native/client/Container/Container.js.map +1 -1
  969. package/dist/react-native/client/Container/ContainerResponse.js +2 -0
  970. package/dist/react-native/client/Container/ContainerResponse.js.map +1 -1
  971. package/dist/react-native/client/Container/Containers.js +4 -2
  972. package/dist/react-native/client/Container/Containers.js.map +1 -1
  973. package/dist/react-native/client/Database/Database.js +33 -0
  974. package/dist/react-native/client/Database/Database.js.map +1 -1
  975. package/dist/react-native/client/Database/DatabaseResponse.js +2 -0
  976. package/dist/react-native/client/Database/DatabaseResponse.js.map +1 -1
  977. package/dist/react-native/client/Database/Databases.js +3 -0
  978. package/dist/react-native/client/Database/Databases.js.map +1 -1
  979. package/dist/react-native/client/Item/Item.js +4 -0
  980. package/dist/react-native/client/Item/Item.js.map +1 -1
  981. package/dist/react-native/client/Item/ItemResponse.js +2 -0
  982. package/dist/react-native/client/Item/ItemResponse.js.map +1 -1
  983. package/dist/react-native/client/Item/Items.js +3 -0
  984. package/dist/react-native/client/Item/Items.js.map +1 -1
  985. package/dist/react-native/client/Offer/Offer.js +3 -0
  986. package/dist/react-native/client/Offer/Offer.js.map +1 -1
  987. package/dist/react-native/client/Offer/OfferResponse.js +2 -0
  988. package/dist/react-native/client/Offer/OfferResponse.js.map +1 -1
  989. package/dist/react-native/client/Offer/Offers.js +2 -0
  990. package/dist/react-native/client/Offer/Offers.js.map +1 -1
  991. package/dist/react-native/client/Permission/Permission.js +3 -0
  992. package/dist/react-native/client/Permission/Permission.js.map +1 -1
  993. package/dist/react-native/client/Permission/PermissionResponse.js +2 -0
  994. package/dist/react-native/client/Permission/PermissionResponse.js.map +1 -1
  995. package/dist/react-native/client/Permission/Permissions.js +2 -0
  996. package/dist/react-native/client/Permission/Permissions.js.map +1 -1
  997. package/dist/react-native/client/SasToken/SasTokenProperties.js +17 -0
  998. package/dist/react-native/client/SasToken/SasTokenProperties.js.map +1 -1
  999. package/dist/react-native/client/Script/Scripts.js +5 -0
  1000. package/dist/react-native/client/Script/Scripts.js.map +1 -1
  1001. package/dist/react-native/client/StoredProcedure/StoredProcedure.js +3 -0
  1002. package/dist/react-native/client/StoredProcedure/StoredProcedure.js.map +1 -1
  1003. package/dist/react-native/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  1004. package/dist/react-native/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  1005. package/dist/react-native/client/StoredProcedure/StoredProcedures.js +2 -0
  1006. package/dist/react-native/client/StoredProcedure/StoredProcedures.js.map +1 -1
  1007. package/dist/react-native/client/Trigger/Trigger.js +3 -0
  1008. package/dist/react-native/client/Trigger/Trigger.js.map +1 -1
  1009. package/dist/react-native/client/Trigger/TriggerResponse.js +2 -0
  1010. package/dist/react-native/client/Trigger/TriggerResponse.js.map +1 -1
  1011. package/dist/react-native/client/Trigger/Triggers.js +2 -0
  1012. package/dist/react-native/client/Trigger/Triggers.js.map +1 -1
  1013. package/dist/react-native/client/User/User.js +9 -0
  1014. package/dist/react-native/client/User/User.js.map +1 -1
  1015. package/dist/react-native/client/User/UserResponse.js +2 -0
  1016. package/dist/react-native/client/User/UserResponse.js.map +1 -1
  1017. package/dist/react-native/client/User/Users.js +2 -0
  1018. package/dist/react-native/client/User/Users.js.map +1 -1
  1019. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  1020. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  1021. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  1022. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  1023. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  1024. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  1025. package/dist/react-native/common/constants.js +1 -1
  1026. package/dist/react-native/common/constants.js.map +1 -1
  1027. package/dist/react-native/diagnostics/CosmosDiagnosticsContext.js +8 -7
  1028. package/dist/react-native/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  1029. package/dist/react-native/diagnostics/DiagnosticNodeInternal.js +26 -7
  1030. package/dist/react-native/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  1031. package/dist/react-native/diagnostics/DiagnosticWriter.js +1 -3
  1032. package/dist/react-native/diagnostics/DiagnosticWriter.js.map +1 -1
  1033. package/dist/react-native/diagnostics/index.js +2 -2
  1034. package/dist/react-native/diagnostics/index.js.map +1 -1
  1035. package/dist/react-native/documents/DatabaseAccount.js +20 -4
  1036. package/dist/react-native/documents/DatabaseAccount.js.map +1 -1
  1037. package/dist/react-native/documents/PartitionKey.js +1 -3
  1038. package/dist/react-native/documents/PartitionKey.js.map +1 -1
  1039. package/dist/react-native/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  1040. package/dist/react-native/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  1041. package/dist/react-native/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  1042. package/dist/react-native/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  1043. package/dist/react-native/encryption/Cache/EncryptionSettingsCache.js +2 -0
  1044. package/dist/react-native/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  1045. package/dist/react-native/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  1046. package/dist/react-native/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  1047. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js +5 -0
  1048. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  1049. package/dist/react-native/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  1050. package/dist/react-native/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  1051. package/dist/react-native/encryption/EncryptionItemQueryIterator.js +24 -27
  1052. package/dist/react-native/encryption/EncryptionItemQueryIterator.js.map +1 -1
  1053. package/dist/react-native/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  1054. package/dist/react-native/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  1055. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  1056. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  1057. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  1058. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  1059. package/dist/react-native/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  1060. package/dist/react-native/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  1061. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js +8 -1
  1062. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  1063. package/dist/react-native/encryption/EncryptionManager.js +6 -0
  1064. package/dist/react-native/encryption/EncryptionManager.js.map +1 -1
  1065. package/dist/react-native/encryption/EncryptionProcessor.js +5 -0
  1066. package/dist/react-native/encryption/EncryptionProcessor.js.map +1 -1
  1067. package/dist/react-native/encryption/EncryptionQueryBuilder.js +2 -0
  1068. package/dist/react-native/encryption/EncryptionQueryBuilder.js.map +1 -1
  1069. package/dist/react-native/encryption/EncryptionSettingForProperty.js +6 -0
  1070. package/dist/react-native/encryption/EncryptionSettingForProperty.js.map +1 -1
  1071. package/dist/react-native/encryption/EncryptionSettings.js +6 -3
  1072. package/dist/react-native/encryption/EncryptionSettings.js.map +1 -1
  1073. package/dist/react-native/encryption/KeyEncryptionKey.js +4 -0
  1074. package/dist/react-native/encryption/KeyEncryptionKey.js.map +1 -1
  1075. package/dist/react-native/encryption/Serializers/StringSerializer.js +1 -1
  1076. package/dist/react-native/encryption/Serializers/StringSerializer.js.map +1 -1
  1077. package/dist/react-native/extractPartitionKey.js +2 -2
  1078. package/dist/react-native/extractPartitionKey.js.map +1 -1
  1079. package/dist/react-native/globalEndpointManager.d.ts.map +1 -1
  1080. package/dist/react-native/globalEndpointManager.js +36 -23
  1081. package/dist/react-native/globalEndpointManager.js.map +1 -1
  1082. package/dist/react-native/globalPartitionEndpointManager.js +8 -0
  1083. package/dist/react-native/globalPartitionEndpointManager.js.map +1 -1
  1084. package/dist/react-native/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  1085. package/dist/react-native/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  1086. package/dist/react-native/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  1087. package/dist/react-native/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  1088. package/dist/react-native/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  1089. package/dist/react-native/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  1090. package/dist/react-native/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  1091. package/dist/react-native/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  1092. package/dist/react-native/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  1093. package/dist/react-native/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  1094. package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  1095. package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  1096. package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  1097. package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  1098. package/dist/react-native/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  1099. package/dist/react-native/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  1100. package/dist/react-native/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  1101. package/dist/react-native/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  1102. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  1103. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  1104. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  1105. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  1106. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  1107. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  1108. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  1109. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  1110. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  1111. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  1112. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  1113. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  1114. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  1115. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  1116. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  1117. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  1118. package/dist/react-native/queryExecutionContext/FetchResult.js +4 -0
  1119. package/dist/react-native/queryExecutionContext/FetchResult.js.map +1 -1
  1120. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  1121. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  1122. package/dist/react-native/queryExecutionContext/documentProducer.js +34 -21
  1123. package/dist/react-native/queryExecutionContext/documentProducer.js.map +1 -1
  1124. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  1125. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  1126. package/dist/react-native/queryExecutionContext/orderByComparator.js +1 -0
  1127. package/dist/react-native/queryExecutionContext/orderByComparator.js.map +1 -1
  1128. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  1129. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  1130. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  1131. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  1132. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  1133. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  1134. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  1135. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  1136. package/dist/react-native/queryIterator.js +41 -33
  1137. package/dist/react-native/queryIterator.js.map +1 -1
  1138. package/dist/react-native/queryMetrics/clientSideMetrics.js +2 -1
  1139. package/dist/react-native/queryMetrics/clientSideMetrics.js.map +1 -1
  1140. package/dist/react-native/queryMetrics/queryMetrics.js +14 -1
  1141. package/dist/react-native/queryMetrics/queryMetrics.js.map +1 -1
  1142. package/dist/react-native/queryMetrics/queryPreparationTime.js +5 -1
  1143. package/dist/react-native/queryMetrics/queryPreparationTime.js.map +1 -1
  1144. package/dist/react-native/queryMetrics/runtimeExecutionTimes.js +4 -1
  1145. package/dist/react-native/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  1146. package/dist/react-native/queryMetrics/timeSpan.js +4 -3
  1147. package/dist/react-native/queryMetrics/timeSpan.js.map +1 -1
  1148. package/dist/react-native/request/ErrorResponse.js +19 -0
  1149. package/dist/react-native/request/ErrorResponse.js.map +1 -1
  1150. package/dist/react-native/request/FeedResponse.js +4 -0
  1151. package/dist/react-native/request/FeedResponse.js.map +1 -1
  1152. package/dist/react-native/request/RequestHandler.js +1 -2
  1153. package/dist/react-native/request/RequestHandler.js.map +1 -1
  1154. package/dist/react-native/request/ResourceResponse.js +5 -0
  1155. package/dist/react-native/request/ResourceResponse.js.map +1 -1
  1156. package/dist/react-native/request/TimeoutError.js +1 -1
  1157. package/dist/react-native/request/TimeoutError.js.map +1 -1
  1158. package/dist/react-native/request/hybridSearchQueryResult.js +5 -0
  1159. package/dist/react-native/request/hybridSearchQueryResult.js.map +1 -1
  1160. package/dist/react-native/request/request.js +5 -1
  1161. package/dist/react-native/request/request.js.map +1 -1
  1162. package/dist/react-native/retry/bulkExecutionRetryPolicy.js +5 -2
  1163. package/dist/react-native/retry/bulkExecutionRetryPolicy.js.map +1 -1
  1164. package/dist/react-native/retry/defaultRetryPolicy.d.ts.map +1 -1
  1165. package/dist/react-native/retry/defaultRetryPolicy.js +7 -7
  1166. package/dist/react-native/retry/defaultRetryPolicy.js.map +1 -1
  1167. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.d.ts +3 -2
  1168. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
  1169. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js +24 -7
  1170. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  1171. package/dist/react-native/retry/resourceThrottleRetryPolicy.js +20 -10
  1172. package/dist/react-native/retry/resourceThrottleRetryPolicy.js.map +1 -1
  1173. package/dist/react-native/retry/retryUtility.d.ts.map +1 -1
  1174. package/dist/react-native/retry/retryUtility.js +5 -5
  1175. package/dist/react-native/retry/retryUtility.js.map +1 -1
  1176. package/dist/react-native/retry/sessionRetryPolicy.js +8 -4
  1177. package/dist/react-native/retry/sessionRetryPolicy.js.map +1 -1
  1178. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js +14 -4
  1179. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  1180. package/dist/react-native/routing/QueryRange.js +4 -0
  1181. package/dist/react-native/routing/QueryRange.js.map +1 -1
  1182. package/dist/react-native/routing/inMemoryCollectionRoutingMap.js +4 -0
  1183. package/dist/react-native/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  1184. package/dist/react-native/routing/partitionKeyRangeCache.js +2 -0
  1185. package/dist/react-native/routing/partitionKeyRangeCache.js.map +1 -1
  1186. package/dist/react-native/routing/smartRoutingMapProvider.js +1 -0
  1187. package/dist/react-native/routing/smartRoutingMapProvider.js.map +1 -1
  1188. package/dist/react-native/session/VectorSessionToken.js +6 -2
  1189. package/dist/react-native/session/VectorSessionToken.js.map +1 -1
  1190. package/dist/react-native/session/sessionContainer.js +5 -3
  1191. package/dist/react-native/session/sessionContainer.js.map +1 -1
  1192. package/dist/react-native/utils/batch.js +15 -4
  1193. package/dist/react-native/utils/batch.js.map +1 -1
  1194. package/dist/react-native/utils/fixedSizePriorityQueue.js +4 -0
  1195. package/dist/react-native/utils/fixedSizePriorityQueue.js.map +1 -1
  1196. package/dist/react-native/utils/hashing/hash.js +1 -1
  1197. package/dist/react-native/utils/hashing/hash.js.map +1 -1
  1198. package/dist/react-native/utils/nonStreamingOrderByMap.js +2 -0
  1199. package/dist/react-native/utils/nonStreamingOrderByMap.js.map +1 -1
  1200. package/package.json +32 -33
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../../src/client/Container/Container.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ClientContext } from \"../../ClientContext.js\";\nimport {\n Constants,\n createDocumentCollectionUri,\n getIdFromLink,\n getPathFromLink,\n HTTPMethod,\n isResourceValid,\n ResourceType,\n StatusCodes,\n SubStatusCodes,\n} from \"../../common/index.js\";\nimport type { PartitionKey, PartitionKeyDefinition } from \"../../documents/index.js\";\nimport { convertToInternalPartitionKey } from \"../../documents/index.js\";\nimport type { SqlQuerySpec } from \"../../queryExecutionContext/index.js\";\nimport type { QueryIterator } from \"../../queryIterator.js\";\nimport type { FeedOptions, RequestOptions, Response } from \"../../request/index.js\";\nimport { ResourceResponse } from \"../../request/index.js\";\nimport type { PartitionedQueryExecutionInfo } from \"../../request/ErrorResponse.js\";\nimport { ErrorResponse } from \"../../request/ErrorResponse.js\";\nimport { Conflict, Conflicts } from \"../Conflict/index.js\";\nimport type { Database } from \"../Database/index.js\";\nimport { Item, Items } from \"../Item/index.js\";\nimport { Scripts } from \"../Script/Scripts.js\";\nimport type { ContainerDefinition } from \"./ContainerDefinition.js\";\nimport { ContainerResponse } from \"./ContainerResponse.js\";\nimport type { PartitionKeyRange } from \"./PartitionKeyRange.js\";\nimport type { OfferDefinition } from \"../Offer/index.js\";\nimport { Offer } from \"../Offer/index.js\";\nimport { OfferResponse } from \"../Offer/OfferResponse.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { FeedRange } from \"../ChangeFeed/index.js\";\nimport { FeedRangeInternal } from \"../ChangeFeed/index.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport {\n getEmptyCosmosDiagnostics,\n withDiagnostics,\n withMetadataDiagnostics,\n} from \"../../utils/diagnostics.js\";\nimport { MetadataLookUpType } from \"../../CosmosDiagnostics.js\";\nimport type { EncryptionSettingForProperty } from \"../../encryption/index.js\";\nimport { EncryptionProcessor } from \"../../encryption/index.js\";\nimport type { EncryptionManager } from \"../../encryption/EncryptionManager.js\";\n\n/**\n * Operations for reading, replacing, or deleting a specific, existing container by id.\n *\n * @see {@link Containers} for creating new containers, and reading/querying all containers; use `.containers`.\n *\n * Note: all these operations make calls against a fixed budget.\n * You should design your system such that these calls scale sublinearly with your application.\n * For instance, do not call `container(id).read()` before every single `item.read()` call, to ensure the container exists;\n * do this once on application start up.\n */\nexport class Container {\n private $items: Items;\n /**\n * Operations for creating new items, and reading/querying all items\n *\n * For reading, replacing, or deleting an existing item, use `.item(id)`.\n *\n * @example Create a new item\n * ```ts snippet:ContainerItems\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 { resource: createdItem } = await container.items.create({\n * id: \"<item id>\",\n * properties: {},\n * });\n * ```\n */\n public get items(): Items {\n if (!this.$items) {\n this.$items = new Items(this, this.clientContext);\n }\n return this.$items;\n }\n\n private $scripts: Scripts;\n /**\n * All operations for Stored Procedures, Triggers, and User Defined Functions\n */\n public get scripts(): Scripts {\n if (!this.$scripts) {\n this.$scripts = new Scripts(this, this.clientContext);\n }\n return this.$scripts;\n }\n\n private $conflicts: Conflicts;\n /**\n * Operations for reading and querying conflicts for the given container.\n *\n * For reading or deleting a specific conflict, use `.conflict(id)`.\n */\n public get conflicts(): Conflicts {\n if (!this.$conflicts) {\n this.$conflicts = new Conflicts(this, this.clientContext);\n }\n return this.$conflicts;\n }\n\n /**\n * Returns a reference URL to the resource. Used for linking in Permissions.\n */\n public get url(): string {\n return createDocumentCollectionUri(this.database.id, this.id);\n }\n /**\n * @internal\n */\n public encryptionProcessor: EncryptionProcessor;\n\n /**\n * @internal\n */\n public _rid: string;\n\n private isEncryptionInitialized: boolean = false;\n private encryptionInitializationPromise: Promise<void>;\n\n /**\n * Returns a container instance. Note: You should get this from `database.container(id)`, rather than creating your own object.\n * @param database - The parent {@link Database}.\n * @param id - The id of the given container.\n * @hidden\n */\n constructor(\n public readonly database: Database,\n public readonly id: string,\n private readonly clientContext: ClientContext,\n private encryptionManager?: EncryptionManager,\n _rid?: string,\n ) {\n this._rid = _rid;\n if (this.clientContext.enableEncryption) {\n this.encryptionProcessor = new EncryptionProcessor(\n this.id,\n this._rid,\n this.database,\n this.clientContext,\n this.encryptionManager,\n );\n }\n }\n\n /**\n * Used to read, replace, or delete a specific, existing {@link Item} by id.\n *\n * Use `.items` for creating new items, or querying/reading all items.\n *\n * @param id - The id of the {@link Item}.\n * @param partitionKeyValue - The value of the {@link Item} partition key\n * @example Replace an item\n * ```ts snippet:ContainerItem\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 { body: replacedItem } = await container\n * .item(\"<item id>\", \"<partition key value>\")\n * .replace({ id: \"<item id>\", title: \"Updated post\", authorID: 5 });\n * ```\n */\n public item(id: string, partitionKeyValue?: PartitionKey): Item {\n return new Item(this, id, this.clientContext, partitionKeyValue);\n }\n\n /**\n * Used to read, replace, or delete a specific, existing {@link Conflict} by id.\n *\n * Use `.conflicts` for creating new conflicts, or querying/reading all conflicts.\n * @param id - The id of the {@link Conflict}.\n * @example\n * ```ts snippet:ConflictRead\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 = database.container(\"Test Container\");\n *\n * const { resource: conflict } = await container.conflict(\"<conflict-id>\").read();\n * ```\n */\n public conflict(id: string, partitionKey?: PartitionKey): Conflict {\n return new Conflict(this, id, this.clientContext, partitionKey);\n }\n\n /**\n * Read the container's definition\n * @example\n * ```ts snippet:ContainerRead\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 { resource: database } = await client.database(\"<db id>\").container(\"<container id>\").read();\n * ```\n */\n public async read(options?: RequestOptions): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.readInternal(diagnosticNode, options);\n }, this.clientContext);\n }\n\n /**\n * @hidden\n */\n public async readInternal(\n diagnosticNode: DiagnosticNodeInternal,\n options?: RequestOptions,\n ): Promise<ContainerResponse> {\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n const response = await this.clientContext.read<ContainerDefinition>({\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n options,\n diagnosticNode,\n });\n this.clientContext.partitionKeyDefinitionCache[this.url] = response.result.partitionKey;\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }\n\n /**\n * Replace the container's definition\n * @example\n * ```ts snippet:ContainerReplace\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 containerDefinition = {\n * id: \"Test Container\",\n * partitionKey: {\n * paths: [\"/key1\"],\n * },\n * throughput: 1000,\n * };\n * const { container } = await database.containers.createIfNotExists(containerDefinition);\n *\n * containerDefinition.throughput = 400;\n * const { container: replacedContainer } = await container.replace(containerDefinition);\n * ```\n */\n public async replace(\n body: ContainerDefinition,\n options?: RequestOptions,\n ): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const err = {};\n if (!isResourceValid(body, err)) {\n throw err;\n }\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n\n const response = await this.clientContext.replace<ContainerDefinition>({\n body,\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n options,\n diagnosticNode,\n });\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Delete the container\n * @example\n * ```ts snippet:DatabaseDeleteContainer\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 * await client.database(\"<db id>\").container(\"<container id>\").delete();\n * ```\n */\n public async delete(options?: RequestOptions): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n\n const response = await this.clientContext.delete<ContainerDefinition>({\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n options,\n diagnosticNode,\n });\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Gets the partition key definition first by looking into the cache otherwise by reading the collection.\n * @deprecated This method has been renamed to readPartitionKeyDefinition.\n */\n public async getPartitionKeyDefinition(): Promise<ResourceResponse<PartitionKeyDefinition>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.readPartitionKeyDefinition(diagnosticNode);\n }, this.clientContext);\n }\n\n /**\n * Gets the partition key definition first by looking into the cache otherwise by reading the collection.\n * @hidden\n */\n public async readPartitionKeyDefinition(\n diagnosticNode: DiagnosticNodeInternal,\n ): Promise<ResourceResponse<PartitionKeyDefinition>> {\n // $ISSUE-felixfan-2016-03-17: Make name based path and link based path use the same key\n // $ISSUE-felixfan-2016-03-17: Refresh partitionKeyDefinitionCache when necessary\n if (this.url in this.clientContext.partitionKeyDefinitionCache) {\n diagnosticNode.addData({ readFromCache: true });\n return new ResourceResponse<PartitionKeyDefinition>(\n this.clientContext.partitionKeyDefinitionCache[this.url],\n {},\n 0,\n getEmptyCosmosDiagnostics(),\n );\n }\n\n const { headers, statusCode, diagnostics } = await withMetadataDiagnostics(\n async (node: DiagnosticNodeInternal) => {\n return this.readInternal(node);\n },\n diagnosticNode,\n MetadataLookUpType.ContainerLookUp,\n );\n\n return new ResourceResponse<PartitionKeyDefinition>(\n this.clientContext.partitionKeyDefinitionCache[this.url],\n headers,\n statusCode,\n diagnostics,\n );\n }\n\n /**\n * Gets offer on container. If none exists, returns an OfferResponse with undefined.\n * @example\n * ```ts snippet:ContainerReadOffer\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 { resource: offer } = await client\n * .database(\"<db id>\")\n * .container(\"<container id>\")\n * .readOffer();\n * ```\n */\n public async readOffer(options: RequestOptions = {}): Promise<OfferResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const { resource: container } = await this.read();\n const path = \"/offers\";\n const url = container._self;\n\n const response = await this.clientContext.queryFeed<OfferDefinition & Resource[]>({\n path,\n resourceId: \"\",\n resourceType: ResourceType.offer,\n query: `SELECT * from root where root.resource = \"${url}\"`,\n resultFn: (result) => result.Offers,\n options,\n diagnosticNode,\n });\n const offer = response.result[0]\n ? new Offer(this.database.client, response.result[0].id, this.clientContext)\n : undefined;\n return new OfferResponse(\n response.result[0],\n response.headers,\n response.code,\n getEmptyCosmosDiagnostics(),\n offer,\n );\n }, this.clientContext);\n }\n\n public async getQueryPlan(\n query: string | SqlQuerySpec,\n ): Promise<Response<PartitionedQueryExecutionInfo>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url);\n\n return this.clientContext.getQueryPlan(\n path + \"/docs\",\n ResourceType.item,\n getIdFromLink(this.url),\n query,\n {},\n diagnosticNode,\n );\n }, this.clientContext);\n }\n\n /**\n * Gets the partition key ranges for the container.\n * @param feedOptions - Options for the request.\n * @returns An iterator of partition key ranges.\n * @example\n * ```ts snippet:ContainerReadPartitionKeyRanges\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: ranges } = await container.readPartitionKeyRanges().fetchAll();\n * ```\n */\n public readPartitionKeyRanges(feedOptions?: FeedOptions): QueryIterator<PartitionKeyRange> {\n feedOptions = feedOptions || {};\n return this.clientContext.queryPartitionKeyRanges(this.url, undefined, feedOptions);\n }\n /**\n *\n * @returns all the feed ranges for which changefeed could be fetched.\n * @example\n * ```ts snippet:ContainerGetFeedRanges\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: ranges } = await container.getFeedRanges();\n * ```\n */\n public async getFeedRanges(): Promise<ReadonlyArray<FeedRange>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const { resources } = await this.readPartitionKeyRanges().fetchAllInternal(diagnosticNode);\n\n const feedRanges: FeedRange[] = [];\n for (const resource of resources) {\n const feedRange = new FeedRangeInternal(resource.minInclusive, resource.maxExclusive);\n Object.freeze(feedRange);\n feedRanges.push(feedRange);\n }\n return feedRanges;\n }, this.clientContext);\n }\n\n /**\n * Delete all documents belong to the container for the provided partition key value\n * @param partitionKey - The partition key value of the items to be deleted\n * @example\n * ```ts snippet:ContainerDeleteAllItemsForPartitionKey\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({\n * id: \"Test Container\",\n * partitionKey: {\n * paths: [\"/state\"],\n * },\n * });\n *\n * const cities = [\n * { id: \"1\", name: \"Olympia\", state: \"WA\", isCapitol: true },\n * { id: \"2\", name: \"Redmond\", state: \"WA\", isCapitol: false },\n * { id: \"3\", name: \"Olympia\", state: \"IL\", isCapitol: false },\n * ];\n * for (const city of cities) {\n * await container.items.create(city);\n * }\n *\n * await container.deleteAllItemsForPartitionKey(\"WA\");\n * ```\n */\n public async deleteAllItemsForPartitionKey(\n partitionKey: PartitionKey,\n options?: RequestOptions,\n ): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n let path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n path = path + \"/operations/partitionkeydelete\";\n if (this.clientContext.enableEncryption) {\n await this.checkAndInitializeEncryption();\n options = options || {};\n options.containerRid = this._rid;\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsEncryptOperation);\n const partitionKeyInternal = convertToInternalPartitionKey(partitionKey);\n const { partitionKeyList, encryptedCount } =\n await this.encryptionProcessor.getEncryptedPartitionKeyValue(partitionKeyInternal);\n partitionKey = partitionKeyList;\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n encryptedCount,\n );\n }\n let response: Response<any>;\n try {\n response = await this.clientContext.delete<ContainerDefinition>({\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n method: HTTPMethod.post,\n diagnosticNode,\n });\n } catch (error) {\n if (this.clientContext.enableEncryption) {\n await this.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n throw error;\n }\n\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n /**\n * Warms up encryption related caches for the container.\n * @example\n * ```ts snippet:ContainerIntializeEncryption\n * import { ClientSecretCredential } from \"@azure/identity\";\n * import {\n * AzureKeyVaultEncryptionKeyResolver,\n * CosmosClient,\n * EncryptionType,\n * EncryptionAlgorithm,\n * ClientEncryptionIncludedPath,\n * ClientEncryptionPolicy,\n * } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const credentials = new ClientSecretCredential(\"<tenant-id>\", \"<client-id>\", \"<app-secret>\");\n * const keyResolver = new AzureKeyVaultEncryptionKeyResolver(credentials);\n * const client = new CosmosClient({\n * endpoint,\n * key,\n * clientEncryptionOptions: {\n * keyEncryptionKeyResolver: keyResolver,\n * },\n * });\n * const { database } = await client.databases.createIfNotExists({ id: \"<db id>\" });\n *\n * const paths = [\"/path1\", \"/path2\", \"/path3\"].map(\n * (path) =>\n * ({\n * path: path,\n * clientEncryptionKeyId: \"< cek - id >\",\n * encryptionType: EncryptionType.DETERMINISTIC,\n * encryptionAlgorithm: EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA256,\n * }) as ClientEncryptionIncludedPath,\n * );\n * const clientEncryptionPolicy: ClientEncryptionPolicy = {\n * includedPaths: paths,\n * policyFormatVersion: 2,\n * };\n * const containerDefinition = {\n * id: \"Test Container\",\n * partitionKey: {\n * paths: [\"/id\"],\n * },\n * clientEncryptionPolicy: clientEncryptionPolicy,\n * };\n * const { container } = await database.containers.createIfNotExists(containerDefinition);\n *\n * await container.initializeEncryption();\n * ```\n */\n public async initializeEncryption(): Promise<void> {\n if (!this.clientContext.enableEncryption) {\n throw new ErrorResponse(\"Encryption is not enabled for the client.\");\n } else {\n await withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const readResponse = await this.readInternal(diagnosticNode);\n if (!readResponse || !readResponse.resource) {\n throw new ErrorResponse(\n \"Failed to initialize encryption: The container's resource definition could not be retrieved.\",\n );\n }\n this._rid = readResponse.resource._rid;\n this.encryptionProcessor.containerRid = this._rid;\n const clientEncryptionPolicy = readResponse.resource.clientEncryptionPolicy;\n if (!clientEncryptionPolicy) return;\n const partitionKeyPaths = readResponse.resource.partitionKey.paths;\n const databaseResponse = await this.database.readInternal(diagnosticNode);\n if (!databaseResponse || !databaseResponse.resource) {\n throw new ErrorResponse(\n \"Failed to initialize encryption: The database's resource definition could not be retrieved.\",\n );\n }\n this.database._rid = databaseResponse.resource._rid;\n const encryptionSettingKey = this.database._rid + \"/\" + this._rid;\n\n await this.encryptionManager.encryptionSettingsCache.create(\n encryptionSettingKey,\n this._rid,\n partitionKeyPaths,\n clientEncryptionPolicy,\n );\n const clientEncryptionKeyIds = [\n ...new Set(\n clientEncryptionPolicy.includedPaths.map((item) => item.clientEncryptionKeyId),\n ),\n ];\n // fetch and set clientEncryptionKeys in the cache\n for (const clientEncryptionKeyId of clientEncryptionKeyIds) {\n const res = await this.database.readClientEncryptionKey(clientEncryptionKeyId);\n if (!res || !res.clientEncryptionKeyProperties) {\n throw new ErrorResponse(\n `Failed to initialize encryption: The client encryption key ${clientEncryptionKeyId} could not be retrieved.`,\n );\n }\n const encryptionKeyProperties = res.clientEncryptionKeyProperties;\n const key = this.database._rid + \"/\" + clientEncryptionKeyId;\n\n this.encryptionManager.clientEncryptionKeyPropertiesCache.set(\n key,\n encryptionKeyProperties,\n );\n }\n this.isEncryptionInitialized = true;\n }, this.clientContext);\n }\n }\n\n /**\n * @internal\n */\n async checkAndInitializeEncryption(): Promise<void> {\n if (!this.isEncryptionInitialized) {\n if (!this.encryptionInitializationPromise) {\n this.encryptionInitializationPromise = this.initializeEncryption();\n }\n await this.encryptionInitializationPromise;\n }\n }\n\n /**\n * @internal\n * This function handles the scenario where a container is deleted(say from different Client) and recreated with same Id but with different client encryption policy.\n * The idea is to have the container Rid cached and sent out as part of RequestOptions with Container Rid set in \"x-ms-cosmos-intended-collection-rid\" header.\n * So, when the container being referenced here gets recreated we would end up with a stale encryption settings and container Rid and this would result in BadRequest (and a substatus 1024).\n * This would allow us to refresh the encryption settings and Container Rid, on the premise that the container recreated could possibly be configured with a new encryption policy.\n */\n async throwIfRequestNeedsARetryPostPolicyRefresh(errorResponse: ErrorResponse): Promise<void> {\n const key = this.database._rid + \"/\" + this._rid;\n const encryptionSetting = this.encryptionManager.encryptionSettingsCache.get(key);\n if (!errorResponse?.code || !errorResponse?.headers?.[Constants.HttpHeaders.SubStatus]) {\n return;\n }\n const subStatusCode = errorResponse.headers[Constants.HttpHeaders.SubStatus];\n const isPartitionKeyMismatch = Number(subStatusCode) === SubStatusCodes.PartitionKeyMismatch;\n const isIncorrectContainerRidSubstatus =\n Number(subStatusCode) === SubStatusCodes.IncorrectContainerRidSubstatus;\n if (\n errorResponse.code === StatusCodes.BadRequest &&\n (isPartitionKeyMismatch || isIncorrectContainerRidSubstatus)\n ) {\n // This code verifies if the partitionKeyPaths are encrypted.\n // If the paths are not encrypted, it indicates that the application passed an incorrect partition key in the request.\n // This ensures the issue is not caused by a mismatched encrypted value due to a policy error,\n // avoiding unnecessary force-refreshing of encryption settings.\n if (isPartitionKeyMismatch && encryptionSetting.partitionKeyPaths.length) {\n let encryptionSettingsForProperty: EncryptionSettingForProperty = null;\n for (const path of encryptionSetting.partitionKeyPaths) {\n const partitionKeyPath = path.split(\"/\")[1];\n encryptionSettingsForProperty =\n encryptionSetting.getEncryptionSettingForProperty(partitionKeyPath);\n if (encryptionSettingsForProperty) {\n break;\n }\n }\n // wrong partition key passed as partition key is not encrypted.\n if (encryptionSettingsForProperty == null) {\n return;\n }\n }\n\n const currentContainerRid = encryptionSetting.containerRid;\n const forceRefresh = true;\n // fetch rid of newly created container\n const updatedContainerRid = (\n await this.encryptionProcessor.getEncryptionSetting(forceRefresh)\n ).containerRid;\n // if the container was not recreated, so policy has not changed, just return the original response\n if (currentContainerRid === updatedContainerRid) {\n return;\n }\n await this.initializeEncryption();\n throw new ErrorResponse(\n \"Operation has failed due to a possible mismatch in Client Encryption Policy configured on the container. Retrying may fix the issue. Please refer to https://aka.ms/CosmosClientEncryption for more details.\" +\n errorResponse.message,\n );\n }\n }\n}\n"]}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../../src/client/Container/Container.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ClientContext } from \"../../ClientContext.js\";\nimport {\n Constants,\n createDocumentCollectionUri,\n getIdFromLink,\n getPathFromLink,\n HTTPMethod,\n isResourceValid,\n ResourceType,\n StatusCodes,\n SubStatusCodes,\n} from \"../../common/index.js\";\nimport type { PartitionKey, PartitionKeyDefinition } from \"../../documents/index.js\";\nimport { convertToInternalPartitionKey } from \"../../documents/index.js\";\nimport type { SqlQuerySpec } from \"../../queryExecutionContext/index.js\";\nimport type { QueryIterator } from \"../../queryIterator.js\";\nimport type { FeedOptions, RequestOptions, Response } from \"../../request/index.js\";\nimport { ResourceResponse } from \"../../request/index.js\";\nimport type { PartitionedQueryExecutionInfo } from \"../../request/ErrorResponse.js\";\nimport { ErrorResponse } from \"../../request/ErrorResponse.js\";\nimport { Conflict, Conflicts } from \"../Conflict/index.js\";\nimport type { Database } from \"../Database/index.js\";\nimport { Item, Items } from \"../Item/index.js\";\nimport { Scripts } from \"../Script/Scripts.js\";\nimport type { ContainerDefinition } from \"./ContainerDefinition.js\";\nimport { ContainerResponse } from \"./ContainerResponse.js\";\nimport type { PartitionKeyRange } from \"./PartitionKeyRange.js\";\nimport type { OfferDefinition } from \"../Offer/index.js\";\nimport { Offer } from \"../Offer/index.js\";\nimport { OfferResponse } from \"../Offer/OfferResponse.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { FeedRange } from \"../ChangeFeed/index.js\";\nimport { FeedRangeInternal } from \"../ChangeFeed/index.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport {\n getEmptyCosmosDiagnostics,\n withDiagnostics,\n withMetadataDiagnostics,\n} from \"../../utils/diagnostics.js\";\nimport { MetadataLookUpType } from \"../../CosmosDiagnostics.js\";\nimport type { EncryptionSettingForProperty } from \"../../encryption/index.js\";\nimport { EncryptionProcessor } from \"../../encryption/index.js\";\nimport type { EncryptionManager } from \"../../encryption/EncryptionManager.js\";\n\n/**\n * Operations for reading, replacing, or deleting a specific, existing container by id.\n *\n * @see {@link Containers} for creating new containers, and reading/querying all containers; use `.containers`.\n *\n * Note: all these operations make calls against a fixed budget.\n * You should design your system such that these calls scale sublinearly with your application.\n * For instance, do not call `container(id).read()` before every single `item.read()` call, to ensure the container exists;\n * do this once on application start up.\n */\nexport class Container {\n private $items: Items;\n /**\n * Operations for creating new items, and reading/querying all items\n *\n * For reading, replacing, or deleting an existing item, use `.item(id)`.\n *\n * @example Create a new item\n * ```ts snippet:ContainerItems\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 { resource: createdItem } = await container.items.create({\n * id: \"<item id>\",\n * properties: {},\n * });\n * ```\n */\n public get items(): Items {\n if (!this.$items) {\n this.$items = new Items(this, this.clientContext);\n }\n return this.$items;\n }\n\n private $scripts: Scripts;\n /**\n * All operations for Stored Procedures, Triggers, and User Defined Functions\n */\n public get scripts(): Scripts {\n if (!this.$scripts) {\n this.$scripts = new Scripts(this, this.clientContext);\n }\n return this.$scripts;\n }\n\n private $conflicts: Conflicts;\n /**\n * Operations for reading and querying conflicts for the given container.\n *\n * For reading or deleting a specific conflict, use `.conflict(id)`.\n */\n public get conflicts(): Conflicts {\n if (!this.$conflicts) {\n this.$conflicts = new Conflicts(this, this.clientContext);\n }\n return this.$conflicts;\n }\n\n /**\n * Returns a reference URL to the resource. Used for linking in Permissions.\n */\n public get url(): string {\n return createDocumentCollectionUri(this.database.id, this.id);\n }\n /**\n * @internal\n */\n public encryptionProcessor: EncryptionProcessor;\n\n /**\n * @internal\n */\n public _rid: string;\n\n private isEncryptionInitialized: boolean = false;\n private encryptionInitializationPromise: Promise<void>;\n\n /**\n * Returns a container instance. Note: You should get this from `database.container(id)`, rather than creating your own object.\n * @param database - The parent {@link Database}.\n * @param id - The id of the given container.\n * @hidden\n */\n constructor(\n public readonly database: Database,\n public readonly id: string,\n private readonly clientContext: ClientContext,\n private encryptionManager?: EncryptionManager,\n _rid?: string,\n ) {\n this._rid = _rid;\n if (this.clientContext.enableEncryption) {\n this.encryptionProcessor = new EncryptionProcessor(\n this.id,\n this._rid,\n this.database,\n this.clientContext,\n this.encryptionManager,\n );\n }\n }\n\n /**\n * Used to read, replace, or delete a specific, existing {@link Item} by id.\n *\n * Use `.items` for creating new items, or querying/reading all items.\n *\n * @param id - The id of the {@link Item}.\n * @param partitionKeyValue - The value of the {@link Item} partition key\n * @example Replace an item\n * ```ts snippet:ContainerItem\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 { body: replacedItem } = await container\n * .item(\"<item id>\", \"<partition key value>\")\n * .replace({ id: \"<item id>\", title: \"Updated post\", authorID: 5 });\n * ```\n */\n public item(id: string, partitionKeyValue?: PartitionKey): Item {\n return new Item(this, id, this.clientContext, partitionKeyValue);\n }\n\n /**\n * Used to read, replace, or delete a specific, existing {@link Conflict} by id.\n *\n * Use `.conflicts` for creating new conflicts, or querying/reading all conflicts.\n * @param id - The id of the {@link Conflict}.\n * @example\n * ```ts snippet:ConflictRead\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 = database.container(\"Test Container\");\n *\n * const { resource: conflict } = await container.conflict(\"<conflict-id>\").read();\n * ```\n */\n public conflict(id: string, partitionKey?: PartitionKey): Conflict {\n return new Conflict(this, id, this.clientContext, partitionKey);\n }\n\n /**\n * Read the container's definition\n * @example\n * ```ts snippet:ContainerRead\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 { resource: database } = await client.database(\"<db id>\").container(\"<container id>\").read();\n * ```\n */\n public async read(options?: RequestOptions): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.readInternal(diagnosticNode, options);\n }, this.clientContext);\n }\n\n /**\n * @hidden\n */\n public async readInternal(\n diagnosticNode: DiagnosticNodeInternal,\n options?: RequestOptions,\n ): Promise<ContainerResponse> {\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n const response = await this.clientContext.read<ContainerDefinition>({\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n options,\n diagnosticNode,\n });\n this.clientContext.partitionKeyDefinitionCache[this.url] = response.result.partitionKey;\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }\n\n /**\n * Replace the container's definition\n * @example\n * ```ts snippet:ContainerReplace\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 containerDefinition = {\n * id: \"Test Container\",\n * partitionKey: {\n * paths: [\"/key1\"],\n * },\n * throughput: 1000,\n * };\n * const { container } = await database.containers.createIfNotExists(containerDefinition);\n *\n * containerDefinition.throughput = 400;\n * const { container: replacedContainer } = await container.replace(containerDefinition);\n * ```\n */\n public async replace(\n body: ContainerDefinition,\n options?: RequestOptions,\n ): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const err = {};\n if (!isResourceValid(body, err)) {\n throw err;\n }\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n\n const response = await this.clientContext.replace<ContainerDefinition>({\n body,\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n options,\n diagnosticNode,\n });\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Delete the container\n * @example\n * ```ts snippet:DatabaseDeleteContainer\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 * await client.database(\"<db id>\").container(\"<container id>\").delete();\n * ```\n */\n public async delete(options?: RequestOptions): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n\n const response = await this.clientContext.delete<ContainerDefinition>({\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n options,\n diagnosticNode,\n });\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Gets the partition key definition first by looking into the cache otherwise by reading the collection.\n * @deprecated This method has been renamed to readPartitionKeyDefinition.\n */\n public async getPartitionKeyDefinition(): Promise<ResourceResponse<PartitionKeyDefinition>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.readPartitionKeyDefinition(diagnosticNode);\n }, this.clientContext);\n }\n\n /**\n * Gets the partition key definition first by looking into the cache otherwise by reading the collection.\n * @hidden\n */\n public async readPartitionKeyDefinition(\n diagnosticNode: DiagnosticNodeInternal,\n ): Promise<ResourceResponse<PartitionKeyDefinition>> {\n // $ISSUE-felixfan-2016-03-17: Make name based path and link based path use the same key\n // $ISSUE-felixfan-2016-03-17: Refresh partitionKeyDefinitionCache when necessary\n if (this.url in this.clientContext.partitionKeyDefinitionCache) {\n diagnosticNode.addData({ readFromCache: true });\n return new ResourceResponse<PartitionKeyDefinition>(\n this.clientContext.partitionKeyDefinitionCache[this.url],\n {},\n 0,\n getEmptyCosmosDiagnostics(),\n );\n }\n\n const { headers, statusCode, diagnostics } = await withMetadataDiagnostics(\n async (node: DiagnosticNodeInternal) => {\n return this.readInternal(node);\n },\n diagnosticNode,\n MetadataLookUpType.ContainerLookUp,\n );\n\n return new ResourceResponse<PartitionKeyDefinition>(\n this.clientContext.partitionKeyDefinitionCache[this.url],\n headers,\n statusCode,\n diagnostics,\n );\n }\n\n /**\n * Gets offer on container. If none exists, returns an OfferResponse with undefined.\n * @example\n * ```ts snippet:ContainerReadOffer\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 { resource: offer } = await client\n * .database(\"<db id>\")\n * .container(\"<container id>\")\n * .readOffer();\n * ```\n */\n public async readOffer(options: RequestOptions = {}): Promise<OfferResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const { resource: container } = await this.read();\n const path = \"/offers\";\n const url = container._self;\n\n const response = await this.clientContext.queryFeed<OfferDefinition & Resource[]>({\n path,\n resourceId: \"\",\n resourceType: ResourceType.offer,\n query: `SELECT * from root where root.resource = \"${url}\"`,\n resultFn: (result) => result.Offers,\n options,\n diagnosticNode,\n });\n const offer = response.result[0]\n ? new Offer(this.database.client, response.result[0].id, this.clientContext)\n : undefined;\n return new OfferResponse(\n response.result[0],\n response.headers,\n response.code,\n getEmptyCosmosDiagnostics(),\n offer,\n );\n }, this.clientContext);\n }\n\n public async getQueryPlan(\n query: string | SqlQuerySpec,\n ): Promise<Response<PartitionedQueryExecutionInfo>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url);\n\n return this.clientContext.getQueryPlan(\n path + \"/docs\",\n ResourceType.item,\n getIdFromLink(this.url),\n query,\n {},\n diagnosticNode,\n );\n }, this.clientContext);\n }\n\n /**\n * Gets the partition key ranges for the container.\n * @param feedOptions - Options for the request.\n * @returns An iterator of partition key ranges.\n * @example\n * ```ts snippet:ContainerReadPartitionKeyRanges\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: ranges } = await container.readPartitionKeyRanges().fetchAll();\n * ```\n */\n public readPartitionKeyRanges(feedOptions?: FeedOptions): QueryIterator<PartitionKeyRange> {\n feedOptions = feedOptions || {};\n return this.clientContext.queryPartitionKeyRanges(this.url, undefined, feedOptions);\n }\n /**\n *\n * @returns all the feed ranges for which changefeed could be fetched.\n * @example\n * ```ts snippet:ContainerGetFeedRanges\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: ranges } = await container.getFeedRanges();\n * ```\n */\n public async getFeedRanges(): Promise<ReadonlyArray<FeedRange>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const { resources } = await this.readPartitionKeyRanges().fetchAllInternal(diagnosticNode);\n\n const feedRanges: FeedRange[] = [];\n for (const resource of resources) {\n const feedRange = new FeedRangeInternal(resource.minInclusive, resource.maxExclusive);\n Object.freeze(feedRange);\n feedRanges.push(feedRange);\n }\n return feedRanges;\n }, this.clientContext);\n }\n\n /**\n * Delete all documents belong to the container for the provided partition key value\n * @param partitionKey - The partition key value of the items to be deleted\n * @example\n * ```ts snippet:ContainerDeleteAllItemsForPartitionKey\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({\n * id: \"Test Container\",\n * partitionKey: {\n * paths: [\"/state\"],\n * },\n * });\n *\n * const cities = [\n * { id: \"1\", name: \"Olympia\", state: \"WA\", isCapitol: true },\n * { id: \"2\", name: \"Redmond\", state: \"WA\", isCapitol: false },\n * { id: \"3\", name: \"Olympia\", state: \"IL\", isCapitol: false },\n * ];\n * for (const city of cities) {\n * await container.items.create(city);\n * }\n *\n * await container.deleteAllItemsForPartitionKey(\"WA\");\n * ```\n */\n public async deleteAllItemsForPartitionKey(\n partitionKey: PartitionKey,\n options?: RequestOptions,\n ): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n let path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n path = path + \"/operations/partitionkeydelete\";\n if (this.clientContext.enableEncryption) {\n await this.checkAndInitializeEncryption();\n options = options || {};\n options.containerRid = this._rid;\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsEncryptOperation);\n const partitionKeyInternal = convertToInternalPartitionKey(partitionKey);\n const { partitionKeyList, encryptedCount } =\n await this.encryptionProcessor.getEncryptedPartitionKeyValue(partitionKeyInternal);\n partitionKey = partitionKeyList;\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n encryptedCount,\n );\n }\n let response: Response<any>;\n try {\n response = await this.clientContext.delete<ContainerDefinition>({\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n method: HTTPMethod.post,\n diagnosticNode,\n });\n } catch (error) {\n if (this.clientContext.enableEncryption) {\n await this.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n throw error;\n }\n\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n /**\n * Warms up encryption related caches for the container.\n * @example\n * ```ts snippet:ContainerIntializeEncryption\n * import { ClientSecretCredential } from \"@azure/identity\";\n * import {\n * AzureKeyVaultEncryptionKeyResolver,\n * CosmosClient,\n * EncryptionType,\n * EncryptionAlgorithm,\n * ClientEncryptionIncludedPath,\n * ClientEncryptionPolicy,\n * } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const credentials = new ClientSecretCredential(\"<tenant-id>\", \"<client-id>\", \"<app-secret>\");\n * const keyResolver = new AzureKeyVaultEncryptionKeyResolver(credentials);\n * const client = new CosmosClient({\n * endpoint,\n * key,\n * clientEncryptionOptions: {\n * keyEncryptionKeyResolver: keyResolver,\n * },\n * });\n * const { database } = await client.databases.createIfNotExists({ id: \"<db id>\" });\n *\n * const paths = [\"/path1\", \"/path2\", \"/path3\"].map(\n * (path) =>\n * ({\n * path: path,\n * clientEncryptionKeyId: \"< cek - id >\",\n * encryptionType: EncryptionType.DETERMINISTIC,\n * encryptionAlgorithm: EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA256,\n * }) as ClientEncryptionIncludedPath,\n * );\n * const clientEncryptionPolicy: ClientEncryptionPolicy = {\n * includedPaths: paths,\n * policyFormatVersion: 2,\n * };\n * const containerDefinition = {\n * id: \"Test Container\",\n * partitionKey: {\n * paths: [\"/id\"],\n * },\n * clientEncryptionPolicy: clientEncryptionPolicy,\n * };\n * const { container } = await database.containers.createIfNotExists(containerDefinition);\n *\n * await container.initializeEncryption();\n * ```\n */\n public async initializeEncryption(): Promise<void> {\n if (!this.clientContext.enableEncryption) {\n throw new ErrorResponse(\"Encryption is not enabled for the client.\");\n } else {\n await withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const readResponse = await this.readInternal(diagnosticNode);\n if (!readResponse || !readResponse.resource) {\n throw new ErrorResponse(\n \"Failed to initialize encryption: The container's resource definition could not be retrieved.\",\n );\n }\n this._rid = readResponse.resource._rid;\n this.encryptionProcessor.containerRid = this._rid;\n const clientEncryptionPolicy = readResponse.resource.clientEncryptionPolicy;\n if (!clientEncryptionPolicy) return;\n const partitionKeyPaths = readResponse.resource.partitionKey.paths;\n const databaseResponse = await this.database.readInternal(diagnosticNode);\n if (!databaseResponse || !databaseResponse.resource) {\n throw new ErrorResponse(\n \"Failed to initialize encryption: The database's resource definition could not be retrieved.\",\n );\n }\n this.database._rid = databaseResponse.resource._rid;\n const encryptionSettingKey = this.database._rid + \"/\" + this._rid;\n\n await this.encryptionManager.encryptionSettingsCache.create(\n encryptionSettingKey,\n this._rid,\n partitionKeyPaths,\n clientEncryptionPolicy,\n );\n const clientEncryptionKeyIds = [\n ...new Set(\n clientEncryptionPolicy.includedPaths.map((item) => item.clientEncryptionKeyId),\n ),\n ];\n // fetch and set clientEncryptionKeys in the cache\n for (const clientEncryptionKeyId of clientEncryptionKeyIds) {\n const res = await this.database.readClientEncryptionKey(clientEncryptionKeyId);\n if (!res || !res.clientEncryptionKeyProperties) {\n throw new ErrorResponse(\n `Failed to initialize encryption: The client encryption key ${clientEncryptionKeyId} could not be retrieved.`,\n );\n }\n const encryptionKeyProperties = res.clientEncryptionKeyProperties;\n const key = this.database._rid + \"/\" + clientEncryptionKeyId;\n\n this.encryptionManager.clientEncryptionKeyPropertiesCache.set(\n key,\n encryptionKeyProperties,\n );\n }\n this.isEncryptionInitialized = true;\n }, this.clientContext);\n }\n }\n\n /**\n * @internal\n */\n async checkAndInitializeEncryption(): Promise<void> {\n if (!this.isEncryptionInitialized) {\n if (!this.encryptionInitializationPromise) {\n this.encryptionInitializationPromise = this.initializeEncryption();\n }\n await this.encryptionInitializationPromise;\n }\n }\n\n /**\n * @internal\n * This function handles the scenario where a container is deleted(say from different Client) and recreated with same Id but with different client encryption policy.\n * The idea is to have the container Rid cached and sent out as part of RequestOptions with Container Rid set in \"x-ms-cosmos-intended-collection-rid\" header.\n * So, when the container being referenced here gets recreated we would end up with a stale encryption settings and container Rid and this would result in BadRequest (and a substatus 1024).\n * This would allow us to refresh the encryption settings and Container Rid, on the premise that the container recreated could possibly be configured with a new encryption policy.\n */\n async throwIfRequestNeedsARetryPostPolicyRefresh(errorResponse: ErrorResponse): Promise<void> {\n const key = this.database._rid + \"/\" + this._rid;\n const encryptionSetting = this.encryptionManager.encryptionSettingsCache.get(key);\n if (!errorResponse?.code || !errorResponse?.headers?.[Constants.HttpHeaders.SubStatus]) {\n return;\n }\n const subStatusCode = errorResponse.headers[Constants.HttpHeaders.SubStatus];\n const isPartitionKeyMismatch = Number(subStatusCode) === SubStatusCodes.PartitionKeyMismatch;\n const isIncorrectContainerRidSubstatus =\n Number(subStatusCode) === SubStatusCodes.IncorrectContainerRidSubstatus;\n if (\n errorResponse.code === StatusCodes.BadRequest &&\n (isPartitionKeyMismatch || isIncorrectContainerRidSubstatus)\n ) {\n // This code verifies if the partitionKeyPaths are encrypted.\n // If the paths are not encrypted, it indicates that the application passed an incorrect partition key in the request.\n // This ensures the issue is not caused by a mismatched encrypted value due to a policy error,\n // avoiding unnecessary force-refreshing of encryption settings.\n if (isPartitionKeyMismatch && encryptionSetting.partitionKeyPaths.length) {\n let encryptionSettingsForProperty: EncryptionSettingForProperty = null;\n for (const path of encryptionSetting.partitionKeyPaths) {\n const partitionKeyPath = path.split(\"/\")[1];\n encryptionSettingsForProperty =\n encryptionSetting.getEncryptionSettingForProperty(partitionKeyPath);\n if (encryptionSettingsForProperty) {\n break;\n }\n }\n // wrong partition key passed as partition key is not encrypted.\n if (encryptionSettingsForProperty == null) {\n return;\n }\n }\n\n const currentContainerRid = encryptionSetting.containerRid;\n const forceRefresh = true;\n // fetch rid of newly created container\n const updatedContainerRid = (\n await this.encryptionProcessor.getEncryptionSetting(forceRefresh)\n ).containerRid;\n // if the container was not recreated, so policy has not changed, just return the original response\n if (currentContainerRid === updatedContainerRid) {\n return;\n }\n await this.initializeEncryption();\n throw new ErrorResponse(\n \"Operation has failed due to a possible mismatch in Client Encryption Policy configured on the container. Retrying may fix the issue. Please refer to https://aka.ms/CosmosClientEncryption for more details.\" +\n errorResponse.message,\n );\n }\n }\n}\n"]}
@@ -5,5 +5,7 @@ export class ContainerResponse extends ResourceResponse {
5
5
  super(resource, headers, statusCode, diagnostics);
6
6
  this.container = container;
7
7
  }
8
+ /** A reference to the {@link Container} that the returned {@link ContainerDefinition} corresponds to. */
9
+ container;
8
10
  }
9
11
  //# sourceMappingURL=ContainerResponse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerResponse.js","sourceRoot":"","sources":["../../../../src/client/Container/ContainerResponse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,+CAA+C;AAC/C,MAAM,OAAO,iBAAkB,SAAQ,gBAAgD;IACrF,YACE,QAAwC,EACxC,OAAsB,EACtB,UAAkB,EAClB,SAAoB,EACpB,WAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CAGF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { CosmosDiagnostics } from \"../../CosmosDiagnostics.js\";\nimport type { CosmosHeaders } from \"../../queryExecutionContext/index.js\";\nimport { ResourceResponse } from \"../../request/ResourceResponse.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { ContainerDefinition } from \"./ContainerDefinition.js\";\nimport type { Container } from \"./index.js\";\n\n/** Response object for Container operations */\nexport class ContainerResponse extends ResourceResponse<ContainerDefinition & Resource> {\n constructor(\n resource: ContainerDefinition & Resource,\n headers: CosmosHeaders,\n statusCode: number,\n container: Container,\n diagnostics: CosmosDiagnostics,\n ) {\n super(resource, headers, statusCode, diagnostics);\n this.container = container;\n }\n /** A reference to the {@link Container} that the returned {@link ContainerDefinition} corresponds to. */\n public readonly container: Container;\n}\n"]}
1
+ {"version":3,"file":"ContainerResponse.js","sourceRoot":"","sources":["../../../../src/client/Container/ContainerResponse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,+CAA+C;AAC/C,MAAM,OAAO,iBAAkB,SAAQ,gBAAgD;IACrF,YACE,QAAwC,EACxC,OAAsB,EACtB,UAAkB,EAClB,SAAoB,EACpB,WAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IACD,yGAAyG;IACzF,SAAS,CAAY;CACtC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { CosmosDiagnostics } from \"../../CosmosDiagnostics.js\";\nimport type { CosmosHeaders } from \"../../queryExecutionContext/index.js\";\nimport { ResourceResponse } from \"../../request/ResourceResponse.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { ContainerDefinition } from \"./ContainerDefinition.js\";\nimport type { Container } from \"./index.js\";\n\n/** Response object for Container operations */\nexport class ContainerResponse extends ResourceResponse<ContainerDefinition & Resource> {\n constructor(\n resource: ContainerDefinition & Resource,\n headers: CosmosHeaders,\n statusCode: number,\n container: Container,\n diagnostics: CosmosDiagnostics,\n ) {\n super(resource, headers, statusCode, diagnostics);\n this.container = container;\n }\n /** A reference to the {@link Container} that the returned {@link ContainerDefinition} corresponds to. */\n public readonly container: Container;\n}\n"]}
@@ -17,6 +17,9 @@ import { getEmptyCosmosDiagnostics, withDiagnostics } from "../../utils/diagnost
17
17
  * do this once on application start up.
18
18
  */
19
19
  export class Containers {
20
+ database;
21
+ clientContext;
22
+ encryptionManager;
20
23
  /**
21
24
  * @hidden
22
25
  * @param database - The parent {@link Database}.
@@ -78,7 +81,6 @@ export class Containers {
78
81
  * @hidden
79
82
  */
80
83
  async createInternal(diagnosticNode, body, options = {}) {
81
- var _a;
82
84
  const err = {};
83
85
  if (!isResourceValid(body, err)) {
84
86
  throw err;
@@ -122,7 +124,7 @@ export class Containers {
122
124
  }
123
125
  if (this.clientContext.enableEncryption && body.clientEncryptionPolicy) {
124
126
  body.clientEncryptionPolicy.policyFormatVersion =
125
- (_a = body.clientEncryptionPolicy.policyFormatVersion) !== null && _a !== void 0 ? _a : 1;
127
+ body.clientEncryptionPolicy.policyFormatVersion ?? 1;
126
128
  validateClientEncryptionPolicy(body.clientEncryptionPolicy, body.partitionKey);
127
129
  }
128
130
  const response = await this.clientContext.create({
@@ -1 +1 @@
1
- {"version":3,"file":"Containers.js","sourceRoot":"","sources":["../../../../src/client/Container/Containers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../../ClientContext.js\";\nimport {\n Constants,\n getIdFromLink,\n getPathFromLink,\n isResourceValid,\n ResourceType,\n StatusCodes,\n validateClientEncryptionPolicy,\n} from \"../../common/index.js\";\nimport { DEFAULT_PARTITION_KEY_PATH } from \"../../common/partitionKeys.js\";\nimport type { SqlQuerySpec } from \"../../queryExecutionContext/index.js\";\nimport { mergeHeaders } from \"../../queryExecutionContext/index.js\";\nimport { QueryIterator } from \"../../queryIterator.js\";\nimport { type FeedOptions, type RequestOptions } from \"../../request/index.js\";\nimport type { Database } from \"../Database/index.js\";\nimport type { Resource } from \"../Resource.js\";\nimport { Container } from \"./Container.js\";\nimport type { ContainerDefinition } from \"./ContainerDefinition.js\";\nimport type { ContainerRequest } from \"./ContainerRequest.js\";\nimport { ContainerResponse } from \"./ContainerResponse.js\";\nimport { validateOffer } from \"../../utils/offers.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport { getEmptyCosmosDiagnostics, withDiagnostics } from \"../../utils/diagnostics.js\";\nimport type { EncryptionManager } from \"../../encryption/EncryptionManager.js\";\n\n/**\n * Operations for creating new containers, and reading/querying all containers\n *\n * @see {@link Container} for reading, replacing, or deleting an existing container; use `.container(id)`.\n *\n * Note: all these operations make calls against a fixed budget.\n * You should design your system such that these calls scale sublinearly with your application.\n * For instance, do not call `containers.readAll()` before every single `item.read()` call, to ensure the container exists;\n * do this once on application start up.\n */\nexport class Containers {\n /**\n * @hidden\n * @param database - The parent {@link Database}.\n */\n constructor(\n public readonly database: Database,\n private readonly clientContext: ClientContext,\n private encryptionManager?: EncryptionManager,\n ) {}\n\n /**\n * Queries all containers.\n * @param query - Query configuration for the operation. See {@link SqlQuerySpec} for more info on how to configure a query.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @returns {@link QueryIterator} Allows you to return specific containers in an array or iterate over them one at a time.\n * @example Read all containers to array.\n * ```ts snippet:ContainersQueryAllContainers\n * import { CosmosClient, SqlQuerySpec } 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 querySpec: SqlQuerySpec = {\n * query: `SELECT * FROM root r WHERE r.id = @container`,\n * parameters: [{ name: \"@container\", value: \"Todo\" }],\n * };\n * const { resources: containerList } = await client\n * .database(\"<db id>\")\n * .containers.query(querySpec)\n * .fetchAll();\n * ```\n */\n public query(query: SqlQuerySpec, options?: FeedOptions): QueryIterator<any>;\n /**\n * Queries all containers.\n * @param query - Query configuration for the operation. See {@link SqlQuerySpec} for more info on how to configure a query.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @returns {@link QueryIterator} Allows you to return specific containers in an array or iterate over them one at a time.\n * @example Read all containers to array.\n * ```ts snippet:ContainersQueryAllContainers\n * import { CosmosClient, SqlQuerySpec } 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 querySpec: SqlQuerySpec = {\n * query: `SELECT * FROM root r WHERE r.id = @container`,\n * parameters: [{ name: \"@container\", value: \"Todo\" }],\n * };\n * const { resources: containerList } = await client\n * .database(\"<db id>\")\n * .containers.query(querySpec)\n * .fetchAll();\n * ```\n */\n public query<T>(query: SqlQuerySpec, options?: FeedOptions): QueryIterator<T>;\n public query<T>(query: SqlQuerySpec, options?: FeedOptions): QueryIterator<T> {\n const path = getPathFromLink(this.database.url, ResourceType.container);\n const id = getIdFromLink(this.database.url);\n\n return new QueryIterator(\n this.clientContext,\n query,\n options,\n (diagNode: DiagnosticNodeInternal, innerOptions) => {\n return this.clientContext.queryFeed<ContainerDefinition>({\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n resultFn: (result) => result.DocumentCollections,\n query,\n options: innerOptions,\n diagnosticNode: diagNode,\n });\n },\n );\n }\n\n /**\n * Creates a container.\n *\n * A container is a named logical container for items.\n *\n * A database may contain zero or more named containers and each container consists of\n * zero or more JSON items.\n *\n * Being schema-free, the items in a container do not need to share the same structure or fields.\n *\n *\n * Since containers are application resources, they can be authorized using either the\n * master key or resource keys.\n *\n * @param body - Represents the body of the container.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @example\n * ```ts snippet:CosmosClientDatabaseCreateContainer\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 container = client.database(\"<database id>\").containers.create({\n * id: \"<name here>\",\n * });\n * ```\n */\n public async create(\n body: ContainerRequest,\n options: RequestOptions = {},\n ): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.createInternal(diagnosticNode, body, options);\n }, this.clientContext);\n }\n\n /**\n * @hidden\n */\n public async createInternal(\n diagnosticNode: DiagnosticNodeInternal,\n body: ContainerRequest,\n options: RequestOptions = {},\n ): Promise<ContainerResponse> {\n const err = {};\n if (!isResourceValid(body, err)) {\n throw err;\n }\n const path = getPathFromLink(this.database.url, ResourceType.container);\n const id = getIdFromLink(this.database.url);\n\n validateOffer(body);\n\n if (body.maxThroughput) {\n const autoscaleParams: {\n maxThroughput: number;\n autoUpgradePolicy?: {\n throughputPolicy: {\n incrementPercent: number;\n };\n };\n } = {\n maxThroughput: body.maxThroughput,\n };\n if (body.autoUpgradePolicy) {\n autoscaleParams.autoUpgradePolicy = body.autoUpgradePolicy;\n }\n const autoscaleHeader = JSON.stringify(autoscaleParams);\n options.initialHeaders = Object.assign({}, options.initialHeaders, {\n [Constants.HttpHeaders.AutoscaleSettings]: autoscaleHeader,\n });\n delete body.maxThroughput;\n delete body.autoUpgradePolicy;\n }\n\n if (body.throughput) {\n options.initialHeaders = Object.assign({}, options.initialHeaders, {\n [Constants.HttpHeaders.OfferThroughput]: body.throughput,\n });\n delete body.throughput;\n }\n\n if (typeof body.partitionKey === \"string\") {\n if (!body.partitionKey.startsWith(\"/\")) {\n throw new Error(\"Partition key must start with '/'\");\n }\n body.partitionKey = {\n paths: [body.partitionKey],\n };\n }\n\n // If they don't specify a partition key, use the default path\n if (!body.partitionKey || !body.partitionKey.paths) {\n body.partitionKey = {\n paths: [DEFAULT_PARTITION_KEY_PATH],\n };\n }\n\n if (this.clientContext.enableEncryption && body.clientEncryptionPolicy) {\n body.clientEncryptionPolicy.policyFormatVersion =\n body.clientEncryptionPolicy.policyFormatVersion ?? 1;\n validateClientEncryptionPolicy(body.clientEncryptionPolicy, body.partitionKey);\n }\n const response = await this.clientContext.create<ContainerRequest, ContainerDefinition>({\n body,\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n diagnosticNode,\n options,\n });\n const ref = new Container(\n this.database,\n response.result.id,\n this.clientContext,\n this.encryptionManager,\n response.result._rid,\n );\n this.clientContext.partitionKeyDefinitionCache[ref.url] = response.result.partitionKey;\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n ref,\n getEmptyCosmosDiagnostics(),\n );\n }\n\n /**\n * Checks if a Container exists, and, if it doesn't, creates it.\n * This will make a read operation based on the id in the `body`, then if it is not found, a create operation.\n * You should confirm that the output matches the body you passed in for non-default properties (i.e. indexing policy/etc.)\n *\n * A container is a named logical container for items.\n *\n * A database may contain zero or more named containers and each container consists of\n * zero or more JSON items.\n *\n * Being schema-free, the items in a container do not need to share the same structure or fields.\n *\n *\n * Since containers are application resources, they can be authorized using either the\n * master key or resource keys.\n *\n * @param body - Represents the body of the container.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @example\n * ```ts snippet:ReadmeSampleCreateContainer\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 * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n * ```\n */\n public async createIfNotExists(\n body: ContainerRequest,\n options?: RequestOptions,\n ): Promise<ContainerResponse> {\n if (!body || body.id === null || body.id === undefined) {\n throw new Error(\"body parameter must be an object with an id property\");\n }\n /*\n 1. Attempt to read the Container (based on an assumption that most containers will already exist, so its faster)\n 2. If it fails with NotFound error, attempt to create the container. Else, return the read results.\n */\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n try {\n const readResponse = await this.database\n .container(body.id)\n .readInternal(diagnosticNode, options);\n return readResponse;\n } catch (err: any) {\n if (err.code === StatusCodes.NotFound) {\n const createResponse = await this.createInternal(diagnosticNode, body, options);\n // Must merge the headers to capture RU costskaty\n mergeHeaders(createResponse.headers, err.headers);\n return createResponse;\n } else {\n throw err;\n }\n }\n }, this.clientContext);\n }\n\n /**\n * Read all containers.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @returns {@link QueryIterator} Allows you to return all containers in an array or iterate over them one at a time.\n * @example Read all containers to array.\n * ```ts snippet:ContainersReadAllContainers\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 { resources: containerList } = await client\n * .database(\"<db id>\")\n * .containers.readAll()\n * .fetchAll();\n * ```\n */\n public readAll(options?: FeedOptions): QueryIterator<ContainerDefinition & Resource> {\n return this.query(undefined, options);\n }\n}\n"]}
1
+ {"version":3,"file":"Containers.js","sourceRoot":"","sources":["../../../../src/client/Container/Containers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../../ClientContext.js\";\nimport {\n Constants,\n getIdFromLink,\n getPathFromLink,\n isResourceValid,\n ResourceType,\n StatusCodes,\n validateClientEncryptionPolicy,\n} from \"../../common/index.js\";\nimport { DEFAULT_PARTITION_KEY_PATH } from \"../../common/partitionKeys.js\";\nimport type { SqlQuerySpec } from \"../../queryExecutionContext/index.js\";\nimport { mergeHeaders } from \"../../queryExecutionContext/index.js\";\nimport { QueryIterator } from \"../../queryIterator.js\";\nimport { type FeedOptions, type RequestOptions } from \"../../request/index.js\";\nimport type { Database } from \"../Database/index.js\";\nimport type { Resource } from \"../Resource.js\";\nimport { Container } from \"./Container.js\";\nimport type { ContainerDefinition } from \"./ContainerDefinition.js\";\nimport type { ContainerRequest } from \"./ContainerRequest.js\";\nimport { ContainerResponse } from \"./ContainerResponse.js\";\nimport { validateOffer } from \"../../utils/offers.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport { getEmptyCosmosDiagnostics, withDiagnostics } from \"../../utils/diagnostics.js\";\nimport type { EncryptionManager } from \"../../encryption/EncryptionManager.js\";\n\n/**\n * Operations for creating new containers, and reading/querying all containers\n *\n * @see {@link Container} for reading, replacing, or deleting an existing container; use `.container(id)`.\n *\n * Note: all these operations make calls against a fixed budget.\n * You should design your system such that these calls scale sublinearly with your application.\n * For instance, do not call `containers.readAll()` before every single `item.read()` call, to ensure the container exists;\n * do this once on application start up.\n */\nexport class Containers {\n /**\n * @hidden\n * @param database - The parent {@link Database}.\n */\n constructor(\n public readonly database: Database,\n private readonly clientContext: ClientContext,\n private encryptionManager?: EncryptionManager,\n ) {}\n\n /**\n * Queries all containers.\n * @param query - Query configuration for the operation. See {@link SqlQuerySpec} for more info on how to configure a query.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @returns {@link QueryIterator} Allows you to return specific containers in an array or iterate over them one at a time.\n * @example Read all containers to array.\n * ```ts snippet:ContainersQueryAllContainers\n * import { CosmosClient, SqlQuerySpec } 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 querySpec: SqlQuerySpec = {\n * query: `SELECT * FROM root r WHERE r.id = @container`,\n * parameters: [{ name: \"@container\", value: \"Todo\" }],\n * };\n * const { resources: containerList } = await client\n * .database(\"<db id>\")\n * .containers.query(querySpec)\n * .fetchAll();\n * ```\n */\n public query(query: SqlQuerySpec, options?: FeedOptions): QueryIterator<any>;\n /**\n * Queries all containers.\n * @param query - Query configuration for the operation. See {@link SqlQuerySpec} for more info on how to configure a query.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @returns {@link QueryIterator} Allows you to return specific containers in an array or iterate over them one at a time.\n * @example Read all containers to array.\n * ```ts snippet:ContainersQueryAllContainers\n * import { CosmosClient, SqlQuerySpec } 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 querySpec: SqlQuerySpec = {\n * query: `SELECT * FROM root r WHERE r.id = @container`,\n * parameters: [{ name: \"@container\", value: \"Todo\" }],\n * };\n * const { resources: containerList } = await client\n * .database(\"<db id>\")\n * .containers.query(querySpec)\n * .fetchAll();\n * ```\n */\n public query<T>(query: SqlQuerySpec, options?: FeedOptions): QueryIterator<T>;\n public query<T>(query: SqlQuerySpec, options?: FeedOptions): QueryIterator<T> {\n const path = getPathFromLink(this.database.url, ResourceType.container);\n const id = getIdFromLink(this.database.url);\n\n return new QueryIterator(\n this.clientContext,\n query,\n options,\n (diagNode: DiagnosticNodeInternal, innerOptions) => {\n return this.clientContext.queryFeed<ContainerDefinition>({\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n resultFn: (result) => result.DocumentCollections,\n query,\n options: innerOptions,\n diagnosticNode: diagNode,\n });\n },\n );\n }\n\n /**\n * Creates a container.\n *\n * A container is a named logical container for items.\n *\n * A database may contain zero or more named containers and each container consists of\n * zero or more JSON items.\n *\n * Being schema-free, the items in a container do not need to share the same structure or fields.\n *\n *\n * Since containers are application resources, they can be authorized using either the\n * master key or resource keys.\n *\n * @param body - Represents the body of the container.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @example\n * ```ts snippet:CosmosClientDatabaseCreateContainer\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 container = client.database(\"<database id>\").containers.create({\n * id: \"<name here>\",\n * });\n * ```\n */\n public async create(\n body: ContainerRequest,\n options: RequestOptions = {},\n ): Promise<ContainerResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.createInternal(diagnosticNode, body, options);\n }, this.clientContext);\n }\n\n /**\n * @hidden\n */\n public async createInternal(\n diagnosticNode: DiagnosticNodeInternal,\n body: ContainerRequest,\n options: RequestOptions = {},\n ): Promise<ContainerResponse> {\n const err = {};\n if (!isResourceValid(body, err)) {\n throw err;\n }\n const path = getPathFromLink(this.database.url, ResourceType.container);\n const id = getIdFromLink(this.database.url);\n\n validateOffer(body);\n\n if (body.maxThroughput) {\n const autoscaleParams: {\n maxThroughput: number;\n autoUpgradePolicy?: {\n throughputPolicy: {\n incrementPercent: number;\n };\n };\n } = {\n maxThroughput: body.maxThroughput,\n };\n if (body.autoUpgradePolicy) {\n autoscaleParams.autoUpgradePolicy = body.autoUpgradePolicy;\n }\n const autoscaleHeader = JSON.stringify(autoscaleParams);\n options.initialHeaders = Object.assign({}, options.initialHeaders, {\n [Constants.HttpHeaders.AutoscaleSettings]: autoscaleHeader,\n });\n delete body.maxThroughput;\n delete body.autoUpgradePolicy;\n }\n\n if (body.throughput) {\n options.initialHeaders = Object.assign({}, options.initialHeaders, {\n [Constants.HttpHeaders.OfferThroughput]: body.throughput,\n });\n delete body.throughput;\n }\n\n if (typeof body.partitionKey === \"string\") {\n if (!body.partitionKey.startsWith(\"/\")) {\n throw new Error(\"Partition key must start with '/'\");\n }\n body.partitionKey = {\n paths: [body.partitionKey],\n };\n }\n\n // If they don't specify a partition key, use the default path\n if (!body.partitionKey || !body.partitionKey.paths) {\n body.partitionKey = {\n paths: [DEFAULT_PARTITION_KEY_PATH],\n };\n }\n\n if (this.clientContext.enableEncryption && body.clientEncryptionPolicy) {\n body.clientEncryptionPolicy.policyFormatVersion =\n body.clientEncryptionPolicy.policyFormatVersion ?? 1;\n validateClientEncryptionPolicy(body.clientEncryptionPolicy, body.partitionKey);\n }\n const response = await this.clientContext.create<ContainerRequest, ContainerDefinition>({\n body,\n path,\n resourceType: ResourceType.container,\n resourceId: id,\n diagnosticNode,\n options,\n });\n const ref = new Container(\n this.database,\n response.result.id,\n this.clientContext,\n this.encryptionManager,\n response.result._rid,\n );\n this.clientContext.partitionKeyDefinitionCache[ref.url] = response.result.partitionKey;\n return new ContainerResponse(\n response.result,\n response.headers,\n response.code,\n ref,\n getEmptyCosmosDiagnostics(),\n );\n }\n\n /**\n * Checks if a Container exists, and, if it doesn't, creates it.\n * This will make a read operation based on the id in the `body`, then if it is not found, a create operation.\n * You should confirm that the output matches the body you passed in for non-default properties (i.e. indexing policy/etc.)\n *\n * A container is a named logical container for items.\n *\n * A database may contain zero or more named containers and each container consists of\n * zero or more JSON items.\n *\n * Being schema-free, the items in a container do not need to share the same structure or fields.\n *\n *\n * Since containers are application resources, they can be authorized using either the\n * master key or resource keys.\n *\n * @param body - Represents the body of the container.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @example\n * ```ts snippet:ReadmeSampleCreateContainer\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 * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n * ```\n */\n public async createIfNotExists(\n body: ContainerRequest,\n options?: RequestOptions,\n ): Promise<ContainerResponse> {\n if (!body || body.id === null || body.id === undefined) {\n throw new Error(\"body parameter must be an object with an id property\");\n }\n /*\n 1. Attempt to read the Container (based on an assumption that most containers will already exist, so its faster)\n 2. If it fails with NotFound error, attempt to create the container. Else, return the read results.\n */\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n try {\n const readResponse = await this.database\n .container(body.id)\n .readInternal(diagnosticNode, options);\n return readResponse;\n } catch (err: any) {\n if (err.code === StatusCodes.NotFound) {\n const createResponse = await this.createInternal(diagnosticNode, body, options);\n // Must merge the headers to capture RU costskaty\n mergeHeaders(createResponse.headers, err.headers);\n return createResponse;\n } else {\n throw err;\n }\n }\n }, this.clientContext);\n }\n\n /**\n * Read all containers.\n * @param options - Use to set options like response page size, continuation tokens, etc.\n * @returns {@link QueryIterator} Allows you to return all containers in an array or iterate over them one at a time.\n * @example Read all containers to array.\n * ```ts snippet:ContainersReadAllContainers\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 { resources: containerList } = await client\n * .database(\"<db id>\")\n * .containers.readAll()\n * .fetchAll();\n * ```\n */\n public readAll(options?: FeedOptions): QueryIterator<ContainerDefinition & Resource> {\n return this.query(undefined, options);\n }\n}\n"]}
@@ -18,6 +18,35 @@ import { ClientEncryptionKeyResponse, EncryptionAlgorithm, KeyEncryptionAlgorith
18
18
  * do this once on application start up.
19
19
  */
20
20
  export class Database {
21
+ client;
22
+ id;
23
+ clientContext;
24
+ encryptionManager;
25
+ /**
26
+ * Used for creating new containers, or querying/reading all containers.
27
+ *
28
+ * Use `.database(id)` to read, replace, or delete a specific, existing {@link Database} by id.
29
+ *
30
+ * @example Create a new container
31
+ * ```ts snippet:DatabaseCreateContainer
32
+ * import { CosmosClient } from "@azure/cosmos";
33
+ *
34
+ * const endpoint = "https://your-account.documents.azure.com";
35
+ * const key = "<database account masterkey>";
36
+ * const client = new CosmosClient({ endpoint, key });
37
+ *
38
+ * const { body: containerDefinition, container } = await client
39
+ * .database("<db id>")
40
+ * .containers.create({ id: "<container id>" });
41
+ * ```
42
+ */
43
+ containers;
44
+ /**
45
+ * Used for creating new users, or querying/reading all users.
46
+ *
47
+ * Use `.user(id)` to read, replace, or delete a specific, existing {@link User} by id.
48
+ */
49
+ users;
21
50
  /**
22
51
  * Returns a reference URL to the resource. Used for linking in Permissions.
23
52
  * @example
@@ -36,6 +65,10 @@ export class Database {
36
65
  get url() {
37
66
  return createDatabaseUri(this.id);
38
67
  }
68
+ /**
69
+ * @internal
70
+ */
71
+ _rid;
39
72
  /** Returns a new {@link Database} instance.
40
73
  *
41
74
  * Note: the intention is to get this object from {@link CosmosClient} via `client.database(id)`, not to instantiate it yourself.
@@ -1 +1 @@
1
- {"version":3,"file":"Database.js","sourceRoot":"","sources":["../../../../src/client/Database/Database.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAuB,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAOhE,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAQ;IA2BnB;;;;;;;;;;;;;;OAcG;IACH,IAAW,GAAG;QACZ,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAOD;;;;OAIG;IACH,YACkB,MAAoB,EACpB,EAAU,EAClB,aAA4B,EAC5B,iBAAqC,EAC7C,IAAa;QAJG,WAAM,GAAN,MAAM,CAAc;QACpB,OAAE,GAAF,EAAE,CAAQ;QAClB,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAoB;QAG7C,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,SAAS,CAAC,EAAU;QACzB,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,IAAI,CAAC,EAAU;QACpB,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,OAAO,eAAe,CAAC,KAAK,EAAE,cAAsC,EAAE,EAAE;YACtE,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CACvB,cAAsC,EACtC,OAAwB;QAExB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAqB;YACjE,IAAI;YACJ,YAAY,EAAE,YAAY,CAAC,QAAQ;YACnC,UAAU,EAAE,EAAE;YACd,OAAO;YACP,cAAc;SACf,CAAC,CAAC;QACH,OAAO,IAAI,gBAAgB,CACzB,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,IAAI,EACJ,yBAAyB,EAAE,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,MAAM,CAAC,OAAwB;QAC1C,OAAO,eAAe,CAAC,KAAK,EAAE,cAAsC,EAAE,EAAE;YACtE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAqB;gBACnE,IAAI;gBACJ,YAAY,EAAE,YAAY,CAAC,QAAQ;gBACnC,UAAU,EAAE,EAAE;gBACd,OAAO;gBACP,cAAc;aACf,CAAC,CAAC;YACH,OAAO,IAAI,gBAAgB,CACzB,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,IAAI,EACJ,yBAAyB,EAAE,CAC5B,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,SAAS,CAAC,UAA0B,EAAE;QACjD,OAAO,eAAe,CAAC,KAAK,EAAE,cAAsC,EAAE,EAAE;YACtE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,uBAAuB,CACxD,KAAK,EAAE,IAA4B,EAAE,EAAE;gBACrC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,EACD,cAAc,EACd,kBAAkB,CAAC,cAAc,CAClC,CAAC;YAEF,MAAM,IAAI,GAAG,SAAS,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;YAEzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAA+B;gBAChF,IAAI;gBACJ,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,YAAY,CAAC,KAAK;gBAChC,KAAK,EAAE,6CAA6C,GAAG,GAAG;gBAC1D,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM;gBACnC,OAAO;gBACP,cAAc;aACf,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC;gBACnE,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,IAAI,aAAa,CACtB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAClB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,yBAAyB,EAAE,EAC3B,KAAK,CACN,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACI,KAAK,CAAC,yBAAyB,CACpC,qBAA6B,EAC7B,mBAAwC,EACxC,eAA0C;QAE1C,IAAI,qBAAqB,IAAI,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,mBAAmB,KAAK,mBAAmB,CAAC,4BAA4B,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,iCAAiC,mBAAmB,WAAW,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,eAAe,CAAC,SAAS,KAAK,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,+BAA+B,eAAe,CAAC,SAAS,WAAW,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GACpB,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CACtD,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,KAAK,EACrB,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAClD,CAAC;QAEJ,MAAM,0BAA0B,GAC9B,MAAM,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,WAAW,CACtE,qBAAqB,EACrB,gBAAgB,CACjB,CAAC;QAEJ,MAAM,wBAAwB,GAAG,0BAA0B,CAAC,cAAc,CAAC;QAE3E,MAAM,IAAI,GAA+B;YACvC,EAAE,EAAE,qBAAqB;YACzB,mBAAmB,EAAE,mBAAmB;YACxC,eAAe,EAAE,eAAe;YAChC,wBAAwB,EAAE,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACtE,CAAC;QAEF,OAAO,eAAe,CAAC,KAAK,EAAE,cAAsC,EAAE,EAAE;YACtE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAA6B;gBAC3E,IAAI;gBACJ,IAAI,EAAE,IAAI;gBACV,YAAY,EAAE,YAAY,CAAC,mBAAmB;gBAC9C,UAAU,EAAE,UAAU;gBACtB,cAAc;aACf,CAAC,CAAC;YACH,MAAM,GAAG,GAAkC;gBACzC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACtB,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB;gBACxD,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;gBAC3B,wBAAwB,EAAE,IAAI,UAAU,CACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAChE;gBACD,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;aAC3D,CAAC;YACF,OAAO,IAAI,2BAA2B,CACpC,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,GAAG,EACH,yBAAyB,EAAE,CAC5B,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,CAAC,uBAAuB,CAClC,qBAA6B;QAE7B,IAAI,qBAAqB,IAAI,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,aAAa,CAAC,2CAA2C,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,eAAe,CAAC,KAAK,EAAE,cAAsC,EAAE,EAAE;YACtE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gBACjE,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;oBACpD,MAAM,IAAI,aAAa,CAAC,kCAAkC,qBAAqB,EAAE,CAAC,CAAC;gBACrF,CAAC;gBACD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAA6B;gBACzE,IAAI,EAAE,IAAI,GAAG,IAAI,qBAAqB,EAAE;gBACxC,YAAY,EAAE,YAAY,CAAC,mBAAmB;gBAC9C,UAAU,EAAE,UAAU,GAAG,IAAI,YAAY,CAAC,mBAAmB,IAAI,qBAAqB,EAAE;gBACxF,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE;gBACnC,cAAc;aACf,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,IAAI,aAAa,CACrB,+CAA+C,qBAAqB,EAAE,CACvE,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,GAAkC;gBACzC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACtB,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB;gBACxD,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;gBAC3B,wBAAwB,EAAE,IAAI,UAAU,CACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAChE;gBACD,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;aAC3D,CAAC;YACF,OAAO,IAAI,2BAA2B,CACpC,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,GAAG,EACH,yBAAyB,EAAE,CAC5B,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACI,KAAK,CAAC,yBAAyB,CACpC,qBAA6B,EAC7B,kBAA6C;QAE7C,IAAI,qBAAqB,IAAI,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,aAAa,CAAC,2CAA2C,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,aAAa,CAAC,2CAA2C,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,kBAAkB,CAAC,SAAS,KAAK,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YACrE,MAAM,IAAI,aAAa,CACrB,+BAA+B,kBAAkB,CAAC,SAAS,WAAW,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,aAAa,CACrB,sFAAsF,CACvF,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,CAAC;YAC/C,MAAM,IAAI,aAAa,CACrB,+CAA+C,qBAAqB,EAAE,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,6BAA6B,GAAG,GAAG,CAAC,6BAA6B,CAAC;QAEtE,IAAI,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CAC7E,6BAA6B,CAAC,yBAAyB,CAAC,IAAI,EAC5D,6BAA6B,CAAC,yBAAyB,CAAC,KAAK,EAC7D,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAClD,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAC7D,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,wBAAwB,CAAC,CACpE,CAAC;QAEF,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CACzE,kBAAkB,CAAC,IAAI,EACvB,kBAAkB,CAAC,KAAK,EACxB,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAClD,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC5E,6BAA6B,GAAG;YAC9B,EAAE,EAAE,qBAAqB;YACzB,mBAAmB,EAAE,6BAA6B,CAAC,mBAAmB;YACtE,IAAI,EAAE,6BAA6B,CAAC,IAAI;YACxC,wBAAwB,EAAE,YAAY;YACtC,yBAAyB,EAAE,kBAAkB;SAC9C,CAAC;QACF,MAAM,IAAI,GAA+B;YACvC,EAAE,EAAE,qBAAqB;YACzB,mBAAmB,EAAE,6BAA6B,CAAC,mBAAmB;YACtE,eAAe,EAAE,kBAAkB;YACnC,wBAAwB,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;SAC1D,CAAC;QACF,OAAO,eAAe,CAAC,KAAK,EAAE,cAAsC,EAAE,EAAE;YACtE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG;gBACd,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,6BAA6B,CAAC,IAAI,EAAE;aACpF,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAA6B;gBAC5E,IAAI;gBACJ,IAAI,EAAE,IAAI,GAAG,IAAI,qBAAqB,EAAE;gBACxC,YAAY,EAAE,YAAY,CAAC,mBAAmB;gBAC9C,UAAU,EAAE,UAAU,GAAG,IAAI,YAAY,CAAC,mBAAmB,IAAI,qBAAqB,EAAE;gBACxF,OAAO;gBACP,cAAc;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,IAAI,aAAa,CACrB,kDAAkD,qBAAqB,EAAE,CAC1E,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAkC;gBACzC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACtB,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB;gBACxD,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;gBAC3B,wBAAwB,EAAE,IAAI,UAAU,CACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAChE;gBACD,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;aAC3D,CAAC;YACF,OAAO,IAAI,2BAA2B,CACpC,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,EACb,GAAG,EACH,yBAAyB,EAAE,CAC5B,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../../ClientContext.js\";\nimport {\n createDatabaseUri,\n getIdFromLink,\n getPathFromLink,\n ResourceType,\n} from \"../../common/index.js\";\nimport type { CosmosClient } from \"../../CosmosClient.js\";\nimport { ErrorResponse, type RequestOptions } from \"../../request/index.js\";\nimport { Container, Containers } from \"../Container/index.js\";\nimport { User, Users } from \"../User/index.js\";\nimport type { DatabaseDefinition } from \"./DatabaseDefinition.js\";\nimport { DatabaseResponse } from \"./DatabaseResponse.js\";\nimport type { OfferDefinition } from \"../Offer/index.js\";\nimport { OfferResponse, Offer } from \"../Offer/index.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport {\n getEmptyCosmosDiagnostics,\n withDiagnostics,\n withMetadataDiagnostics,\n} from \"../../utils/diagnostics.js\";\nimport { MetadataLookUpType } from \"../../CosmosDiagnostics.js\";\nimport type {\n ClientEncryptionKeyRequest,\n KeyEncryptionKey,\n EncryptionKeyWrapMetadata,\n ClientEncryptionKeyProperties,\n} from \"../../encryption/index.js\";\nimport {\n ClientEncryptionKeyResponse,\n EncryptionAlgorithm,\n KeyEncryptionAlgorithm,\n} from \"../../encryption/index.js\";\nimport type { EncryptionManager } from \"../../encryption/EncryptionManager.js\";\n/**\n * Operations for reading or deleting an existing database.\n *\n * @see {@link Databases} for creating new databases, and reading/querying all databases; use `client.databases`.\n *\n * Note: all these operations make calls against a fixed budget.\n * You should design your system such that these calls scale sublinearly with your application.\n * For instance, do not call `database.read()` before every single `item.read()` call, to ensure the database exists;\n * do this once on application start up.\n */\nexport class Database {\n /**\n * Used for creating new containers, or querying/reading all containers.\n *\n * Use `.database(id)` to read, replace, or delete a specific, existing {@link Database} by id.\n *\n * @example Create a new container\n * ```ts snippet:DatabaseCreateContainer\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 { body: containerDefinition, container } = await client\n * .database(\"<db id>\")\n * .containers.create({ id: \"<container id>\" });\n * ```\n */\n public readonly containers: Containers;\n /**\n * Used for creating new users, or querying/reading all users.\n *\n * Use `.user(id)` to read, replace, or delete a specific, existing {@link User} by id.\n */\n public readonly users: Users;\n\n /**\n * Returns a reference URL to the resource. Used for linking in Permissions.\n * @example\n * ```ts snippet:DatabaseGetUrl\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 url = database.url;\n * ```\n */\n public get url(): string {\n return createDatabaseUri(this.id);\n }\n\n /**\n * @internal\n */\n public _rid: string;\n\n /** Returns a new {@link Database} instance.\n *\n * Note: the intention is to get this object from {@link CosmosClient} via `client.database(id)`, not to instantiate it yourself.\n * @hidden\n */\n constructor(\n public readonly client: CosmosClient,\n public readonly id: string,\n private clientContext: ClientContext,\n private encryptionManager?: EncryptionManager,\n _rid?: string,\n ) {\n this.containers = new Containers(this, this.clientContext, this.encryptionManager);\n this.users = new Users(this, this.clientContext);\n this._rid = _rid;\n }\n\n /**\n * Used to read, replace, or delete a specific, existing {@link Database} by id.\n *\n * Use `.containers` creating new containers, or querying/reading all containers.\n *\n * @example Delete a container\n * ```ts snippet:DatabaseDeleteContainer\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 * await client.database(\"<db id>\").container(\"<container id>\").delete();\n * ```\n */\n public container(id: string): Container {\n return new Container(this, id, this.clientContext, this.encryptionManager);\n }\n\n /**\n * Used to read, replace, or delete a specific, existing {@link User} by id.\n *\n * Use `.users` for creating new users, or querying/reading all users.\n * @example Delete a user\n * ```ts snippet:DatabaseDeleteUser\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 * await client.database(\"<db id>\").user(\"<user id>\").delete();\n * ```\n */\n public user(id: string): User {\n return new User(this, id, this.clientContext);\n }\n\n /** Read the definition of the given Database.\n * @example\n * ```ts snippet:DatabaseRead\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 { resource: database } = await client.database(\"<db id>\").read();\n * ```\n */\n public async read(options?: RequestOptions): Promise<DatabaseResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.readInternal(diagnosticNode, options);\n }, this.clientContext);\n }\n\n /**\n * @hidden\n */\n public async readInternal(\n diagnosticNode: DiagnosticNodeInternal,\n options?: RequestOptions,\n ): Promise<DatabaseResponse> {\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n const response = await this.clientContext.read<DatabaseDefinition>({\n path,\n resourceType: ResourceType.database,\n resourceId: id,\n options,\n diagnosticNode,\n });\n return new DatabaseResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }\n\n /** Delete the given Database.\n * @example\n * ```ts snippet:CosmosClientDatabaseDelete\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 * await client.database(\"<id here>\").delete();\n * ```\n */\n public async delete(options?: RequestOptions): Promise<DatabaseResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n\n const response = await this.clientContext.delete<DatabaseDefinition>({\n path,\n resourceType: ResourceType.database,\n resourceId: id,\n options,\n diagnosticNode,\n });\n return new DatabaseResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Gets offer on database. If none exists, returns an OfferResponse with undefined.\n * @example Read the offer on the database\n * ```ts snippet:DatabaseReadOffer\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 { resource: offer } = await client.database(\"<db id>\").readOffer();\n * ```\n */\n public async readOffer(options: RequestOptions = {}): Promise<OfferResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const { resource: record } = await withMetadataDiagnostics(\n async (node: DiagnosticNodeInternal) => {\n return this.readInternal(node);\n },\n diagnosticNode,\n MetadataLookUpType.DatabaseLookUp,\n );\n\n const path = \"/offers\";\n const url = record._self;\n\n const response = await this.clientContext.queryFeed<OfferDefinition & Resource[]>({\n path,\n resourceId: \"\",\n resourceType: ResourceType.offer,\n query: `SELECT * from root where root.resource = \"${url}\"`,\n resultFn: (result) => result.Offers,\n options,\n diagnosticNode,\n });\n const offer = response.result[0]\n ? new Offer(this.client, response.result[0].id, this.clientContext)\n : undefined;\n return new OfferResponse(\n response.result[0],\n response.headers,\n response.code,\n getEmptyCosmosDiagnostics(),\n offer,\n );\n }, this.clientContext);\n }\n\n /**\n * Create Encryption key for database account\n * @example\n * ```ts snippet:DatabaseCreateClientEncryptionKey\n * import { ClientSecretCredential } from \"@azure/identity\";\n * import {\n * AzureKeyVaultEncryptionKeyResolver,\n * CosmosClient,\n * EncryptionKeyWrapMetadata,\n * EncryptionKeyResolverName,\n * KeyEncryptionAlgorithm,\n * EncryptionAlgorithm,\n * } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const credentials = new ClientSecretCredential(\"<tenant-id>\", \"<client-id>\", \"<app-secret>\");\n * const keyResolver = new AzureKeyVaultEncryptionKeyResolver(credentials);\n * const client = new CosmosClient({\n * endpoint,\n * key,\n * clientEncryptionOptions: {\n * keyEncryptionKeyResolver: keyResolver,\n * },\n * });\n * const { database } = await client.databases.createIfNotExists({ id: \"<db id>\" });\n * const metadata: EncryptionKeyWrapMetadata = {\n * type: EncryptionKeyResolverName.AzureKeyVault,\n * name: \"<key-name>\",\n * value: \"<key-vault-url>\",\n * algorithm: KeyEncryptionAlgorithm.RSA_OAEP,\n * };\n *\n * await database.createClientEncryptionKey(\n * \"<cek-id>\",\n * EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA256,\n * metadata,\n * );\n * ```\n */\n public async createClientEncryptionKey(\n clientEncryptionKeyId: string,\n encryptionAlgorithm: EncryptionAlgorithm,\n keyWrapMetadata: EncryptionKeyWrapMetadata,\n ): Promise<ClientEncryptionKeyResponse> {\n if (clientEncryptionKeyId == null || !clientEncryptionKeyId.trim()) {\n throw new Error(\"encryption key id cannot be null or empty\");\n }\n if (encryptionAlgorithm !== EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA256) {\n throw new Error(`Invalid encryption algorithm '${encryptionAlgorithm}' passed.`);\n }\n if (!keyWrapMetadata) {\n throw new Error(\"encryptionKeyWrapMetadata cannot be null.\");\n }\n if (keyWrapMetadata.algorithm !== KeyEncryptionAlgorithm.RSA_OAEP) {\n throw new Error(`Invalid key wrap algorithm '${keyWrapMetadata.algorithm}' passed.`);\n }\n if (!this.clientContext.enableEncryption) {\n throw new Error(\n \"Creating a client encryption key requires the use of an encryption-enabled client.\",\n );\n }\n\n const keyEncryptionKey: KeyEncryptionKey =\n this.encryptionManager.keyEncryptionKeyCache.getOrCreate(\n keyWrapMetadata.name,\n keyWrapMetadata.value,\n this.encryptionManager.encryptionKeyStoreProvider,\n );\n\n const protectedDataEncryptionKey =\n await this.encryptionManager.protectedDataEncryptionKeyCache.getOrCreate(\n clientEncryptionKeyId,\n keyEncryptionKey,\n );\n\n const wrappedDataEncryptionKey = protectedDataEncryptionKey.encryptedValue;\n\n const body: ClientEncryptionKeyRequest = {\n id: clientEncryptionKeyId,\n encryptionAlgorithm: encryptionAlgorithm,\n keyWrapMetadata: keyWrapMetadata,\n wrappedDataEncryptionKey: wrappedDataEncryptionKey.toString(\"base64\"),\n };\n\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url, ResourceType.clientencryptionkey);\n const databaseId = getIdFromLink(this.url);\n const response = await this.clientContext.create<ClientEncryptionKeyRequest>({\n body,\n path: path,\n resourceType: ResourceType.clientencryptionkey,\n resourceId: databaseId,\n diagnosticNode,\n });\n const ref: ClientEncryptionKeyProperties = {\n id: response.result.id,\n encryptionAlgorithm: response.result.encryptionAlgorithm,\n etag: response.result._etag,\n wrappedDataEncryptionKey: new Uint8Array(\n Buffer.from(response.result.wrappedDataEncryptionKey, \"base64\"),\n ),\n encryptionKeyWrapMetadata: response.result.keyWrapMetadata,\n };\n return new ClientEncryptionKeyResponse(\n response.result,\n response.headers,\n response.code,\n ref,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Read Encryption key for database account\n * @example\n * ```ts snippet:DatabaseReadClientEncryptionKey\n * import { ClientSecretCredential } from \"@azure/identity\";\n * import { AzureKeyVaultEncryptionKeyResolver, CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const credentials = new ClientSecretCredential(\"<tenant-id>\", \"<client-id>\", \"<app-secret>\");\n * const keyResolver = new AzureKeyVaultEncryptionKeyResolver(credentials);\n * const client = new CosmosClient({\n * endpoint,\n * key,\n * clientEncryptionOptions: {\n * keyEncryptionKeyResolver: keyResolver,\n * },\n * });\n * const { database } = await client.databases.createIfNotExists({ id: \"<db id>\" });\n *\n * const { resource: clientEncryptionKey } = await database.readClientEncryptionKey(\"<cek-id>\");\n * ```\n */\n public async readClientEncryptionKey(\n clientEncryptionKeyId: string,\n ): Promise<ClientEncryptionKeyResponse> {\n if (clientEncryptionKeyId == null || !clientEncryptionKeyId.trim()) {\n throw new ErrorResponse(\"encryption key id cannot be null or empty\");\n }\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n if (!this._rid) {\n const databaseResponse = await this.readInternal(diagnosticNode);\n if (!databaseResponse || !databaseResponse.resource) {\n throw new ErrorResponse(`Error reading database with id ${clientEncryptionKeyId}`);\n }\n this._rid = databaseResponse.resource._rid;\n }\n const path = getPathFromLink(this.url, ResourceType.clientencryptionkey);\n const resourceid = getIdFromLink(this.url);\n const response = await this.clientContext.read<ClientEncryptionKeyRequest>({\n path: path + `/${clientEncryptionKeyId}`,\n resourceType: ResourceType.clientencryptionkey,\n resourceId: resourceid + `/${ResourceType.clientencryptionkey}/${clientEncryptionKeyId}`,\n options: { databaseRid: this._rid },\n diagnosticNode,\n });\n if (!response || !response.result) {\n throw new ErrorResponse(\n `Error reading client encryption key with id ${clientEncryptionKeyId}`,\n );\n }\n const ref: ClientEncryptionKeyProperties = {\n id: response.result.id,\n encryptionAlgorithm: response.result.encryptionAlgorithm,\n etag: response.result._etag,\n wrappedDataEncryptionKey: new Uint8Array(\n Buffer.from(response.result.wrappedDataEncryptionKey, \"base64\"),\n ),\n encryptionKeyWrapMetadata: response.result.keyWrapMetadata,\n };\n return new ClientEncryptionKeyResponse(\n response.result,\n response.headers,\n response.code,\n ref,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n /**\n * rewraps a client encryption key with new key encryption key\n * @param id - client encryption key id\n * @param newKeyWrapMetadata - new encryption key wrap metadata\n * @returns rewrapped client encryption key with new customer managed key\n * @example\n * ```ts snippet:DatabaseRewrapClientEncryptionKey\n * import { ClientSecretCredential } from \"@azure/identity\";\n * import {\n * AzureKeyVaultEncryptionKeyResolver,\n * CosmosClient,\n * EncryptionKeyWrapMetadata,\n * EncryptionKeyResolverName,\n * KeyEncryptionAlgorithm,\n * } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const credentials = new ClientSecretCredential(\"<tenant-id>\", \"<client-id>\", \"<app-secret>\");\n * const keyResolver = new AzureKeyVaultEncryptionKeyResolver(credentials);\n * const client = new CosmosClient({\n * endpoint,\n * key,\n * clientEncryptionOptions: {\n * keyEncryptionKeyResolver: keyResolver,\n * },\n * });\n * const { database } = await client.databases.createIfNotExists({ id: \"<db id>\" });\n * const newMetadata: EncryptionKeyWrapMetadata = {\n * type: EncryptionKeyResolverName.AzureKeyVault,\n * name: \"<key-name>\",\n * value: \"<key-vault-url>\",\n * algorithm: KeyEncryptionAlgorithm.RSA_OAEP,\n * };\n *\n * await database.rewrapClientEncryptionKey(\"<new-cek-id>\", newMetadata);\n * ```\n */\n public async rewrapClientEncryptionKey(\n clientEncryptionKeyId: string,\n newKeyWrapMetadata: EncryptionKeyWrapMetadata,\n ): Promise<ClientEncryptionKeyResponse> {\n if (clientEncryptionKeyId == null || !clientEncryptionKeyId.trim()) {\n throw new ErrorResponse(\"encryption key id cannot be null or empty\");\n }\n if (!newKeyWrapMetadata) {\n throw new ErrorResponse(\"encryptionKeyWrapMetadata cannot be null.\");\n }\n if (newKeyWrapMetadata.algorithm !== KeyEncryptionAlgorithm.RSA_OAEP) {\n throw new ErrorResponse(\n `Invalid key wrap algorithm '${newKeyWrapMetadata.algorithm}' passed.`,\n );\n }\n if (!this.clientContext.enableEncryption) {\n throw new ErrorResponse(\n \"Rewrapping a client encryption key requires the use of an encryption-enabled client.\",\n );\n }\n\n const res = await this.readClientEncryptionKey(clientEncryptionKeyId);\n if (!res || !res.clientEncryptionKeyProperties) {\n throw new ErrorResponse(\n `Error reading client encryption key with id ${clientEncryptionKeyId}`,\n );\n }\n let clientEncryptionKeyProperties = res.clientEncryptionKeyProperties;\n\n let keyEncryptionKey = this.encryptionManager.keyEncryptionKeyCache.getOrCreate(\n clientEncryptionKeyProperties.encryptionKeyWrapMetadata.name,\n clientEncryptionKeyProperties.encryptionKeyWrapMetadata.value,\n this.encryptionManager.encryptionKeyStoreProvider,\n );\n const unwrappedKey = await keyEncryptionKey.unwrapEncryptionKey(\n Buffer.from(clientEncryptionKeyProperties.wrappedDataEncryptionKey),\n );\n\n keyEncryptionKey = this.encryptionManager.keyEncryptionKeyCache.getOrCreate(\n newKeyWrapMetadata.name,\n newKeyWrapMetadata.value,\n this.encryptionManager.encryptionKeyStoreProvider,\n );\n const rewrappedKey = await keyEncryptionKey.wrapEncryptionKey(unwrappedKey);\n clientEncryptionKeyProperties = {\n id: clientEncryptionKeyId,\n encryptionAlgorithm: clientEncryptionKeyProperties.encryptionAlgorithm,\n etag: clientEncryptionKeyProperties.etag,\n wrappedDataEncryptionKey: rewrappedKey,\n encryptionKeyWrapMetadata: newKeyWrapMetadata,\n };\n const body: ClientEncryptionKeyRequest = {\n id: clientEncryptionKeyId,\n encryptionAlgorithm: clientEncryptionKeyProperties.encryptionAlgorithm,\n keyWrapMetadata: newKeyWrapMetadata,\n wrappedDataEncryptionKey: rewrappedKey.toString(\"base64\"),\n };\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url, ResourceType.clientencryptionkey);\n const resourceid = getIdFromLink(this.url);\n const options = {\n accessCondition: { type: \"IfMatch\", condition: clientEncryptionKeyProperties.etag },\n };\n const response = await this.clientContext.replace<ClientEncryptionKeyRequest>({\n body,\n path: path + `/${clientEncryptionKeyId}`,\n resourceType: ResourceType.clientencryptionkey,\n resourceId: resourceid + `/${ResourceType.clientencryptionkey}/${clientEncryptionKeyId}`,\n options,\n diagnosticNode,\n });\n\n if (!response || !response.result) {\n throw new ErrorResponse(\n `Error rewrapping client encryption key with id ${clientEncryptionKeyId}`,\n );\n }\n\n const ref: ClientEncryptionKeyProperties = {\n id: response.result.id,\n encryptionAlgorithm: response.result.encryptionAlgorithm,\n etag: response.result._etag,\n wrappedDataEncryptionKey: new Uint8Array(\n Buffer.from(response.result.wrappedDataEncryptionKey, \"base64\"),\n ),\n encryptionKeyWrapMetadata: response.result.keyWrapMetadata,\n };\n return new ClientEncryptionKeyResponse(\n response.result,\n response.headers,\n response.code,\n ref,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n}\n"]}
1
+ {"version":3,"file":"Database.js","sourceRoot":"","sources":["../../../../src/client/Database/Database.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../../ClientContext.js\";\nimport {\n createDatabaseUri,\n getIdFromLink,\n getPathFromLink,\n ResourceType,\n} from \"../../common/index.js\";\nimport type { CosmosClient } from \"../../CosmosClient.js\";\nimport { ErrorResponse, type RequestOptions } from \"../../request/index.js\";\nimport { Container, Containers } from \"../Container/index.js\";\nimport { User, Users } from \"../User/index.js\";\nimport type { DatabaseDefinition } from \"./DatabaseDefinition.js\";\nimport { DatabaseResponse } from \"./DatabaseResponse.js\";\nimport type { OfferDefinition } from \"../Offer/index.js\";\nimport { OfferResponse, Offer } from \"../Offer/index.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport {\n getEmptyCosmosDiagnostics,\n withDiagnostics,\n withMetadataDiagnostics,\n} from \"../../utils/diagnostics.js\";\nimport { MetadataLookUpType } from \"../../CosmosDiagnostics.js\";\nimport type {\n ClientEncryptionKeyRequest,\n KeyEncryptionKey,\n EncryptionKeyWrapMetadata,\n ClientEncryptionKeyProperties,\n} from \"../../encryption/index.js\";\nimport {\n ClientEncryptionKeyResponse,\n EncryptionAlgorithm,\n KeyEncryptionAlgorithm,\n} from \"../../encryption/index.js\";\nimport type { EncryptionManager } from \"../../encryption/EncryptionManager.js\";\n/**\n * Operations for reading or deleting an existing database.\n *\n * @see {@link Databases} for creating new databases, and reading/querying all databases; use `client.databases`.\n *\n * Note: all these operations make calls against a fixed budget.\n * You should design your system such that these calls scale sublinearly with your application.\n * For instance, do not call `database.read()` before every single `item.read()` call, to ensure the database exists;\n * do this once on application start up.\n */\nexport class Database {\n /**\n * Used for creating new containers, or querying/reading all containers.\n *\n * Use `.database(id)` to read, replace, or delete a specific, existing {@link Database} by id.\n *\n * @example Create a new container\n * ```ts snippet:DatabaseCreateContainer\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 { body: containerDefinition, container } = await client\n * .database(\"<db id>\")\n * .containers.create({ id: \"<container id>\" });\n * ```\n */\n public readonly containers: Containers;\n /**\n * Used for creating new users, or querying/reading all users.\n *\n * Use `.user(id)` to read, replace, or delete a specific, existing {@link User} by id.\n */\n public readonly users: Users;\n\n /**\n * Returns a reference URL to the resource. Used for linking in Permissions.\n * @example\n * ```ts snippet:DatabaseGetUrl\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 url = database.url;\n * ```\n */\n public get url(): string {\n return createDatabaseUri(this.id);\n }\n\n /**\n * @internal\n */\n public _rid: string;\n\n /** Returns a new {@link Database} instance.\n *\n * Note: the intention is to get this object from {@link CosmosClient} via `client.database(id)`, not to instantiate it yourself.\n * @hidden\n */\n constructor(\n public readonly client: CosmosClient,\n public readonly id: string,\n private clientContext: ClientContext,\n private encryptionManager?: EncryptionManager,\n _rid?: string,\n ) {\n this.containers = new Containers(this, this.clientContext, this.encryptionManager);\n this.users = new Users(this, this.clientContext);\n this._rid = _rid;\n }\n\n /**\n * Used to read, replace, or delete a specific, existing {@link Database} by id.\n *\n * Use `.containers` creating new containers, or querying/reading all containers.\n *\n * @example Delete a container\n * ```ts snippet:DatabaseDeleteContainer\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 * await client.database(\"<db id>\").container(\"<container id>\").delete();\n * ```\n */\n public container(id: string): Container {\n return new Container(this, id, this.clientContext, this.encryptionManager);\n }\n\n /**\n * Used to read, replace, or delete a specific, existing {@link User} by id.\n *\n * Use `.users` for creating new users, or querying/reading all users.\n * @example Delete a user\n * ```ts snippet:DatabaseDeleteUser\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 * await client.database(\"<db id>\").user(\"<user id>\").delete();\n * ```\n */\n public user(id: string): User {\n return new User(this, id, this.clientContext);\n }\n\n /** Read the definition of the given Database.\n * @example\n * ```ts snippet:DatabaseRead\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 { resource: database } = await client.database(\"<db id>\").read();\n * ```\n */\n public async read(options?: RequestOptions): Promise<DatabaseResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.readInternal(diagnosticNode, options);\n }, this.clientContext);\n }\n\n /**\n * @hidden\n */\n public async readInternal(\n diagnosticNode: DiagnosticNodeInternal,\n options?: RequestOptions,\n ): Promise<DatabaseResponse> {\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n const response = await this.clientContext.read<DatabaseDefinition>({\n path,\n resourceType: ResourceType.database,\n resourceId: id,\n options,\n diagnosticNode,\n });\n return new DatabaseResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }\n\n /** Delete the given Database.\n * @example\n * ```ts snippet:CosmosClientDatabaseDelete\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 * await client.database(\"<id here>\").delete();\n * ```\n */\n public async delete(options?: RequestOptions): Promise<DatabaseResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url);\n const id = getIdFromLink(this.url);\n\n const response = await this.clientContext.delete<DatabaseDefinition>({\n path,\n resourceType: ResourceType.database,\n resourceId: id,\n options,\n diagnosticNode,\n });\n return new DatabaseResponse(\n response.result,\n response.headers,\n response.code,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Gets offer on database. If none exists, returns an OfferResponse with undefined.\n * @example Read the offer on the database\n * ```ts snippet:DatabaseReadOffer\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 { resource: offer } = await client.database(\"<db id>\").readOffer();\n * ```\n */\n public async readOffer(options: RequestOptions = {}): Promise<OfferResponse> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const { resource: record } = await withMetadataDiagnostics(\n async (node: DiagnosticNodeInternal) => {\n return this.readInternal(node);\n },\n diagnosticNode,\n MetadataLookUpType.DatabaseLookUp,\n );\n\n const path = \"/offers\";\n const url = record._self;\n\n const response = await this.clientContext.queryFeed<OfferDefinition & Resource[]>({\n path,\n resourceId: \"\",\n resourceType: ResourceType.offer,\n query: `SELECT * from root where root.resource = \"${url}\"`,\n resultFn: (result) => result.Offers,\n options,\n diagnosticNode,\n });\n const offer = response.result[0]\n ? new Offer(this.client, response.result[0].id, this.clientContext)\n : undefined;\n return new OfferResponse(\n response.result[0],\n response.headers,\n response.code,\n getEmptyCosmosDiagnostics(),\n offer,\n );\n }, this.clientContext);\n }\n\n /**\n * Create Encryption key for database account\n * @example\n * ```ts snippet:DatabaseCreateClientEncryptionKey\n * import { ClientSecretCredential } from \"@azure/identity\";\n * import {\n * AzureKeyVaultEncryptionKeyResolver,\n * CosmosClient,\n * EncryptionKeyWrapMetadata,\n * EncryptionKeyResolverName,\n * KeyEncryptionAlgorithm,\n * EncryptionAlgorithm,\n * } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const credentials = new ClientSecretCredential(\"<tenant-id>\", \"<client-id>\", \"<app-secret>\");\n * const keyResolver = new AzureKeyVaultEncryptionKeyResolver(credentials);\n * const client = new CosmosClient({\n * endpoint,\n * key,\n * clientEncryptionOptions: {\n * keyEncryptionKeyResolver: keyResolver,\n * },\n * });\n * const { database } = await client.databases.createIfNotExists({ id: \"<db id>\" });\n * const metadata: EncryptionKeyWrapMetadata = {\n * type: EncryptionKeyResolverName.AzureKeyVault,\n * name: \"<key-name>\",\n * value: \"<key-vault-url>\",\n * algorithm: KeyEncryptionAlgorithm.RSA_OAEP,\n * };\n *\n * await database.createClientEncryptionKey(\n * \"<cek-id>\",\n * EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA256,\n * metadata,\n * );\n * ```\n */\n public async createClientEncryptionKey(\n clientEncryptionKeyId: string,\n encryptionAlgorithm: EncryptionAlgorithm,\n keyWrapMetadata: EncryptionKeyWrapMetadata,\n ): Promise<ClientEncryptionKeyResponse> {\n if (clientEncryptionKeyId == null || !clientEncryptionKeyId.trim()) {\n throw new Error(\"encryption key id cannot be null or empty\");\n }\n if (encryptionAlgorithm !== EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA256) {\n throw new Error(`Invalid encryption algorithm '${encryptionAlgorithm}' passed.`);\n }\n if (!keyWrapMetadata) {\n throw new Error(\"encryptionKeyWrapMetadata cannot be null.\");\n }\n if (keyWrapMetadata.algorithm !== KeyEncryptionAlgorithm.RSA_OAEP) {\n throw new Error(`Invalid key wrap algorithm '${keyWrapMetadata.algorithm}' passed.`);\n }\n if (!this.clientContext.enableEncryption) {\n throw new Error(\n \"Creating a client encryption key requires the use of an encryption-enabled client.\",\n );\n }\n\n const keyEncryptionKey: KeyEncryptionKey =\n this.encryptionManager.keyEncryptionKeyCache.getOrCreate(\n keyWrapMetadata.name,\n keyWrapMetadata.value,\n this.encryptionManager.encryptionKeyStoreProvider,\n );\n\n const protectedDataEncryptionKey =\n await this.encryptionManager.protectedDataEncryptionKeyCache.getOrCreate(\n clientEncryptionKeyId,\n keyEncryptionKey,\n );\n\n const wrappedDataEncryptionKey = protectedDataEncryptionKey.encryptedValue;\n\n const body: ClientEncryptionKeyRequest = {\n id: clientEncryptionKeyId,\n encryptionAlgorithm: encryptionAlgorithm,\n keyWrapMetadata: keyWrapMetadata,\n wrappedDataEncryptionKey: wrappedDataEncryptionKey.toString(\"base64\"),\n };\n\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url, ResourceType.clientencryptionkey);\n const databaseId = getIdFromLink(this.url);\n const response = await this.clientContext.create<ClientEncryptionKeyRequest>({\n body,\n path: path,\n resourceType: ResourceType.clientencryptionkey,\n resourceId: databaseId,\n diagnosticNode,\n });\n const ref: ClientEncryptionKeyProperties = {\n id: response.result.id,\n encryptionAlgorithm: response.result.encryptionAlgorithm,\n etag: response.result._etag,\n wrappedDataEncryptionKey: new Uint8Array(\n Buffer.from(response.result.wrappedDataEncryptionKey, \"base64\"),\n ),\n encryptionKeyWrapMetadata: response.result.keyWrapMetadata,\n };\n return new ClientEncryptionKeyResponse(\n response.result,\n response.headers,\n response.code,\n ref,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Read Encryption key for database account\n * @example\n * ```ts snippet:DatabaseReadClientEncryptionKey\n * import { ClientSecretCredential } from \"@azure/identity\";\n * import { AzureKeyVaultEncryptionKeyResolver, CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const credentials = new ClientSecretCredential(\"<tenant-id>\", \"<client-id>\", \"<app-secret>\");\n * const keyResolver = new AzureKeyVaultEncryptionKeyResolver(credentials);\n * const client = new CosmosClient({\n * endpoint,\n * key,\n * clientEncryptionOptions: {\n * keyEncryptionKeyResolver: keyResolver,\n * },\n * });\n * const { database } = await client.databases.createIfNotExists({ id: \"<db id>\" });\n *\n * const { resource: clientEncryptionKey } = await database.readClientEncryptionKey(\"<cek-id>\");\n * ```\n */\n public async readClientEncryptionKey(\n clientEncryptionKeyId: string,\n ): Promise<ClientEncryptionKeyResponse> {\n if (clientEncryptionKeyId == null || !clientEncryptionKeyId.trim()) {\n throw new ErrorResponse(\"encryption key id cannot be null or empty\");\n }\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n if (!this._rid) {\n const databaseResponse = await this.readInternal(diagnosticNode);\n if (!databaseResponse || !databaseResponse.resource) {\n throw new ErrorResponse(`Error reading database with id ${clientEncryptionKeyId}`);\n }\n this._rid = databaseResponse.resource._rid;\n }\n const path = getPathFromLink(this.url, ResourceType.clientencryptionkey);\n const resourceid = getIdFromLink(this.url);\n const response = await this.clientContext.read<ClientEncryptionKeyRequest>({\n path: path + `/${clientEncryptionKeyId}`,\n resourceType: ResourceType.clientencryptionkey,\n resourceId: resourceid + `/${ResourceType.clientencryptionkey}/${clientEncryptionKeyId}`,\n options: { databaseRid: this._rid },\n diagnosticNode,\n });\n if (!response || !response.result) {\n throw new ErrorResponse(\n `Error reading client encryption key with id ${clientEncryptionKeyId}`,\n );\n }\n const ref: ClientEncryptionKeyProperties = {\n id: response.result.id,\n encryptionAlgorithm: response.result.encryptionAlgorithm,\n etag: response.result._etag,\n wrappedDataEncryptionKey: new Uint8Array(\n Buffer.from(response.result.wrappedDataEncryptionKey, \"base64\"),\n ),\n encryptionKeyWrapMetadata: response.result.keyWrapMetadata,\n };\n return new ClientEncryptionKeyResponse(\n response.result,\n response.headers,\n response.code,\n ref,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n /**\n * rewraps a client encryption key with new key encryption key\n * @param id - client encryption key id\n * @param newKeyWrapMetadata - new encryption key wrap metadata\n * @returns rewrapped client encryption key with new customer managed key\n * @example\n * ```ts snippet:DatabaseRewrapClientEncryptionKey\n * import { ClientSecretCredential } from \"@azure/identity\";\n * import {\n * AzureKeyVaultEncryptionKeyResolver,\n * CosmosClient,\n * EncryptionKeyWrapMetadata,\n * EncryptionKeyResolverName,\n * KeyEncryptionAlgorithm,\n * } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const credentials = new ClientSecretCredential(\"<tenant-id>\", \"<client-id>\", \"<app-secret>\");\n * const keyResolver = new AzureKeyVaultEncryptionKeyResolver(credentials);\n * const client = new CosmosClient({\n * endpoint,\n * key,\n * clientEncryptionOptions: {\n * keyEncryptionKeyResolver: keyResolver,\n * },\n * });\n * const { database } = await client.databases.createIfNotExists({ id: \"<db id>\" });\n * const newMetadata: EncryptionKeyWrapMetadata = {\n * type: EncryptionKeyResolverName.AzureKeyVault,\n * name: \"<key-name>\",\n * value: \"<key-vault-url>\",\n * algorithm: KeyEncryptionAlgorithm.RSA_OAEP,\n * };\n *\n * await database.rewrapClientEncryptionKey(\"<new-cek-id>\", newMetadata);\n * ```\n */\n public async rewrapClientEncryptionKey(\n clientEncryptionKeyId: string,\n newKeyWrapMetadata: EncryptionKeyWrapMetadata,\n ): Promise<ClientEncryptionKeyResponse> {\n if (clientEncryptionKeyId == null || !clientEncryptionKeyId.trim()) {\n throw new ErrorResponse(\"encryption key id cannot be null or empty\");\n }\n if (!newKeyWrapMetadata) {\n throw new ErrorResponse(\"encryptionKeyWrapMetadata cannot be null.\");\n }\n if (newKeyWrapMetadata.algorithm !== KeyEncryptionAlgorithm.RSA_OAEP) {\n throw new ErrorResponse(\n `Invalid key wrap algorithm '${newKeyWrapMetadata.algorithm}' passed.`,\n );\n }\n if (!this.clientContext.enableEncryption) {\n throw new ErrorResponse(\n \"Rewrapping a client encryption key requires the use of an encryption-enabled client.\",\n );\n }\n\n const res = await this.readClientEncryptionKey(clientEncryptionKeyId);\n if (!res || !res.clientEncryptionKeyProperties) {\n throw new ErrorResponse(\n `Error reading client encryption key with id ${clientEncryptionKeyId}`,\n );\n }\n let clientEncryptionKeyProperties = res.clientEncryptionKeyProperties;\n\n let keyEncryptionKey = this.encryptionManager.keyEncryptionKeyCache.getOrCreate(\n clientEncryptionKeyProperties.encryptionKeyWrapMetadata.name,\n clientEncryptionKeyProperties.encryptionKeyWrapMetadata.value,\n this.encryptionManager.encryptionKeyStoreProvider,\n );\n const unwrappedKey = await keyEncryptionKey.unwrapEncryptionKey(\n Buffer.from(clientEncryptionKeyProperties.wrappedDataEncryptionKey),\n );\n\n keyEncryptionKey = this.encryptionManager.keyEncryptionKeyCache.getOrCreate(\n newKeyWrapMetadata.name,\n newKeyWrapMetadata.value,\n this.encryptionManager.encryptionKeyStoreProvider,\n );\n const rewrappedKey = await keyEncryptionKey.wrapEncryptionKey(unwrappedKey);\n clientEncryptionKeyProperties = {\n id: clientEncryptionKeyId,\n encryptionAlgorithm: clientEncryptionKeyProperties.encryptionAlgorithm,\n etag: clientEncryptionKeyProperties.etag,\n wrappedDataEncryptionKey: rewrappedKey,\n encryptionKeyWrapMetadata: newKeyWrapMetadata,\n };\n const body: ClientEncryptionKeyRequest = {\n id: clientEncryptionKeyId,\n encryptionAlgorithm: clientEncryptionKeyProperties.encryptionAlgorithm,\n keyWrapMetadata: newKeyWrapMetadata,\n wrappedDataEncryptionKey: rewrappedKey.toString(\"base64\"),\n };\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n const path = getPathFromLink(this.url, ResourceType.clientencryptionkey);\n const resourceid = getIdFromLink(this.url);\n const options = {\n accessCondition: { type: \"IfMatch\", condition: clientEncryptionKeyProperties.etag },\n };\n const response = await this.clientContext.replace<ClientEncryptionKeyRequest>({\n body,\n path: path + `/${clientEncryptionKeyId}`,\n resourceType: ResourceType.clientencryptionkey,\n resourceId: resourceid + `/${ResourceType.clientencryptionkey}/${clientEncryptionKeyId}`,\n options,\n diagnosticNode,\n });\n\n if (!response || !response.result) {\n throw new ErrorResponse(\n `Error rewrapping client encryption key with id ${clientEncryptionKeyId}`,\n );\n }\n\n const ref: ClientEncryptionKeyProperties = {\n id: response.result.id,\n encryptionAlgorithm: response.result.encryptionAlgorithm,\n etag: response.result._etag,\n wrappedDataEncryptionKey: new Uint8Array(\n Buffer.from(response.result.wrappedDataEncryptionKey, \"base64\"),\n ),\n encryptionKeyWrapMetadata: response.result.keyWrapMetadata,\n };\n return new ClientEncryptionKeyResponse(\n response.result,\n response.headers,\n response.code,\n ref,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n}\n"]}
@@ -5,5 +5,7 @@ export class DatabaseResponse extends ResourceResponse {
5
5
  super(resource, headers, statusCode, diagnostics);
6
6
  this.database = database;
7
7
  }
8
+ /** A reference to the {@link Database} that the returned {@link DatabaseDefinition} corresponds to. */
9
+ database;
8
10
  }
9
11
  //# sourceMappingURL=DatabaseResponse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseResponse.js","sourceRoot":"","sources":["../../../../src/client/Database/DatabaseResponse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,8CAA8C;AAC9C,MAAM,OAAO,gBAAiB,SAAQ,gBAA+C;IACnF,YACE,QAAuC,EACvC,OAAsB,EACtB,UAAkB,EAClB,QAAkB,EAClB,WAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CAGF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { CosmosDiagnostics } from \"../../CosmosDiagnostics.js\";\nimport type { CosmosHeaders } from \"../../queryExecutionContext/index.js\";\nimport { ResourceResponse } from \"../../request/ResourceResponse.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { Database } from \"./Database.js\";\nimport type { DatabaseDefinition } from \"./DatabaseDefinition.js\";\n\n/** Response object for Database operations */\nexport class DatabaseResponse extends ResourceResponse<DatabaseDefinition & Resource> {\n constructor(\n resource: DatabaseDefinition & Resource,\n headers: CosmosHeaders,\n statusCode: number,\n database: Database,\n diagnostics: CosmosDiagnostics,\n ) {\n super(resource, headers, statusCode, diagnostics);\n this.database = database;\n }\n /** A reference to the {@link Database} that the returned {@link DatabaseDefinition} corresponds to. */\n public readonly database: Database;\n}\n"]}
1
+ {"version":3,"file":"DatabaseResponse.js","sourceRoot":"","sources":["../../../../src/client/Database/DatabaseResponse.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,8CAA8C;AAC9C,MAAM,OAAO,gBAAiB,SAAQ,gBAA+C;IACnF,YACE,QAAuC,EACvC,OAAsB,EACtB,UAAkB,EAClB,QAAkB,EAClB,WAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IACD,uGAAuG;IACvF,QAAQ,CAAW;CACpC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { CosmosDiagnostics } from \"../../CosmosDiagnostics.js\";\nimport type { CosmosHeaders } from \"../../queryExecutionContext/index.js\";\nimport { ResourceResponse } from \"../../request/ResourceResponse.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { Database } from \"./Database.js\";\nimport type { DatabaseDefinition } from \"./DatabaseDefinition.js\";\n\n/** Response object for Database operations */\nexport class DatabaseResponse extends ResourceResponse<DatabaseDefinition & Resource> {\n constructor(\n resource: DatabaseDefinition & Resource,\n headers: CosmosHeaders,\n statusCode: number,\n database: Database,\n diagnostics: CosmosDiagnostics,\n ) {\n super(resource, headers, statusCode, diagnostics);\n this.database = database;\n }\n /** A reference to the {@link Database} that the returned {@link DatabaseDefinition} corresponds to. */\n public readonly database: Database;\n}\n"]}
@@ -18,6 +18,9 @@ import { getEmptyCosmosDiagnostics, withDiagnostics } from "../../utils/diagnost
18
18
  * do this once on application start up.
19
19
  */
20
20
  export class Databases {
21
+ client;
22
+ clientContext;
23
+ encryptionManager;
21
24
  /**
22
25
  * @hidden
23
26
  * @param client - The parent {@link CosmosClient} for the Database.