@azure/cosmos 4.5.0-alpha.20250718.3 → 4.5.0-alpha.20250730.2

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 (1172) 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/diagnostics/CosmosDiagnosticsContext.js +8 -7
  128. package/dist/browser/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  129. package/dist/browser/diagnostics/DiagnosticNodeInternal.js +26 -7
  130. package/dist/browser/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  131. package/dist/browser/diagnostics/DiagnosticWriter.js +1 -3
  132. package/dist/browser/diagnostics/DiagnosticWriter.js.map +1 -1
  133. package/dist/browser/diagnostics/index.js +2 -2
  134. package/dist/browser/diagnostics/index.js.map +1 -1
  135. package/dist/browser/documents/DatabaseAccount.js +20 -4
  136. package/dist/browser/documents/DatabaseAccount.js.map +1 -1
  137. package/dist/browser/documents/PartitionKey.js +1 -3
  138. package/dist/browser/documents/PartitionKey.js.map +1 -1
  139. package/dist/browser/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  140. package/dist/browser/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  141. package/dist/browser/encryption/Cache/EncryptionSettingsCache.js +2 -0
  142. package/dist/browser/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  143. package/dist/browser/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  144. package/dist/browser/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  145. package/dist/browser/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  146. package/dist/browser/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  147. package/dist/browser/encryption/EncryptionItemQueryIterator.js +24 -27
  148. package/dist/browser/encryption/EncryptionItemQueryIterator.js.map +1 -1
  149. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  150. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  151. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  152. package/dist/browser/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  153. package/dist/browser/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  154. package/dist/browser/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  155. package/dist/browser/encryption/EncryptionKeyStoreProvider.js +8 -1
  156. package/dist/browser/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  157. package/dist/browser/encryption/EncryptionManager.js +6 -0
  158. package/dist/browser/encryption/EncryptionManager.js.map +1 -1
  159. package/dist/browser/encryption/EncryptionProcessor.js +5 -0
  160. package/dist/browser/encryption/EncryptionProcessor.js.map +1 -1
  161. package/dist/browser/encryption/EncryptionQueryBuilder.js +2 -0
  162. package/dist/browser/encryption/EncryptionQueryBuilder.js.map +1 -1
  163. package/dist/browser/encryption/EncryptionSettingForProperty.js +6 -0
  164. package/dist/browser/encryption/EncryptionSettingForProperty.js.map +1 -1
  165. package/dist/browser/encryption/EncryptionSettings.js +6 -3
  166. package/dist/browser/encryption/EncryptionSettings.js.map +1 -1
  167. package/dist/browser/encryption/KeyEncryptionKey.js +4 -0
  168. package/dist/browser/encryption/KeyEncryptionKey.js.map +1 -1
  169. package/dist/browser/encryption/Serializers/StringSerializer.js +1 -1
  170. package/dist/browser/encryption/Serializers/StringSerializer.js.map +1 -1
  171. package/dist/browser/extractPartitionKey.js +2 -2
  172. package/dist/browser/extractPartitionKey.js.map +1 -1
  173. package/dist/browser/globalEndpointManager.js +21 -4
  174. package/dist/browser/globalEndpointManager.js.map +1 -1
  175. package/dist/browser/globalPartitionEndpointManager.js +8 -0
  176. package/dist/browser/globalPartitionEndpointManager.js.map +1 -1
  177. package/dist/browser/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  178. package/dist/browser/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  179. package/dist/browser/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  180. package/dist/browser/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  181. package/dist/browser/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  182. package/dist/browser/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  183. package/dist/browser/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  184. package/dist/browser/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  185. package/dist/browser/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  186. package/dist/browser/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  187. package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  188. package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  189. package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  190. package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  191. package/dist/browser/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  192. package/dist/browser/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  193. package/dist/browser/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  194. package/dist/browser/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  195. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  196. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  197. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  198. package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  199. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  200. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  201. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  202. package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  203. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  204. package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  205. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  206. package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  207. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  208. package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  209. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  210. package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  211. package/dist/browser/queryExecutionContext/FetchResult.js +4 -0
  212. package/dist/browser/queryExecutionContext/FetchResult.js.map +1 -1
  213. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  214. package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  215. package/dist/browser/queryExecutionContext/documentProducer.js +34 -21
  216. package/dist/browser/queryExecutionContext/documentProducer.js.map +1 -1
  217. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  218. package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  219. package/dist/browser/queryExecutionContext/orderByComparator.js +1 -0
  220. package/dist/browser/queryExecutionContext/orderByComparator.js.map +1 -1
  221. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  222. package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  223. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  224. package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  225. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  226. package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  227. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  228. package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  229. package/dist/browser/queryIterator.js +41 -33
  230. package/dist/browser/queryIterator.js.map +1 -1
  231. package/dist/browser/queryMetrics/clientSideMetrics.js +2 -1
  232. package/dist/browser/queryMetrics/clientSideMetrics.js.map +1 -1
  233. package/dist/browser/queryMetrics/queryMetrics.js +14 -1
  234. package/dist/browser/queryMetrics/queryMetrics.js.map +1 -1
  235. package/dist/browser/queryMetrics/queryPreparationTime.js +5 -1
  236. package/dist/browser/queryMetrics/queryPreparationTime.js.map +1 -1
  237. package/dist/browser/queryMetrics/runtimeExecutionTimes.js +4 -1
  238. package/dist/browser/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  239. package/dist/browser/queryMetrics/timeSpan.js +4 -3
  240. package/dist/browser/queryMetrics/timeSpan.js.map +1 -1
  241. package/dist/browser/request/ErrorResponse.js +19 -0
  242. package/dist/browser/request/ErrorResponse.js.map +1 -1
  243. package/dist/browser/request/FeedResponse.js +4 -0
  244. package/dist/browser/request/FeedResponse.js.map +1 -1
  245. package/dist/browser/request/RequestHandler.js +1 -2
  246. package/dist/browser/request/RequestHandler.js.map +1 -1
  247. package/dist/browser/request/ResourceResponse.js +5 -0
  248. package/dist/browser/request/ResourceResponse.js.map +1 -1
  249. package/dist/browser/request/TimeoutError.js +1 -1
  250. package/dist/browser/request/TimeoutError.js.map +1 -1
  251. package/dist/browser/request/hybridSearchQueryResult.js +5 -0
  252. package/dist/browser/request/hybridSearchQueryResult.js.map +1 -1
  253. package/dist/browser/request/request.js +5 -1
  254. package/dist/browser/request/request.js.map +1 -1
  255. package/dist/browser/retry/bulkExecutionRetryPolicy.js +5 -2
  256. package/dist/browser/retry/bulkExecutionRetryPolicy.js.map +1 -1
  257. package/dist/browser/retry/defaultRetryPolicy.js +4 -3
  258. package/dist/browser/retry/defaultRetryPolicy.js.map +1 -1
  259. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js +11 -2
  260. package/dist/browser/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  261. package/dist/browser/retry/resourceThrottleRetryPolicy.js +20 -10
  262. package/dist/browser/retry/resourceThrottleRetryPolicy.js.map +1 -1
  263. package/dist/browser/retry/retryUtility.js +2 -3
  264. package/dist/browser/retry/retryUtility.js.map +1 -1
  265. package/dist/browser/retry/sessionRetryPolicy.js +8 -4
  266. package/dist/browser/retry/sessionRetryPolicy.js.map +1 -1
  267. package/dist/browser/retry/timeoutFailoverRetryPolicy.js +14 -4
  268. package/dist/browser/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  269. package/dist/browser/routing/QueryRange.js +4 -0
  270. package/dist/browser/routing/QueryRange.js.map +1 -1
  271. package/dist/browser/routing/inMemoryCollectionRoutingMap.js +4 -0
  272. package/dist/browser/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  273. package/dist/browser/routing/partitionKeyRangeCache.js +2 -0
  274. package/dist/browser/routing/partitionKeyRangeCache.js.map +1 -1
  275. package/dist/browser/routing/smartRoutingMapProvider.js +1 -0
  276. package/dist/browser/routing/smartRoutingMapProvider.js.map +1 -1
  277. package/dist/browser/session/VectorSessionToken.js +6 -2
  278. package/dist/browser/session/VectorSessionToken.js.map +1 -1
  279. package/dist/browser/session/sessionContainer.js +5 -3
  280. package/dist/browser/session/sessionContainer.js.map +1 -1
  281. package/dist/browser/utils/batch.js +15 -4
  282. package/dist/browser/utils/batch.js.map +1 -1
  283. package/dist/browser/utils/fixedSizePriorityQueue.js +4 -0
  284. package/dist/browser/utils/fixedSizePriorityQueue.js.map +1 -1
  285. package/dist/browser/utils/hashing/hash.js +1 -1
  286. package/dist/browser/utils/hashing/hash.js.map +1 -1
  287. package/dist/browser/utils/nonStreamingOrderByMap.js +2 -0
  288. package/dist/browser/utils/nonStreamingOrderByMap.js.map +1 -1
  289. package/dist/commonjs/ChangeFeedIterator.js +17 -11
  290. package/dist/commonjs/ChangeFeedIterator.js.map +1 -1
  291. package/dist/commonjs/ChangeFeedResponse.js +8 -0
  292. package/dist/commonjs/ChangeFeedResponse.js.map +1 -1
  293. package/dist/commonjs/ClientContext.js +122 -29
  294. package/dist/commonjs/ClientContext.js.map +1 -1
  295. package/dist/commonjs/CosmosClient.js +34 -3
  296. package/dist/commonjs/CosmosClient.js.map +1 -1
  297. package/dist/commonjs/CosmosDiagnostics.js +3 -0
  298. package/dist/commonjs/CosmosDiagnostics.js.map +1 -1
  299. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js +8 -5
  300. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js.map +1 -1
  301. package/dist/commonjs/bulk/Batcher.js +13 -3
  302. package/dist/commonjs/bulk/Batcher.js.map +1 -1
  303. package/dist/commonjs/bulk/BulkHelper.js +26 -11
  304. package/dist/commonjs/bulk/BulkHelper.js.map +1 -1
  305. package/dist/commonjs/bulk/BulkResponse.js +22 -20
  306. package/dist/commonjs/bulk/BulkResponse.js.map +1 -1
  307. package/dist/commonjs/bulk/CongestionAlgorithm.js +11 -4
  308. package/dist/commonjs/bulk/CongestionAlgorithm.js.map +1 -1
  309. package/dist/commonjs/bulk/HelperPerPartition.js +14 -1
  310. package/dist/commonjs/bulk/HelperPerPartition.js.map +1 -1
  311. package/dist/commonjs/bulk/ItemOperationContext.js +4 -0
  312. package/dist/commonjs/bulk/ItemOperationContext.js.map +1 -1
  313. package/dist/commonjs/bulk/Limiter.js +27 -18
  314. package/dist/commonjs/bulk/Limiter.js.map +1 -1
  315. package/dist/commonjs/bulk/PartitionMetric.js +4 -0
  316. package/dist/commonjs/bulk/PartitionMetric.js.map +1 -1
  317. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  318. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  319. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js +16 -8
  320. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  321. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  322. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  323. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  324. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  325. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  326. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  327. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js +20 -0
  328. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  329. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  330. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  331. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  332. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  333. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  334. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  335. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  336. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  337. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  338. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  339. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  340. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  341. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  342. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  343. package/dist/commonjs/client/ChangeFeed/FeedRange.js +8 -0
  344. package/dist/commonjs/client/ChangeFeed/FeedRange.js.map +1 -1
  345. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js +1 -0
  346. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  347. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js +5 -5
  348. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  349. package/dist/commonjs/client/ClientUtils.js +1 -1
  350. package/dist/commonjs/client/ClientUtils.js.map +1 -1
  351. package/dist/commonjs/client/Conflict/Conflict.js +4 -0
  352. package/dist/commonjs/client/Conflict/Conflict.js.map +1 -1
  353. package/dist/commonjs/client/Conflict/ConflictResponse.js +2 -0
  354. package/dist/commonjs/client/Conflict/ConflictResponse.js.map +1 -1
  355. package/dist/commonjs/client/Conflict/Conflicts.js +2 -0
  356. package/dist/commonjs/client/Conflict/Conflicts.js.map +1 -1
  357. package/dist/commonjs/client/Container/Container.js +18 -3
  358. package/dist/commonjs/client/Container/Container.js.map +1 -1
  359. package/dist/commonjs/client/Container/ContainerResponse.js +2 -0
  360. package/dist/commonjs/client/Container/ContainerResponse.js.map +1 -1
  361. package/dist/commonjs/client/Container/Containers.js +4 -2
  362. package/dist/commonjs/client/Container/Containers.js.map +1 -1
  363. package/dist/commonjs/client/Database/Database.js +33 -0
  364. package/dist/commonjs/client/Database/Database.js.map +1 -1
  365. package/dist/commonjs/client/Database/DatabaseResponse.js +2 -0
  366. package/dist/commonjs/client/Database/DatabaseResponse.js.map +1 -1
  367. package/dist/commonjs/client/Database/Databases.js +3 -0
  368. package/dist/commonjs/client/Database/Databases.js.map +1 -1
  369. package/dist/commonjs/client/Item/Item.js +4 -0
  370. package/dist/commonjs/client/Item/Item.js.map +1 -1
  371. package/dist/commonjs/client/Item/ItemResponse.js +2 -0
  372. package/dist/commonjs/client/Item/ItemResponse.js.map +1 -1
  373. package/dist/commonjs/client/Item/Items.js +3 -0
  374. package/dist/commonjs/client/Item/Items.js.map +1 -1
  375. package/dist/commonjs/client/Offer/Offer.js +3 -0
  376. package/dist/commonjs/client/Offer/Offer.js.map +1 -1
  377. package/dist/commonjs/client/Offer/OfferResponse.js +2 -0
  378. package/dist/commonjs/client/Offer/OfferResponse.js.map +1 -1
  379. package/dist/commonjs/client/Offer/Offers.js +2 -0
  380. package/dist/commonjs/client/Offer/Offers.js.map +1 -1
  381. package/dist/commonjs/client/Permission/Permission.js +3 -0
  382. package/dist/commonjs/client/Permission/Permission.js.map +1 -1
  383. package/dist/commonjs/client/Permission/PermissionResponse.js +2 -0
  384. package/dist/commonjs/client/Permission/PermissionResponse.js.map +1 -1
  385. package/dist/commonjs/client/Permission/Permissions.js +2 -0
  386. package/dist/commonjs/client/Permission/Permissions.js.map +1 -1
  387. package/dist/commonjs/client/SasToken/SasTokenProperties.js +17 -0
  388. package/dist/commonjs/client/SasToken/SasTokenProperties.js.map +1 -1
  389. package/dist/commonjs/client/Script/Scripts.js +5 -0
  390. package/dist/commonjs/client/Script/Scripts.js.map +1 -1
  391. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js +3 -0
  392. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js.map +1 -1
  393. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  394. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  395. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js +2 -0
  396. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js.map +1 -1
  397. package/dist/commonjs/client/Trigger/Trigger.js +3 -0
  398. package/dist/commonjs/client/Trigger/Trigger.js.map +1 -1
  399. package/dist/commonjs/client/Trigger/TriggerResponse.js +2 -0
  400. package/dist/commonjs/client/Trigger/TriggerResponse.js.map +1 -1
  401. package/dist/commonjs/client/Trigger/Triggers.js +2 -0
  402. package/dist/commonjs/client/Trigger/Triggers.js.map +1 -1
  403. package/dist/commonjs/client/User/User.js +9 -0
  404. package/dist/commonjs/client/User/User.js.map +1 -1
  405. package/dist/commonjs/client/User/UserResponse.js +2 -0
  406. package/dist/commonjs/client/User/UserResponse.js.map +1 -1
  407. package/dist/commonjs/client/User/Users.js +2 -0
  408. package/dist/commonjs/client/User/Users.js.map +1 -1
  409. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  410. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  411. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  412. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  413. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  414. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  415. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js +8 -7
  416. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  417. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js +26 -7
  418. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  419. package/dist/commonjs/diagnostics/DiagnosticWriter.js +1 -3
  420. package/dist/commonjs/diagnostics/DiagnosticWriter.js.map +1 -1
  421. package/dist/commonjs/diagnostics/index.js +2 -2
  422. package/dist/commonjs/diagnostics/index.js.map +1 -1
  423. package/dist/commonjs/documents/DatabaseAccount.js +20 -4
  424. package/dist/commonjs/documents/DatabaseAccount.js.map +1 -1
  425. package/dist/commonjs/documents/PartitionKey.js +1 -3
  426. package/dist/commonjs/documents/PartitionKey.js.map +1 -1
  427. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  428. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  429. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  430. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  431. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js +2 -0
  432. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  433. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  434. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  435. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js +5 -0
  436. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  437. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  438. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  439. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js +24 -27
  440. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js.map +1 -1
  441. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  442. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  443. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  444. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  445. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  446. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  447. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  448. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  449. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js +8 -1
  450. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  451. package/dist/commonjs/encryption/EncryptionManager.js +6 -0
  452. package/dist/commonjs/encryption/EncryptionManager.js.map +1 -1
  453. package/dist/commonjs/encryption/EncryptionProcessor.js +5 -0
  454. package/dist/commonjs/encryption/EncryptionProcessor.js.map +1 -1
  455. package/dist/commonjs/encryption/EncryptionQueryBuilder.js +2 -0
  456. package/dist/commonjs/encryption/EncryptionQueryBuilder.js.map +1 -1
  457. package/dist/commonjs/encryption/EncryptionSettingForProperty.js +6 -0
  458. package/dist/commonjs/encryption/EncryptionSettingForProperty.js.map +1 -1
  459. package/dist/commonjs/encryption/EncryptionSettings.js +6 -3
  460. package/dist/commonjs/encryption/EncryptionSettings.js.map +1 -1
  461. package/dist/commonjs/encryption/KeyEncryptionKey.js +4 -0
  462. package/dist/commonjs/encryption/KeyEncryptionKey.js.map +1 -1
  463. package/dist/commonjs/encryption/Serializers/StringSerializer.js +1 -1
  464. package/dist/commonjs/encryption/Serializers/StringSerializer.js.map +1 -1
  465. package/dist/commonjs/extractPartitionKey.js +2 -2
  466. package/dist/commonjs/extractPartitionKey.js.map +1 -1
  467. package/dist/commonjs/globalEndpointManager.js +21 -4
  468. package/dist/commonjs/globalEndpointManager.js.map +1 -1
  469. package/dist/commonjs/globalPartitionEndpointManager.js +8 -0
  470. package/dist/commonjs/globalPartitionEndpointManager.js.map +1 -1
  471. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  472. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  473. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  474. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  475. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  476. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  477. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  478. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  479. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  480. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  481. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  482. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  483. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  484. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  485. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  486. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  487. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  488. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  489. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  490. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  491. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  492. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  493. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  494. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  495. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  496. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  497. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  498. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  499. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  500. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  501. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  502. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  503. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  504. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  505. package/dist/commonjs/queryExecutionContext/FetchResult.js +4 -0
  506. package/dist/commonjs/queryExecutionContext/FetchResult.js.map +1 -1
  507. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  508. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  509. package/dist/commonjs/queryExecutionContext/documentProducer.js +34 -21
  510. package/dist/commonjs/queryExecutionContext/documentProducer.js.map +1 -1
  511. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  512. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  513. package/dist/commonjs/queryExecutionContext/orderByComparator.js +1 -0
  514. package/dist/commonjs/queryExecutionContext/orderByComparator.js.map +1 -1
  515. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  516. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  517. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  518. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  519. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  520. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  521. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  522. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  523. package/dist/commonjs/queryIterator.js +41 -33
  524. package/dist/commonjs/queryIterator.js.map +1 -1
  525. package/dist/commonjs/queryMetrics/clientSideMetrics.js +2 -1
  526. package/dist/commonjs/queryMetrics/clientSideMetrics.js.map +1 -1
  527. package/dist/commonjs/queryMetrics/queryMetrics.js +14 -1
  528. package/dist/commonjs/queryMetrics/queryMetrics.js.map +1 -1
  529. package/dist/commonjs/queryMetrics/queryPreparationTime.js +5 -1
  530. package/dist/commonjs/queryMetrics/queryPreparationTime.js.map +1 -1
  531. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js +4 -1
  532. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  533. package/dist/commonjs/queryMetrics/timeSpan.js +4 -3
  534. package/dist/commonjs/queryMetrics/timeSpan.js.map +1 -1
  535. package/dist/commonjs/request/ErrorResponse.js +19 -0
  536. package/dist/commonjs/request/ErrorResponse.js.map +1 -1
  537. package/dist/commonjs/request/FeedResponse.js +4 -0
  538. package/dist/commonjs/request/FeedResponse.js.map +1 -1
  539. package/dist/commonjs/request/RequestHandler.js +1 -2
  540. package/dist/commonjs/request/RequestHandler.js.map +1 -1
  541. package/dist/commonjs/request/ResourceResponse.js +5 -0
  542. package/dist/commonjs/request/ResourceResponse.js.map +1 -1
  543. package/dist/commonjs/request/TimeoutError.js +1 -1
  544. package/dist/commonjs/request/TimeoutError.js.map +1 -1
  545. package/dist/commonjs/request/hybridSearchQueryResult.js +5 -0
  546. package/dist/commonjs/request/hybridSearchQueryResult.js.map +1 -1
  547. package/dist/commonjs/request/request.js +5 -1
  548. package/dist/commonjs/request/request.js.map +1 -1
  549. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js +5 -2
  550. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js.map +1 -1
  551. package/dist/commonjs/retry/defaultRetryPolicy.js +4 -3
  552. package/dist/commonjs/retry/defaultRetryPolicy.js.map +1 -1
  553. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js +11 -2
  554. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  555. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js +20 -10
  556. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js.map +1 -1
  557. package/dist/commonjs/retry/retryUtility.js +2 -3
  558. package/dist/commonjs/retry/retryUtility.js.map +1 -1
  559. package/dist/commonjs/retry/sessionRetryPolicy.js +8 -4
  560. package/dist/commonjs/retry/sessionRetryPolicy.js.map +1 -1
  561. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js +14 -4
  562. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  563. package/dist/commonjs/routing/QueryRange.js +4 -0
  564. package/dist/commonjs/routing/QueryRange.js.map +1 -1
  565. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js +4 -0
  566. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  567. package/dist/commonjs/routing/partitionKeyRangeCache.js +2 -0
  568. package/dist/commonjs/routing/partitionKeyRangeCache.js.map +1 -1
  569. package/dist/commonjs/routing/smartRoutingMapProvider.js +1 -0
  570. package/dist/commonjs/routing/smartRoutingMapProvider.js.map +1 -1
  571. package/dist/commonjs/session/VectorSessionToken.js +6 -2
  572. package/dist/commonjs/session/VectorSessionToken.js.map +1 -1
  573. package/dist/commonjs/session/sessionContainer.js +5 -3
  574. package/dist/commonjs/session/sessionContainer.js.map +1 -1
  575. package/dist/commonjs/tsdoc-metadata.json +1 -1
  576. package/dist/commonjs/utils/batch.js +15 -4
  577. package/dist/commonjs/utils/batch.js.map +1 -1
  578. package/dist/commonjs/utils/fixedSizePriorityQueue.js +4 -0
  579. package/dist/commonjs/utils/fixedSizePriorityQueue.js.map +1 -1
  580. package/dist/commonjs/utils/hashing/hash.js +1 -1
  581. package/dist/commonjs/utils/hashing/hash.js.map +1 -1
  582. package/dist/commonjs/utils/nonStreamingOrderByMap.js +2 -0
  583. package/dist/commonjs/utils/nonStreamingOrderByMap.js.map +1 -1
  584. package/dist/esm/ChangeFeedIterator.js +17 -11
  585. package/dist/esm/ChangeFeedIterator.js.map +1 -1
  586. package/dist/esm/ChangeFeedResponse.js +8 -0
  587. package/dist/esm/ChangeFeedResponse.js.map +1 -1
  588. package/dist/esm/ClientContext.js +122 -29
  589. package/dist/esm/ClientContext.js.map +1 -1
  590. package/dist/esm/CosmosClient.js +34 -3
  591. package/dist/esm/CosmosClient.js.map +1 -1
  592. package/dist/esm/CosmosDiagnostics.js +3 -0
  593. package/dist/esm/CosmosDiagnostics.js.map +1 -1
  594. package/dist/esm/PartitionKeyRangeFailoverInfo.js +8 -5
  595. package/dist/esm/PartitionKeyRangeFailoverInfo.js.map +1 -1
  596. package/dist/esm/bulk/Batcher.js +13 -3
  597. package/dist/esm/bulk/Batcher.js.map +1 -1
  598. package/dist/esm/bulk/BulkHelper.js +26 -11
  599. package/dist/esm/bulk/BulkHelper.js.map +1 -1
  600. package/dist/esm/bulk/BulkResponse.js +22 -20
  601. package/dist/esm/bulk/BulkResponse.js.map +1 -1
  602. package/dist/esm/bulk/CongestionAlgorithm.js +11 -4
  603. package/dist/esm/bulk/CongestionAlgorithm.js.map +1 -1
  604. package/dist/esm/bulk/HelperPerPartition.js +14 -1
  605. package/dist/esm/bulk/HelperPerPartition.js.map +1 -1
  606. package/dist/esm/bulk/ItemOperationContext.js +4 -0
  607. package/dist/esm/bulk/ItemOperationContext.js.map +1 -1
  608. package/dist/esm/bulk/Limiter.js +27 -18
  609. package/dist/esm/bulk/Limiter.js.map +1 -1
  610. package/dist/esm/bulk/PartitionMetric.js +4 -0
  611. package/dist/esm/bulk/PartitionMetric.js.map +1 -1
  612. package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  613. package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  614. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js +16 -8
  615. package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  616. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  617. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  618. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  619. package/dist/esm/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  620. package/dist/esm/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  621. package/dist/esm/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  622. package/dist/esm/client/ChangeFeed/ChangeFeedRange.js +20 -0
  623. package/dist/esm/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  624. package/dist/esm/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  625. package/dist/esm/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  626. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  627. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  628. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  629. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  630. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  631. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  632. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  633. package/dist/esm/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  634. package/dist/esm/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  635. package/dist/esm/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  636. package/dist/esm/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  637. package/dist/esm/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  638. package/dist/esm/client/ChangeFeed/FeedRange.js +8 -0
  639. package/dist/esm/client/ChangeFeed/FeedRange.js.map +1 -1
  640. package/dist/esm/client/ChangeFeed/FeedRangeQueue.js +1 -0
  641. package/dist/esm/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  642. package/dist/esm/client/ChangeFeed/changeFeedUtils.js +5 -5
  643. package/dist/esm/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  644. package/dist/esm/client/ClientUtils.js +1 -1
  645. package/dist/esm/client/ClientUtils.js.map +1 -1
  646. package/dist/esm/client/Conflict/Conflict.js +4 -0
  647. package/dist/esm/client/Conflict/Conflict.js.map +1 -1
  648. package/dist/esm/client/Conflict/ConflictResponse.js +2 -0
  649. package/dist/esm/client/Conflict/ConflictResponse.js.map +1 -1
  650. package/dist/esm/client/Conflict/Conflicts.js +2 -0
  651. package/dist/esm/client/Conflict/Conflicts.js.map +1 -1
  652. package/dist/esm/client/Container/Container.js +18 -3
  653. package/dist/esm/client/Container/Container.js.map +1 -1
  654. package/dist/esm/client/Container/ContainerResponse.js +2 -0
  655. package/dist/esm/client/Container/ContainerResponse.js.map +1 -1
  656. package/dist/esm/client/Container/Containers.js +4 -2
  657. package/dist/esm/client/Container/Containers.js.map +1 -1
  658. package/dist/esm/client/Database/Database.js +33 -0
  659. package/dist/esm/client/Database/Database.js.map +1 -1
  660. package/dist/esm/client/Database/DatabaseResponse.js +2 -0
  661. package/dist/esm/client/Database/DatabaseResponse.js.map +1 -1
  662. package/dist/esm/client/Database/Databases.js +3 -0
  663. package/dist/esm/client/Database/Databases.js.map +1 -1
  664. package/dist/esm/client/Item/Item.js +4 -0
  665. package/dist/esm/client/Item/Item.js.map +1 -1
  666. package/dist/esm/client/Item/ItemResponse.js +2 -0
  667. package/dist/esm/client/Item/ItemResponse.js.map +1 -1
  668. package/dist/esm/client/Item/Items.js +3 -0
  669. package/dist/esm/client/Item/Items.js.map +1 -1
  670. package/dist/esm/client/Offer/Offer.js +3 -0
  671. package/dist/esm/client/Offer/Offer.js.map +1 -1
  672. package/dist/esm/client/Offer/OfferResponse.js +2 -0
  673. package/dist/esm/client/Offer/OfferResponse.js.map +1 -1
  674. package/dist/esm/client/Offer/Offers.js +2 -0
  675. package/dist/esm/client/Offer/Offers.js.map +1 -1
  676. package/dist/esm/client/Permission/Permission.js +3 -0
  677. package/dist/esm/client/Permission/Permission.js.map +1 -1
  678. package/dist/esm/client/Permission/PermissionResponse.js +2 -0
  679. package/dist/esm/client/Permission/PermissionResponse.js.map +1 -1
  680. package/dist/esm/client/Permission/Permissions.js +2 -0
  681. package/dist/esm/client/Permission/Permissions.js.map +1 -1
  682. package/dist/esm/client/SasToken/SasTokenProperties.js +17 -0
  683. package/dist/esm/client/SasToken/SasTokenProperties.js.map +1 -1
  684. package/dist/esm/client/Script/Scripts.js +5 -0
  685. package/dist/esm/client/Script/Scripts.js.map +1 -1
  686. package/dist/esm/client/StoredProcedure/StoredProcedure.js +3 -0
  687. package/dist/esm/client/StoredProcedure/StoredProcedure.js.map +1 -1
  688. package/dist/esm/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  689. package/dist/esm/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  690. package/dist/esm/client/StoredProcedure/StoredProcedures.js +2 -0
  691. package/dist/esm/client/StoredProcedure/StoredProcedures.js.map +1 -1
  692. package/dist/esm/client/Trigger/Trigger.js +3 -0
  693. package/dist/esm/client/Trigger/Trigger.js.map +1 -1
  694. package/dist/esm/client/Trigger/TriggerResponse.js +2 -0
  695. package/dist/esm/client/Trigger/TriggerResponse.js.map +1 -1
  696. package/dist/esm/client/Trigger/Triggers.js +2 -0
  697. package/dist/esm/client/Trigger/Triggers.js.map +1 -1
  698. package/dist/esm/client/User/User.js +9 -0
  699. package/dist/esm/client/User/User.js.map +1 -1
  700. package/dist/esm/client/User/UserResponse.js +2 -0
  701. package/dist/esm/client/User/UserResponse.js.map +1 -1
  702. package/dist/esm/client/User/Users.js +2 -0
  703. package/dist/esm/client/User/Users.js.map +1 -1
  704. package/dist/esm/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  705. package/dist/esm/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  706. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  707. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  708. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  709. package/dist/esm/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  710. package/dist/esm/diagnostics/CosmosDiagnosticsContext.js +8 -7
  711. package/dist/esm/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  712. package/dist/esm/diagnostics/DiagnosticNodeInternal.js +26 -7
  713. package/dist/esm/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  714. package/dist/esm/diagnostics/DiagnosticWriter.js +1 -3
  715. package/dist/esm/diagnostics/DiagnosticWriter.js.map +1 -1
  716. package/dist/esm/diagnostics/index.js +2 -2
  717. package/dist/esm/diagnostics/index.js.map +1 -1
  718. package/dist/esm/documents/DatabaseAccount.js +20 -4
  719. package/dist/esm/documents/DatabaseAccount.js.map +1 -1
  720. package/dist/esm/documents/PartitionKey.js +1 -3
  721. package/dist/esm/documents/PartitionKey.js.map +1 -1
  722. package/dist/esm/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  723. package/dist/esm/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  724. package/dist/esm/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  725. package/dist/esm/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  726. package/dist/esm/encryption/Cache/EncryptionSettingsCache.js +2 -0
  727. package/dist/esm/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  728. package/dist/esm/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  729. package/dist/esm/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  730. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js +5 -0
  731. package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  732. package/dist/esm/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  733. package/dist/esm/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  734. package/dist/esm/encryption/EncryptionItemQueryIterator.js +24 -27
  735. package/dist/esm/encryption/EncryptionItemQueryIterator.js.map +1 -1
  736. package/dist/esm/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  737. package/dist/esm/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  738. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  739. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  740. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  741. package/dist/esm/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  742. package/dist/esm/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  743. package/dist/esm/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  744. package/dist/esm/encryption/EncryptionKeyStoreProvider.js +8 -1
  745. package/dist/esm/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  746. package/dist/esm/encryption/EncryptionManager.js +6 -0
  747. package/dist/esm/encryption/EncryptionManager.js.map +1 -1
  748. package/dist/esm/encryption/EncryptionProcessor.js +5 -0
  749. package/dist/esm/encryption/EncryptionProcessor.js.map +1 -1
  750. package/dist/esm/encryption/EncryptionQueryBuilder.js +2 -0
  751. package/dist/esm/encryption/EncryptionQueryBuilder.js.map +1 -1
  752. package/dist/esm/encryption/EncryptionSettingForProperty.js +6 -0
  753. package/dist/esm/encryption/EncryptionSettingForProperty.js.map +1 -1
  754. package/dist/esm/encryption/EncryptionSettings.js +6 -3
  755. package/dist/esm/encryption/EncryptionSettings.js.map +1 -1
  756. package/dist/esm/encryption/KeyEncryptionKey.js +4 -0
  757. package/dist/esm/encryption/KeyEncryptionKey.js.map +1 -1
  758. package/dist/esm/encryption/Serializers/StringSerializer.js +1 -1
  759. package/dist/esm/encryption/Serializers/StringSerializer.js.map +1 -1
  760. package/dist/esm/extractPartitionKey.js +2 -2
  761. package/dist/esm/extractPartitionKey.js.map +1 -1
  762. package/dist/esm/globalEndpointManager.js +21 -4
  763. package/dist/esm/globalEndpointManager.js.map +1 -1
  764. package/dist/esm/globalPartitionEndpointManager.js +8 -0
  765. package/dist/esm/globalPartitionEndpointManager.js.map +1 -1
  766. package/dist/esm/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  767. package/dist/esm/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  768. package/dist/esm/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  769. package/dist/esm/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  770. package/dist/esm/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  771. package/dist/esm/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  772. package/dist/esm/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  773. package/dist/esm/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  774. package/dist/esm/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  775. package/dist/esm/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  776. package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  777. package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  778. package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  779. package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  780. package/dist/esm/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  781. package/dist/esm/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  782. package/dist/esm/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  783. package/dist/esm/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  784. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  785. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  786. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  787. package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  788. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  789. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  790. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  791. package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  792. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  793. package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  794. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  795. package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  796. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  797. package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  798. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  799. package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  800. package/dist/esm/queryExecutionContext/FetchResult.js +4 -0
  801. package/dist/esm/queryExecutionContext/FetchResult.js.map +1 -1
  802. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  803. package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  804. package/dist/esm/queryExecutionContext/documentProducer.js +34 -21
  805. package/dist/esm/queryExecutionContext/documentProducer.js.map +1 -1
  806. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  807. package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  808. package/dist/esm/queryExecutionContext/orderByComparator.js +1 -0
  809. package/dist/esm/queryExecutionContext/orderByComparator.js.map +1 -1
  810. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  811. package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  812. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  813. package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  814. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  815. package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  816. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  817. package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  818. package/dist/esm/queryIterator.js +41 -33
  819. package/dist/esm/queryIterator.js.map +1 -1
  820. package/dist/esm/queryMetrics/clientSideMetrics.js +2 -1
  821. package/dist/esm/queryMetrics/clientSideMetrics.js.map +1 -1
  822. package/dist/esm/queryMetrics/queryMetrics.js +14 -1
  823. package/dist/esm/queryMetrics/queryMetrics.js.map +1 -1
  824. package/dist/esm/queryMetrics/queryPreparationTime.js +5 -1
  825. package/dist/esm/queryMetrics/queryPreparationTime.js.map +1 -1
  826. package/dist/esm/queryMetrics/runtimeExecutionTimes.js +4 -1
  827. package/dist/esm/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  828. package/dist/esm/queryMetrics/timeSpan.js +4 -3
  829. package/dist/esm/queryMetrics/timeSpan.js.map +1 -1
  830. package/dist/esm/request/ErrorResponse.js +19 -0
  831. package/dist/esm/request/ErrorResponse.js.map +1 -1
  832. package/dist/esm/request/FeedResponse.js +4 -0
  833. package/dist/esm/request/FeedResponse.js.map +1 -1
  834. package/dist/esm/request/RequestHandler.js +1 -2
  835. package/dist/esm/request/RequestHandler.js.map +1 -1
  836. package/dist/esm/request/ResourceResponse.js +5 -0
  837. package/dist/esm/request/ResourceResponse.js.map +1 -1
  838. package/dist/esm/request/TimeoutError.js +1 -1
  839. package/dist/esm/request/TimeoutError.js.map +1 -1
  840. package/dist/esm/request/hybridSearchQueryResult.js +5 -0
  841. package/dist/esm/request/hybridSearchQueryResult.js.map +1 -1
  842. package/dist/esm/request/request.js +5 -1
  843. package/dist/esm/request/request.js.map +1 -1
  844. package/dist/esm/retry/bulkExecutionRetryPolicy.js +5 -2
  845. package/dist/esm/retry/bulkExecutionRetryPolicy.js.map +1 -1
  846. package/dist/esm/retry/defaultRetryPolicy.js +4 -3
  847. package/dist/esm/retry/defaultRetryPolicy.js.map +1 -1
  848. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js +11 -2
  849. package/dist/esm/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  850. package/dist/esm/retry/resourceThrottleRetryPolicy.js +20 -10
  851. package/dist/esm/retry/resourceThrottleRetryPolicy.js.map +1 -1
  852. package/dist/esm/retry/retryUtility.js +2 -3
  853. package/dist/esm/retry/retryUtility.js.map +1 -1
  854. package/dist/esm/retry/sessionRetryPolicy.js +8 -4
  855. package/dist/esm/retry/sessionRetryPolicy.js.map +1 -1
  856. package/dist/esm/retry/timeoutFailoverRetryPolicy.js +14 -4
  857. package/dist/esm/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  858. package/dist/esm/routing/QueryRange.js +4 -0
  859. package/dist/esm/routing/QueryRange.js.map +1 -1
  860. package/dist/esm/routing/inMemoryCollectionRoutingMap.js +4 -0
  861. package/dist/esm/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  862. package/dist/esm/routing/partitionKeyRangeCache.js +2 -0
  863. package/dist/esm/routing/partitionKeyRangeCache.js.map +1 -1
  864. package/dist/esm/routing/smartRoutingMapProvider.js +1 -0
  865. package/dist/esm/routing/smartRoutingMapProvider.js.map +1 -1
  866. package/dist/esm/session/VectorSessionToken.js +6 -2
  867. package/dist/esm/session/VectorSessionToken.js.map +1 -1
  868. package/dist/esm/session/sessionContainer.js +5 -3
  869. package/dist/esm/session/sessionContainer.js.map +1 -1
  870. package/dist/esm/utils/batch.js +15 -4
  871. package/dist/esm/utils/batch.js.map +1 -1
  872. package/dist/esm/utils/fixedSizePriorityQueue.js +4 -0
  873. package/dist/esm/utils/fixedSizePriorityQueue.js.map +1 -1
  874. package/dist/esm/utils/hashing/hash.js +1 -1
  875. package/dist/esm/utils/hashing/hash.js.map +1 -1
  876. package/dist/esm/utils/nonStreamingOrderByMap.js +2 -0
  877. package/dist/esm/utils/nonStreamingOrderByMap.js.map +1 -1
  878. package/dist/react-native/ChangeFeedIterator.js +17 -11
  879. package/dist/react-native/ChangeFeedIterator.js.map +1 -1
  880. package/dist/react-native/ChangeFeedResponse.js +8 -0
  881. package/dist/react-native/ChangeFeedResponse.js.map +1 -1
  882. package/dist/react-native/ClientContext.js +122 -29
  883. package/dist/react-native/ClientContext.js.map +1 -1
  884. package/dist/react-native/CosmosClient.js +34 -3
  885. package/dist/react-native/CosmosClient.js.map +1 -1
  886. package/dist/react-native/CosmosDiagnostics.js +3 -0
  887. package/dist/react-native/CosmosDiagnostics.js.map +1 -1
  888. package/dist/react-native/PartitionKeyRangeFailoverInfo.js +8 -5
  889. package/dist/react-native/PartitionKeyRangeFailoverInfo.js.map +1 -1
  890. package/dist/react-native/bulk/Batcher.js +13 -3
  891. package/dist/react-native/bulk/Batcher.js.map +1 -1
  892. package/dist/react-native/bulk/BulkHelper.js +26 -11
  893. package/dist/react-native/bulk/BulkHelper.js.map +1 -1
  894. package/dist/react-native/bulk/BulkResponse.js +22 -20
  895. package/dist/react-native/bulk/BulkResponse.js.map +1 -1
  896. package/dist/react-native/bulk/CongestionAlgorithm.js +11 -4
  897. package/dist/react-native/bulk/CongestionAlgorithm.js.map +1 -1
  898. package/dist/react-native/bulk/HelperPerPartition.js +14 -1
  899. package/dist/react-native/bulk/HelperPerPartition.js.map +1 -1
  900. package/dist/react-native/bulk/ItemOperationContext.js +4 -0
  901. package/dist/react-native/bulk/ItemOperationContext.js.map +1 -1
  902. package/dist/react-native/bulk/Limiter.js +27 -18
  903. package/dist/react-native/bulk/Limiter.js.map +1 -1
  904. package/dist/react-native/bulk/PartitionMetric.js +4 -0
  905. package/dist/react-native/bulk/PartitionMetric.js.map +1 -1
  906. package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js +26 -15
  907. package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
  908. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js +16 -8
  909. package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
  910. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorBuilder.js +12 -9
  911. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +1 -1
  912. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorResponse.js +9 -0
  913. package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +1 -1
  914. package/dist/react-native/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  915. package/dist/react-native/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  916. package/dist/react-native/client/ChangeFeed/ChangeFeedRange.js +20 -0
  917. package/dist/react-native/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  918. package/dist/react-native/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  919. package/dist/react-native/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  920. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  921. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  922. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  923. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  924. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  925. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  926. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromTime.js +2 -0
  927. package/dist/react-native/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  928. package/dist/react-native/client/ChangeFeed/CompositeContinuationToken.js +8 -0
  929. package/dist/react-native/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  930. package/dist/react-native/client/ChangeFeed/ContinuationTokenForPartitionKey.js +12 -0
  931. package/dist/react-native/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  932. package/dist/react-native/client/ChangeFeed/FeedRange.js +8 -0
  933. package/dist/react-native/client/ChangeFeed/FeedRange.js.map +1 -1
  934. package/dist/react-native/client/ChangeFeed/FeedRangeQueue.js +1 -0
  935. package/dist/react-native/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  936. package/dist/react-native/client/ChangeFeed/changeFeedUtils.js +5 -5
  937. package/dist/react-native/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  938. package/dist/react-native/client/ClientUtils.js +1 -1
  939. package/dist/react-native/client/ClientUtils.js.map +1 -1
  940. package/dist/react-native/client/Conflict/Conflict.js +4 -0
  941. package/dist/react-native/client/Conflict/Conflict.js.map +1 -1
  942. package/dist/react-native/client/Conflict/ConflictResponse.js +2 -0
  943. package/dist/react-native/client/Conflict/ConflictResponse.js.map +1 -1
  944. package/dist/react-native/client/Conflict/Conflicts.js +2 -0
  945. package/dist/react-native/client/Conflict/Conflicts.js.map +1 -1
  946. package/dist/react-native/client/Container/Container.js +18 -3
  947. package/dist/react-native/client/Container/Container.js.map +1 -1
  948. package/dist/react-native/client/Container/ContainerResponse.js +2 -0
  949. package/dist/react-native/client/Container/ContainerResponse.js.map +1 -1
  950. package/dist/react-native/client/Container/Containers.js +4 -2
  951. package/dist/react-native/client/Container/Containers.js.map +1 -1
  952. package/dist/react-native/client/Database/Database.js +33 -0
  953. package/dist/react-native/client/Database/Database.js.map +1 -1
  954. package/dist/react-native/client/Database/DatabaseResponse.js +2 -0
  955. package/dist/react-native/client/Database/DatabaseResponse.js.map +1 -1
  956. package/dist/react-native/client/Database/Databases.js +3 -0
  957. package/dist/react-native/client/Database/Databases.js.map +1 -1
  958. package/dist/react-native/client/Item/Item.js +4 -0
  959. package/dist/react-native/client/Item/Item.js.map +1 -1
  960. package/dist/react-native/client/Item/ItemResponse.js +2 -0
  961. package/dist/react-native/client/Item/ItemResponse.js.map +1 -1
  962. package/dist/react-native/client/Item/Items.js +3 -0
  963. package/dist/react-native/client/Item/Items.js.map +1 -1
  964. package/dist/react-native/client/Offer/Offer.js +3 -0
  965. package/dist/react-native/client/Offer/Offer.js.map +1 -1
  966. package/dist/react-native/client/Offer/OfferResponse.js +2 -0
  967. package/dist/react-native/client/Offer/OfferResponse.js.map +1 -1
  968. package/dist/react-native/client/Offer/Offers.js +2 -0
  969. package/dist/react-native/client/Offer/Offers.js.map +1 -1
  970. package/dist/react-native/client/Permission/Permission.js +3 -0
  971. package/dist/react-native/client/Permission/Permission.js.map +1 -1
  972. package/dist/react-native/client/Permission/PermissionResponse.js +2 -0
  973. package/dist/react-native/client/Permission/PermissionResponse.js.map +1 -1
  974. package/dist/react-native/client/Permission/Permissions.js +2 -0
  975. package/dist/react-native/client/Permission/Permissions.js.map +1 -1
  976. package/dist/react-native/client/SasToken/SasTokenProperties.js +17 -0
  977. package/dist/react-native/client/SasToken/SasTokenProperties.js.map +1 -1
  978. package/dist/react-native/client/Script/Scripts.js +5 -0
  979. package/dist/react-native/client/Script/Scripts.js.map +1 -1
  980. package/dist/react-native/client/StoredProcedure/StoredProcedure.js +3 -0
  981. package/dist/react-native/client/StoredProcedure/StoredProcedure.js.map +1 -1
  982. package/dist/react-native/client/StoredProcedure/StoredProcedureResponse.js +4 -0
  983. package/dist/react-native/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  984. package/dist/react-native/client/StoredProcedure/StoredProcedures.js +2 -0
  985. package/dist/react-native/client/StoredProcedure/StoredProcedures.js.map +1 -1
  986. package/dist/react-native/client/Trigger/Trigger.js +3 -0
  987. package/dist/react-native/client/Trigger/Trigger.js.map +1 -1
  988. package/dist/react-native/client/Trigger/TriggerResponse.js +2 -0
  989. package/dist/react-native/client/Trigger/TriggerResponse.js.map +1 -1
  990. package/dist/react-native/client/Trigger/Triggers.js +2 -0
  991. package/dist/react-native/client/Trigger/Triggers.js.map +1 -1
  992. package/dist/react-native/client/User/User.js +9 -0
  993. package/dist/react-native/client/User/User.js.map +1 -1
  994. package/dist/react-native/client/User/UserResponse.js +2 -0
  995. package/dist/react-native/client/User/UserResponse.js.map +1 -1
  996. package/dist/react-native/client/User/Users.js +2 -0
  997. package/dist/react-native/client/User/Users.js.map +1 -1
  998. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunction.js +3 -0
  999. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunction.js.map +1 -1
  1000. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctionResponse.js +2 -0
  1001. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  1002. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctions.js +2 -0
  1003. package/dist/react-native/client/UserDefinedFunction/UserDefinedFunctions.js.map +1 -1
  1004. package/dist/react-native/diagnostics/CosmosDiagnosticsContext.js +8 -7
  1005. package/dist/react-native/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  1006. package/dist/react-native/diagnostics/DiagnosticNodeInternal.js +26 -7
  1007. package/dist/react-native/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  1008. package/dist/react-native/diagnostics/DiagnosticWriter.js +1 -3
  1009. package/dist/react-native/diagnostics/DiagnosticWriter.js.map +1 -1
  1010. package/dist/react-native/diagnostics/index.js +2 -2
  1011. package/dist/react-native/diagnostics/index.js.map +1 -1
  1012. package/dist/react-native/documents/DatabaseAccount.js +20 -4
  1013. package/dist/react-native/documents/DatabaseAccount.js.map +1 -1
  1014. package/dist/react-native/documents/PartitionKey.js +1 -3
  1015. package/dist/react-native/documents/PartitionKey.js.map +1 -1
  1016. package/dist/react-native/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +8 -2
  1017. package/dist/react-native/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  1018. package/dist/react-native/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +2 -0
  1019. package/dist/react-native/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  1020. package/dist/react-native/encryption/Cache/EncryptionSettingsCache.js +2 -0
  1021. package/dist/react-native/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  1022. package/dist/react-native/encryption/Cache/KeyEncryptionKeyCache.js +2 -0
  1023. package/dist/react-native/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  1024. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js +5 -0
  1025. package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
  1026. package/dist/react-native/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +2 -0
  1027. package/dist/react-native/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  1028. package/dist/react-native/encryption/EncryptionItemQueryIterator.js +24 -27
  1029. package/dist/react-native/encryption/EncryptionItemQueryIterator.js.map +1 -1
  1030. package/dist/react-native/encryption/EncryptionKey/DataEncryptionKey.js +7 -2
  1031. package/dist/react-native/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  1032. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts +0 -1
  1033. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.d.ts.map +1 -1
  1034. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +2 -0
  1035. package/dist/react-native/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  1036. package/dist/react-native/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +6 -5
  1037. package/dist/react-native/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  1038. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js +8 -1
  1039. package/dist/react-native/encryption/EncryptionKeyStoreProvider.js.map +1 -1
  1040. package/dist/react-native/encryption/EncryptionManager.js +6 -0
  1041. package/dist/react-native/encryption/EncryptionManager.js.map +1 -1
  1042. package/dist/react-native/encryption/EncryptionProcessor.js +5 -0
  1043. package/dist/react-native/encryption/EncryptionProcessor.js.map +1 -1
  1044. package/dist/react-native/encryption/EncryptionQueryBuilder.js +2 -0
  1045. package/dist/react-native/encryption/EncryptionQueryBuilder.js.map +1 -1
  1046. package/dist/react-native/encryption/EncryptionSettingForProperty.js +6 -0
  1047. package/dist/react-native/encryption/EncryptionSettingForProperty.js.map +1 -1
  1048. package/dist/react-native/encryption/EncryptionSettings.js +6 -3
  1049. package/dist/react-native/encryption/EncryptionSettings.js.map +1 -1
  1050. package/dist/react-native/encryption/KeyEncryptionKey.js +4 -0
  1051. package/dist/react-native/encryption/KeyEncryptionKey.js.map +1 -1
  1052. package/dist/react-native/encryption/Serializers/StringSerializer.js +1 -1
  1053. package/dist/react-native/encryption/Serializers/StringSerializer.js.map +1 -1
  1054. package/dist/react-native/extractPartitionKey.js +2 -2
  1055. package/dist/react-native/extractPartitionKey.js.map +1 -1
  1056. package/dist/react-native/globalEndpointManager.js +21 -4
  1057. package/dist/react-native/globalEndpointManager.js.map +1 -1
  1058. package/dist/react-native/globalPartitionEndpointManager.js +8 -0
  1059. package/dist/react-native/globalPartitionEndpointManager.js.map +1 -1
  1060. package/dist/react-native/queryExecutionContext/Aggregators/AverageAggregator.js +2 -0
  1061. package/dist/react-native/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  1062. package/dist/react-native/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  1063. package/dist/react-native/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  1064. package/dist/react-native/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  1065. package/dist/react-native/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  1066. package/dist/react-native/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  1067. package/dist/react-native/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  1068. package/dist/react-native/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  1069. package/dist/react-native/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  1070. package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js +2 -0
  1071. package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  1072. package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js +2 -0
  1073. package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  1074. package/dist/react-native/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  1075. package/dist/react-native/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  1076. package/dist/react-native/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  1077. package/dist/react-native/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  1078. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +5 -3
  1079. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
  1080. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +6 -3
  1081. package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
  1082. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +23 -7
  1083. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
  1084. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +14 -6
  1085. package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
  1086. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +3 -0
  1087. package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
  1088. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +2 -0
  1089. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
  1090. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  1091. package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
  1092. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  1093. package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
  1094. package/dist/react-native/queryExecutionContext/FetchResult.js +4 -0
  1095. package/dist/react-native/queryExecutionContext/FetchResult.js.map +1 -1
  1096. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js +14 -2
  1097. package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  1098. package/dist/react-native/queryExecutionContext/documentProducer.js +34 -21
  1099. package/dist/react-native/queryExecutionContext/documentProducer.js.map +1 -1
  1100. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js +41 -27
  1101. package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
  1102. package/dist/react-native/queryExecutionContext/orderByComparator.js +1 -0
  1103. package/dist/react-native/queryExecutionContext/orderByComparator.js.map +1 -1
  1104. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js +1 -0
  1105. package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
  1106. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  1107. package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  1108. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js +20 -2
  1109. package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
  1110. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js +14 -4
  1111. package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
  1112. package/dist/react-native/queryIterator.js +41 -33
  1113. package/dist/react-native/queryIterator.js.map +1 -1
  1114. package/dist/react-native/queryMetrics/clientSideMetrics.js +2 -1
  1115. package/dist/react-native/queryMetrics/clientSideMetrics.js.map +1 -1
  1116. package/dist/react-native/queryMetrics/queryMetrics.js +14 -1
  1117. package/dist/react-native/queryMetrics/queryMetrics.js.map +1 -1
  1118. package/dist/react-native/queryMetrics/queryPreparationTime.js +5 -1
  1119. package/dist/react-native/queryMetrics/queryPreparationTime.js.map +1 -1
  1120. package/dist/react-native/queryMetrics/runtimeExecutionTimes.js +4 -1
  1121. package/dist/react-native/queryMetrics/runtimeExecutionTimes.js.map +1 -1
  1122. package/dist/react-native/queryMetrics/timeSpan.js +4 -3
  1123. package/dist/react-native/queryMetrics/timeSpan.js.map +1 -1
  1124. package/dist/react-native/request/ErrorResponse.js +19 -0
  1125. package/dist/react-native/request/ErrorResponse.js.map +1 -1
  1126. package/dist/react-native/request/FeedResponse.js +4 -0
  1127. package/dist/react-native/request/FeedResponse.js.map +1 -1
  1128. package/dist/react-native/request/RequestHandler.js +1 -2
  1129. package/dist/react-native/request/RequestHandler.js.map +1 -1
  1130. package/dist/react-native/request/ResourceResponse.js +5 -0
  1131. package/dist/react-native/request/ResourceResponse.js.map +1 -1
  1132. package/dist/react-native/request/TimeoutError.js +1 -1
  1133. package/dist/react-native/request/TimeoutError.js.map +1 -1
  1134. package/dist/react-native/request/hybridSearchQueryResult.js +5 -0
  1135. package/dist/react-native/request/hybridSearchQueryResult.js.map +1 -1
  1136. package/dist/react-native/request/request.js +5 -1
  1137. package/dist/react-native/request/request.js.map +1 -1
  1138. package/dist/react-native/retry/bulkExecutionRetryPolicy.js +5 -2
  1139. package/dist/react-native/retry/bulkExecutionRetryPolicy.js.map +1 -1
  1140. package/dist/react-native/retry/defaultRetryPolicy.js +4 -3
  1141. package/dist/react-native/retry/defaultRetryPolicy.js.map +1 -1
  1142. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js +11 -2
  1143. package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
  1144. package/dist/react-native/retry/resourceThrottleRetryPolicy.js +20 -10
  1145. package/dist/react-native/retry/resourceThrottleRetryPolicy.js.map +1 -1
  1146. package/dist/react-native/retry/retryUtility.js +2 -3
  1147. package/dist/react-native/retry/retryUtility.js.map +1 -1
  1148. package/dist/react-native/retry/sessionRetryPolicy.js +8 -4
  1149. package/dist/react-native/retry/sessionRetryPolicy.js.map +1 -1
  1150. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js +14 -4
  1151. package/dist/react-native/retry/timeoutFailoverRetryPolicy.js.map +1 -1
  1152. package/dist/react-native/routing/QueryRange.js +4 -0
  1153. package/dist/react-native/routing/QueryRange.js.map +1 -1
  1154. package/dist/react-native/routing/inMemoryCollectionRoutingMap.js +4 -0
  1155. package/dist/react-native/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  1156. package/dist/react-native/routing/partitionKeyRangeCache.js +2 -0
  1157. package/dist/react-native/routing/partitionKeyRangeCache.js.map +1 -1
  1158. package/dist/react-native/routing/smartRoutingMapProvider.js +1 -0
  1159. package/dist/react-native/routing/smartRoutingMapProvider.js.map +1 -1
  1160. package/dist/react-native/session/VectorSessionToken.js +6 -2
  1161. package/dist/react-native/session/VectorSessionToken.js.map +1 -1
  1162. package/dist/react-native/session/sessionContainer.js +5 -3
  1163. package/dist/react-native/session/sessionContainer.js.map +1 -1
  1164. package/dist/react-native/utils/batch.js +15 -4
  1165. package/dist/react-native/utils/batch.js.map +1 -1
  1166. package/dist/react-native/utils/fixedSizePriorityQueue.js +4 -0
  1167. package/dist/react-native/utils/fixedSizePriorityQueue.js.map +1 -1
  1168. package/dist/react-native/utils/hashing/hash.js +1 -1
  1169. package/dist/react-native/utils/hashing/hash.js.map +1 -1
  1170. package/dist/react-native/utils/nonStreamingOrderByMap.js +2 -0
  1171. package/dist/react-native/utils/nonStreamingOrderByMap.js.map +1 -1
  1172. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"AeadAes256CbcHmacSha256Algorithm.js","sourceRoot":"","sources":["../../../../src/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { EncryptionType } from \"../enums/index.js\";\nimport { createCipheriv, randomBytes, createHmac, createDecipheriv } from \"node:crypto\";\nimport { DataEncryptionKey } from \"../EncryptionKey/index.js\";\n\nexport class AeadAes256CbcHmacSha256Algorithm {\n private algoVersion = 0x1;\n private blockSizeInBytes = 16;\n private encryptionType: EncryptionType;\n private dataEncryptionKey: DataEncryptionKey;\n private version: Buffer;\n private versionSize: Buffer;\n private keySizeInBytes: number;\n private minimumCipherTextLength: number;\n\n constructor(dataEncryptionKey: DataEncryptionKey, encryptionType: EncryptionType) {\n this.dataEncryptionKey = dataEncryptionKey;\n this.encryptionType = encryptionType;\n this.version = Buffer.from([this.algoVersion]);\n this.versionSize = Buffer.from([1]);\n this.keySizeInBytes = 32;\n this.minimumCipherTextLength = 1 + 2 * this.blockSizeInBytes + this.keySizeInBytes;\n }\n\n public encrypt(plainTextBuffer: Buffer): Buffer {\n let iv: Buffer;\n // create initialization vector\n if (this.encryptionType === EncryptionType.RANDOMIZED) {\n iv = randomBytes(16);\n } else {\n const ivHmac = createHmac(\"sha256\", this.dataEncryptionKey.ivKeyBuffer);\n ivHmac.update(plainTextBuffer);\n iv = ivHmac.digest().slice(0, this.blockSizeInBytes);\n }\n // create cipher text\n const cipher = createCipheriv(\"aes-256-cbc\", this.dataEncryptionKey.encryptionKeyBuffer, iv);\n const cipherTextBuffer = Buffer.concat([cipher.update(plainTextBuffer), cipher.final()]);\n const authTagBuffer = this.generateAuthenticationTag(iv, cipherTextBuffer);\n return Buffer.concat([Buffer.from([this.algoVersion]), authTagBuffer, iv, cipherTextBuffer]);\n }\n\n public decrypt(cipherTextBuffer: Buffer): Buffer {\n if (cipherTextBuffer.length < this.minimumCipherTextLength) {\n throw new Error(\"Invalid cipher text length\");\n }\n if (cipherTextBuffer[0] !== this.algoVersion) {\n throw new Error(\"Invalid cipher text version\");\n }\n const authTagStartIndex = 1;\n const authTagLength = this.keySizeInBytes;\n const ivStartIndex = authTagStartIndex + authTagLength;\n const ivLength = this.blockSizeInBytes;\n const cipherTextStartIndex = ivStartIndex + ivLength;\n const cipherTextLength = cipherTextBuffer.length - cipherTextStartIndex;\n\n const authenticationTag = cipherTextBuffer.slice(\n authTagStartIndex,\n authTagStartIndex + authTagLength,\n );\n const iv = cipherTextBuffer.slice(ivStartIndex, ivStartIndex + ivLength);\n const cipherText = cipherTextBuffer.slice(\n cipherTextStartIndex,\n cipherTextStartIndex + cipherTextLength,\n );\n\n this.validateAuthenticationTag(authenticationTag, iv, cipherText);\n\n const decipher = createDecipheriv(\n \"aes-256-cbc\",\n this.dataEncryptionKey.encryptionKeyBuffer,\n iv,\n );\n const decrypted = decipher.update(cipherText);\n const result = Buffer.concat([decrypted, decipher.final()]);\n return result;\n }\n\n private generateAuthenticationTag(iv: Buffer, cipherTextBuffer: Buffer): Buffer {\n const hmac = createHmac(\"sha256\", this.dataEncryptionKey.macKeyBuffer);\n const buffer = Buffer.concat([this.version, iv, cipherTextBuffer, this.versionSize]);\n return hmac.update(buffer).digest();\n }\n private validateAuthenticationTag(authenticationTag: Buffer, iv: Buffer, cipherText: Buffer) {\n const expectedAuthTag = this.generateAuthenticationTag(iv, cipherText);\n if (!authenticationTag.equals(expectedAuthTag)) {\n throw new Error(\"Invalid authentication tag\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"AeadAes256CbcHmacSha256Algorithm.js","sourceRoot":"","sources":["../../../../src/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { EncryptionType } from \"../enums/index.js\";\nimport { createCipheriv, randomBytes, createHmac, createDecipheriv } from \"node:crypto\";\nimport { DataEncryptionKey } from \"../EncryptionKey/index.js\";\n\nexport class AeadAes256CbcHmacSha256Algorithm {\n private algoVersion = 0x1;\n private blockSizeInBytes = 16;\n private encryptionType: EncryptionType;\n private dataEncryptionKey: DataEncryptionKey;\n private version: Buffer;\n private versionSize: Buffer;\n private keySizeInBytes: number;\n private minimumCipherTextLength: number;\n\n constructor(dataEncryptionKey: DataEncryptionKey, encryptionType: EncryptionType) {\n this.dataEncryptionKey = dataEncryptionKey;\n this.encryptionType = encryptionType;\n this.version = Buffer.from([this.algoVersion]);\n this.versionSize = Buffer.from([1]);\n this.keySizeInBytes = 32;\n this.minimumCipherTextLength = 1 + 2 * this.blockSizeInBytes + this.keySizeInBytes;\n }\n\n public encrypt(plainTextBuffer: Buffer): Buffer {\n let iv: Buffer;\n // create initialization vector\n if (this.encryptionType === EncryptionType.RANDOMIZED) {\n iv = randomBytes(16);\n } else {\n const ivHmac = createHmac(\"sha256\", this.dataEncryptionKey.ivKeyBuffer);\n ivHmac.update(plainTextBuffer);\n iv = ivHmac.digest().slice(0, this.blockSizeInBytes);\n }\n // create cipher text\n const cipher = createCipheriv(\"aes-256-cbc\", this.dataEncryptionKey.encryptionKeyBuffer, iv);\n const cipherTextBuffer = Buffer.concat([cipher.update(plainTextBuffer), cipher.final()]);\n const authTagBuffer = this.generateAuthenticationTag(iv, cipherTextBuffer);\n return Buffer.concat([Buffer.from([this.algoVersion]), authTagBuffer, iv, cipherTextBuffer]);\n }\n\n public decrypt(cipherTextBuffer: Buffer): Buffer {\n if (cipherTextBuffer.length < this.minimumCipherTextLength) {\n throw new Error(\"Invalid cipher text length\");\n }\n if (cipherTextBuffer[0] !== this.algoVersion) {\n throw new Error(\"Invalid cipher text version\");\n }\n const authTagStartIndex = 1;\n const authTagLength = this.keySizeInBytes;\n const ivStartIndex = authTagStartIndex + authTagLength;\n const ivLength = this.blockSizeInBytes;\n const cipherTextStartIndex = ivStartIndex + ivLength;\n const cipherTextLength = cipherTextBuffer.length - cipherTextStartIndex;\n\n const authenticationTag = cipherTextBuffer.slice(\n authTagStartIndex,\n authTagStartIndex + authTagLength,\n );\n const iv = cipherTextBuffer.slice(ivStartIndex, ivStartIndex + ivLength);\n const cipherText = cipherTextBuffer.slice(\n cipherTextStartIndex,\n cipherTextStartIndex + cipherTextLength,\n );\n\n this.validateAuthenticationTag(authenticationTag, iv, cipherText);\n\n const decipher = createDecipheriv(\n \"aes-256-cbc\",\n this.dataEncryptionKey.encryptionKeyBuffer,\n iv,\n );\n const decrypted = decipher.update(cipherText);\n const result = Buffer.concat([decrypted, decipher.final()]);\n return result;\n }\n\n private generateAuthenticationTag(iv: Buffer, cipherTextBuffer: Buffer): Buffer {\n const hmac = createHmac(\"sha256\", this.dataEncryptionKey.macKeyBuffer);\n const buffer = Buffer.concat([this.version, iv, cipherTextBuffer, this.versionSize]);\n return hmac.update(buffer).digest();\n }\n private validateAuthenticationTag(authenticationTag: Buffer, iv: Buffer, cipherText: Buffer) {\n const expectedAuthTag = this.generateAuthenticationTag(iv, cipherText);\n if (!authenticationTag.equals(expectedAuthTag)) {\n throw new Error(\"Invalid authentication tag\");\n }\n }\n}\n"]}
@@ -9,6 +9,8 @@ exports.ClientEncryptionKeyPropertiesCache = void 0;
9
9
  * @hidden
10
10
  */
11
11
  class ClientEncryptionKeyPropertiesCache {
12
+ // key is database rid + '/'+ clientEncryptionKeyId
13
+ clientEncryptionKeyPropertiesCache;
12
14
  constructor() {
13
15
  this.clientEncryptionKeyPropertiesCache = new Map();
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClientEncryptionKeyPropertiesCache.js","sourceRoot":"","sources":["../../../../src/encryption/Cache/ClientEncryptionKeyPropertiesCache.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC;;;;GAIG;AAEH,MAAa,kCAAkC;IAI7C;QACE,IAAI,CAAC,kCAAkC,GAAG,IAAI,GAAG,EAAyC,CAAC;IAC7F,CAAC;IAEM,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IACM,GAAG,CAAC,GAAW,EAAE,6BAA4D;QAClF,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IAClF,CAAC;CACF;AAdD,gFAcC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ClientEncryptionKeyProperties } from \"../ClientEncryptionKey/index.js\";\n\n/**\n * The cache used to store the properties of the client encryption key\n * see {@link ClientEncryptionKeyProperties}\n * @hidden\n */\n\nexport class ClientEncryptionKeyPropertiesCache {\n // key is database rid + '/'+ clientEncryptionKeyId\n private clientEncryptionKeyPropertiesCache: Map<string, ClientEncryptionKeyProperties>;\n\n public constructor() {\n this.clientEncryptionKeyPropertiesCache = new Map<string, ClientEncryptionKeyProperties>();\n }\n\n public get(key: string): ClientEncryptionKeyProperties | undefined {\n return this.clientEncryptionKeyPropertiesCache.get(key);\n }\n public set(key: string, clientEncryptionKeyProperties: ClientEncryptionKeyProperties): void {\n this.clientEncryptionKeyPropertiesCache.set(key, clientEncryptionKeyProperties);\n }\n}\n"]}
1
+ {"version":3,"file":"ClientEncryptionKeyPropertiesCache.js","sourceRoot":"","sources":["../../../../src/encryption/Cache/ClientEncryptionKeyPropertiesCache.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC;;;;GAIG;AAEH,MAAa,kCAAkC;IAC7C,mDAAmD;IAC3C,kCAAkC,CAA6C;IAEvF;QACE,IAAI,CAAC,kCAAkC,GAAG,IAAI,GAAG,EAAyC,CAAC;IAC7F,CAAC;IAEM,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IACM,GAAG,CAAC,GAAW,EAAE,6BAA4D;QAClF,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IAClF,CAAC;CACF;AAdD,gFAcC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ClientEncryptionKeyProperties } from \"../ClientEncryptionKey/index.js\";\n\n/**\n * The cache used to store the properties of the client encryption key\n * see {@link ClientEncryptionKeyProperties}\n * @hidden\n */\n\nexport class ClientEncryptionKeyPropertiesCache {\n // key is database rid + '/'+ clientEncryptionKeyId\n private clientEncryptionKeyPropertiesCache: Map<string, ClientEncryptionKeyProperties>;\n\n public constructor() {\n this.clientEncryptionKeyPropertiesCache = new Map<string, ClientEncryptionKeyProperties>();\n }\n\n public get(key: string): ClientEncryptionKeyProperties | undefined {\n return this.clientEncryptionKeyPropertiesCache.get(key);\n }\n public set(key: string, clientEncryptionKeyProperties: ClientEncryptionKeyProperties): void {\n this.clientEncryptionKeyPropertiesCache.set(key, clientEncryptionKeyProperties);\n }\n}\n"]}
@@ -11,6 +11,8 @@ const EncryptionSettingForProperty_js_1 = require("../EncryptionSettingForProper
11
11
  * @hidden
12
12
  */
13
13
  class EncryptionSettingsCache {
14
+ // key is databaseRid + '/' + containerRid
15
+ cache;
14
16
  constructor() {
15
17
  this.cache = new Map();
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionSettingsCache.js","sourceRoot":"","sources":["../../../../src/encryption/Cache/EncryptionSettingsCache.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAGlC,oEAA8D;AAC9D,wFAAkF;AAClF;;;;GAIG;AACH,MAAa,uBAAuB;IAIlC;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,EAAU,EACV,YAAoB,EACpB,iBAA2B,EAC3B,sBAA8C;QAE9C,MAAM,kBAAkB,GAAG,IAAI,0CAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,sBAAsB;YAAE,OAAO;QAEpC,KAAK,MAAM,YAAY,IAAI,sBAAsB,CAAC,aAAa,EAAE,CAAC;YAChE,MAAM,4BAA4B,GAAG,IAAI,8DAA4B,CAAC,YAAY,CAAC,CAAC;YACpF,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC1D,kBAAkB,CAAC,+BAA+B,CAChD,YAAY,CAAC,IAAI,EACjB,4BAA4B,CAC7B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACjC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAEM,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,kBAAsC;QAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC1C,CAAC;CACF;AApCD,0DAoCC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ClientEncryptionPolicy } from \"../ClientEncryptionPolicy.js\";\nimport { EncryptionSettings } from \"../EncryptionSettings.js\";\nimport { EncryptionSettingForProperty } from \"../EncryptionSettingForProperty.js\";\n/**\n * The cache used to store encryption settings for a container.\n * see {@link EncryptionSettings}\n * @hidden\n */\nexport class EncryptionSettingsCache {\n // key is databaseRid + '/' + containerRid\n private cache: Map<string, EncryptionSettings>;\n\n public constructor() {\n this.cache = new Map<string, EncryptionSettings>();\n }\n\n public async create(\n id: string,\n containerRid: string,\n partitionKeyPaths: string[],\n clientEncryptionPolicy: ClientEncryptionPolicy,\n ): Promise<EncryptionSettings> {\n const encryptionSettings = new EncryptionSettings(id, containerRid, partitionKeyPaths);\n if (!clientEncryptionPolicy) return;\n\n for (const includedPath of clientEncryptionPolicy.includedPaths) {\n const encryptionSettingForProperty = new EncryptionSettingForProperty(includedPath);\n encryptionSettings.pathsToEncrypt.push(includedPath.path);\n encryptionSettings.setEncryptionSettingForProperty(\n includedPath.path,\n encryptionSettingForProperty,\n );\n }\n this.set(id, encryptionSettings);\n return encryptionSettings;\n }\n\n public get(key: string): EncryptionSettings | undefined {\n return this.cache.get(key);\n }\n\n public set(key: string, encryptionSettings: EncryptionSettings): void {\n this.cache.set(key, encryptionSettings);\n }\n}\n"]}
1
+ {"version":3,"file":"EncryptionSettingsCache.js","sourceRoot":"","sources":["../../../../src/encryption/Cache/EncryptionSettingsCache.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAGlC,oEAA8D;AAC9D,wFAAkF;AAClF;;;;GAIG;AACH,MAAa,uBAAuB;IAClC,0CAA0C;IAClC,KAAK,CAAkC;IAE/C;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,EAAU,EACV,YAAoB,EACpB,iBAA2B,EAC3B,sBAA8C;QAE9C,MAAM,kBAAkB,GAAG,IAAI,0CAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,sBAAsB;YAAE,OAAO;QAEpC,KAAK,MAAM,YAAY,IAAI,sBAAsB,CAAC,aAAa,EAAE,CAAC;YAChE,MAAM,4BAA4B,GAAG,IAAI,8DAA4B,CAAC,YAAY,CAAC,CAAC;YACpF,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC1D,kBAAkB,CAAC,+BAA+B,CAChD,YAAY,CAAC,IAAI,EACjB,4BAA4B,CAC7B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACjC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAEM,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,kBAAsC;QAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC1C,CAAC;CACF;AApCD,0DAoCC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ClientEncryptionPolicy } from \"../ClientEncryptionPolicy.js\";\nimport { EncryptionSettings } from \"../EncryptionSettings.js\";\nimport { EncryptionSettingForProperty } from \"../EncryptionSettingForProperty.js\";\n/**\n * The cache used to store encryption settings for a container.\n * see {@link EncryptionSettings}\n * @hidden\n */\nexport class EncryptionSettingsCache {\n // key is databaseRid + '/' + containerRid\n private cache: Map<string, EncryptionSettings>;\n\n public constructor() {\n this.cache = new Map<string, EncryptionSettings>();\n }\n\n public async create(\n id: string,\n containerRid: string,\n partitionKeyPaths: string[],\n clientEncryptionPolicy: ClientEncryptionPolicy,\n ): Promise<EncryptionSettings> {\n const encryptionSettings = new EncryptionSettings(id, containerRid, partitionKeyPaths);\n if (!clientEncryptionPolicy) return;\n\n for (const includedPath of clientEncryptionPolicy.includedPaths) {\n const encryptionSettingForProperty = new EncryptionSettingForProperty(includedPath);\n encryptionSettings.pathsToEncrypt.push(includedPath.path);\n encryptionSettings.setEncryptionSettingForProperty(\n includedPath.path,\n encryptionSettingForProperty,\n );\n }\n this.set(id, encryptionSettings);\n return encryptionSettings;\n }\n\n public get(key: string): EncryptionSettings | undefined {\n return this.cache.get(key);\n }\n\n public set(key: string, encryptionSettings: EncryptionSettings): void {\n this.cache.set(key, encryptionSettings);\n }\n}\n"]}
@@ -10,6 +10,8 @@ const KeyEncryptionKey_js_1 = require("../KeyEncryptionKey.js");
10
10
  * @hidden
11
11
  */
12
12
  class KeyEncryptionKeyCache {
13
+ // key is JSON.stringify([name, path])
14
+ cache;
13
15
  constructor() {
14
16
  this.cache = new Map();
15
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KeyEncryptionKeyCache.js","sourceRoot":"","sources":["../../../../src/encryption/Cache/KeyEncryptionKeyCache.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAGlC,gEAA0D;AAE1D;;;;GAIG;AACH,MAAa,qBAAqB;IAIhC;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,CAAC;IAEM,WAAW,CAChB,IAAY,EACZ,IAAY,EACZ,gBAA4C;QAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,gBAAgB,GAAG,IAAI,sCAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACtE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,GAAG,CAAC,GAAW;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACO,GAAG,CAAC,GAAW,EAAE,gBAAkC;QACzD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACxC,CAAC;CACF;AA5BD,sDA4BC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { EncryptionKeyStoreProvider } from \"../EncryptionKeyStoreProvider.js\";\nimport { KeyEncryptionKey } from \"../KeyEncryptionKey.js\";\n\n/**\n * The cache used to store the key encryption keys.\n * see {@link KeyEncryptionKey}\n * @hidden\n */\nexport class KeyEncryptionKeyCache {\n // key is JSON.stringify([name, path])\n public cache: Map<string, KeyEncryptionKey>;\n\n constructor() {\n this.cache = new Map<string, KeyEncryptionKey>();\n }\n\n public getOrCreate(\n name: string,\n path: string,\n keyStoreProvider: EncryptionKeyStoreProvider,\n ): KeyEncryptionKey {\n const key = JSON.stringify([name, path]);\n let keyEncryptionKey = this.get(key);\n if (!keyEncryptionKey) {\n keyEncryptionKey = new KeyEncryptionKey(name, path, keyStoreProvider);\n this.set(key, keyEncryptionKey);\n }\n return keyEncryptionKey;\n }\n\n private get(key: string): KeyEncryptionKey | undefined {\n return this.cache.get(key);\n }\n private set(key: string, keyEncryptionKey: KeyEncryptionKey): void {\n this.cache.set(key, keyEncryptionKey);\n }\n}\n"]}
1
+ {"version":3,"file":"KeyEncryptionKeyCache.js","sourceRoot":"","sources":["../../../../src/encryption/Cache/KeyEncryptionKeyCache.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAGlC,gEAA0D;AAE1D;;;;GAIG;AACH,MAAa,qBAAqB;IAChC,sCAAsC;IAC/B,KAAK,CAAgC;IAE5C;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,CAAC;IAEM,WAAW,CAChB,IAAY,EACZ,IAAY,EACZ,gBAA4C;QAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,gBAAgB,GAAG,IAAI,sCAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACtE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,GAAG,CAAC,GAAW;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACO,GAAG,CAAC,GAAW,EAAE,gBAAkC;QACzD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACxC,CAAC;CACF;AA5BD,sDA4BC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { EncryptionKeyStoreProvider } from \"../EncryptionKeyStoreProvider.js\";\nimport { KeyEncryptionKey } from \"../KeyEncryptionKey.js\";\n\n/**\n * The cache used to store the key encryption keys.\n * see {@link KeyEncryptionKey}\n * @hidden\n */\nexport class KeyEncryptionKeyCache {\n // key is JSON.stringify([name, path])\n public cache: Map<string, KeyEncryptionKey>;\n\n constructor() {\n this.cache = new Map<string, KeyEncryptionKey>();\n }\n\n public getOrCreate(\n name: string,\n path: string,\n keyStoreProvider: EncryptionKeyStoreProvider,\n ): KeyEncryptionKey {\n const key = JSON.stringify([name, path]);\n let keyEncryptionKey = this.get(key);\n if (!keyEncryptionKey) {\n keyEncryptionKey = new KeyEncryptionKey(name, path, keyStoreProvider);\n this.set(key, keyEncryptionKey);\n }\n return keyEncryptionKey;\n }\n\n private get(key: string): KeyEncryptionKey | undefined {\n return this.cache.get(key);\n }\n private set(key: string, keyEncryptionKey: KeyEncryptionKey): void {\n this.cache.set(key, keyEncryptionKey);\n }\n}\n"]}
@@ -13,6 +13,11 @@ const time_js_1 = require("../../utils/time.js");
13
13
  * @hidden
14
14
  */
15
15
  class ProtectedDataEncryptionKeyCache {
16
+ cacheTimeToLive;
17
+ // key is JSON.stringify([encryptionKeyId, keyEncryptionKey.name, keyEncryptionKey.path, encryptedValue.toString("hex")])
18
+ cache;
19
+ // interval for clear cache to run
20
+ cacheRefresher;
16
21
  constructor(cacheTimeToLive) {
17
22
  this.cacheTimeToLive = cacheTimeToLive;
18
23
  this.cache = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"ProtectedDataEncryptionKeyCache.js","sourceRoot":"","sources":["../../../../src/encryption/Cache/ProtectedDataEncryptionKeyCache.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { randomBytes } from \"node:crypto\";\nimport { ProtectedDataEncryptionKey } from \"../EncryptionKey/ProtectedDataEncryptionKey.js\";\nimport type { KeyEncryptionKey } from \"../KeyEncryptionKey.js\";\nimport { Constants } from \"../../common/index.js\";\nimport { startBackgroundTask } from \"../../utils/time.js\";\n\n/**\n * The cache used to store the protected data encryption key.\n * see {@link ProtectedDataEncryptionKey}\n * @hidden\n */\nexport class ProtectedDataEncryptionKeyCache {\n // key is JSON.stringify([encryptionKeyId, keyEncryptionKey.name, keyEncryptionKey.path, encryptedValue.toString(\"hex\")])\n private cache: Map<string, [Date, ProtectedDataEncryptionKey]>;\n // interval for clear cache to run\n cacheRefresher: NodeJS.Timeout;\n\n constructor(private cacheTimeToLive: number) {\n this.cache = new Map<string, [Date, ProtectedDataEncryptionKey]>();\n this.clearCacheOnTtlExpiry();\n }\n\n public get(key: string): ProtectedDataEncryptionKey | undefined {\n if (!this.cache.has(key)) {\n return undefined;\n }\n return this.cache.get(key)[1];\n }\n\n private set(key: string, protectedDataEncryptionKey: ProtectedDataEncryptionKey): void {\n if (this.cacheTimeToLive === 0) {\n return;\n }\n this.cache.set(key, [new Date(), protectedDataEncryptionKey]);\n }\n\n private async clearCacheOnTtlExpiry(): Promise<void> {\n this.cacheRefresher = startBackgroundTask(async () => {\n const now = new Date();\n for (const key of this.cache.keys()) {\n if (now.getTime() - this.cache.get(key)[0].getTime() > this.cacheTimeToLive) {\n this.cache.delete(key);\n }\n }\n }, Constants.EncryptionCacheRefreshIntervalInMs);\n }\n\n private async createProtectedDataEncryptionKey(\n name: string,\n keyEncryptionKey: KeyEncryptionKey,\n encryptedValue?: Buffer,\n ): Promise<ProtectedDataEncryptionKey> {\n let rawKey: Buffer;\n let encryptedKey: Buffer;\n if (encryptedValue) {\n rawKey = await keyEncryptionKey.unwrapEncryptionKey(encryptedValue);\n encryptedKey = encryptedValue;\n } else {\n rawKey = this.generateColumnEncryptionKey();\n encryptedKey = await keyEncryptionKey.wrapEncryptionKey(rawKey);\n }\n const newKey = new ProtectedDataEncryptionKey(name, keyEncryptionKey, rawKey, encryptedKey);\n if (this.cacheTimeToLive !== 0) {\n const key = JSON.stringify([\n name,\n keyEncryptionKey.name,\n keyEncryptionKey.path,\n encryptedKey.toString(\"hex\"),\n ]);\n this.set(key, newKey);\n }\n return newKey;\n }\n\n public async getOrCreate(\n name: string,\n keyEncryptionKey: KeyEncryptionKey,\n encryptedValue?: Uint8Array,\n forceRefresh?: boolean,\n ): Promise<ProtectedDataEncryptionKey> {\n const encryptedValueBuffer = encryptedValue ? Buffer.from(encryptedValue) : undefined;\n if (this.cacheTimeToLive === 0 || forceRefresh) {\n return this.createProtectedDataEncryptionKey(name, keyEncryptionKey, encryptedValueBuffer);\n }\n\n if (encryptedValueBuffer) {\n const key = JSON.stringify([\n name,\n keyEncryptionKey.name,\n keyEncryptionKey.path,\n encryptedValueBuffer.toString(\"hex\"),\n ]);\n const protectedDataEncryptionKey = this.get(key);\n if (protectedDataEncryptionKey) {\n return protectedDataEncryptionKey;\n }\n }\n return this.createProtectedDataEncryptionKey(name, keyEncryptionKey, encryptedValueBuffer);\n }\n\n private generateColumnEncryptionKey(): Buffer {\n return randomBytes(32);\n }\n}\n"]}
1
+ {"version":3,"file":"ProtectedDataEncryptionKeyCache.js","sourceRoot":"","sources":["../../../../src/encryption/Cache/ProtectedDataEncryptionKeyCache.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { randomBytes } from \"node:crypto\";\nimport { ProtectedDataEncryptionKey } from \"../EncryptionKey/ProtectedDataEncryptionKey.js\";\nimport type { KeyEncryptionKey } from \"../KeyEncryptionKey.js\";\nimport { Constants } from \"../../common/index.js\";\nimport { startBackgroundTask } from \"../../utils/time.js\";\n\n/**\n * The cache used to store the protected data encryption key.\n * see {@link ProtectedDataEncryptionKey}\n * @hidden\n */\nexport class ProtectedDataEncryptionKeyCache {\n // key is JSON.stringify([encryptionKeyId, keyEncryptionKey.name, keyEncryptionKey.path, encryptedValue.toString(\"hex\")])\n private cache: Map<string, [Date, ProtectedDataEncryptionKey]>;\n // interval for clear cache to run\n cacheRefresher: NodeJS.Timeout;\n\n constructor(private cacheTimeToLive: number) {\n this.cache = new Map<string, [Date, ProtectedDataEncryptionKey]>();\n this.clearCacheOnTtlExpiry();\n }\n\n public get(key: string): ProtectedDataEncryptionKey | undefined {\n if (!this.cache.has(key)) {\n return undefined;\n }\n return this.cache.get(key)[1];\n }\n\n private set(key: string, protectedDataEncryptionKey: ProtectedDataEncryptionKey): void {\n if (this.cacheTimeToLive === 0) {\n return;\n }\n this.cache.set(key, [new Date(), protectedDataEncryptionKey]);\n }\n\n private async clearCacheOnTtlExpiry(): Promise<void> {\n this.cacheRefresher = startBackgroundTask(async () => {\n const now = new Date();\n for (const key of this.cache.keys()) {\n if (now.getTime() - this.cache.get(key)[0].getTime() > this.cacheTimeToLive) {\n this.cache.delete(key);\n }\n }\n }, Constants.EncryptionCacheRefreshIntervalInMs);\n }\n\n private async createProtectedDataEncryptionKey(\n name: string,\n keyEncryptionKey: KeyEncryptionKey,\n encryptedValue?: Buffer,\n ): Promise<ProtectedDataEncryptionKey> {\n let rawKey: Buffer;\n let encryptedKey: Buffer;\n if (encryptedValue) {\n rawKey = await keyEncryptionKey.unwrapEncryptionKey(encryptedValue);\n encryptedKey = encryptedValue;\n } else {\n rawKey = this.generateColumnEncryptionKey();\n encryptedKey = await keyEncryptionKey.wrapEncryptionKey(rawKey);\n }\n const newKey = new ProtectedDataEncryptionKey(name, keyEncryptionKey, rawKey, encryptedKey);\n if (this.cacheTimeToLive !== 0) {\n const key = JSON.stringify([\n name,\n keyEncryptionKey.name,\n keyEncryptionKey.path,\n encryptedKey.toString(\"hex\"),\n ]);\n this.set(key, newKey);\n }\n return newKey;\n }\n\n public async getOrCreate(\n name: string,\n keyEncryptionKey: KeyEncryptionKey,\n encryptedValue?: Uint8Array,\n forceRefresh?: boolean,\n ): Promise<ProtectedDataEncryptionKey> {\n const encryptedValueBuffer = encryptedValue ? Buffer.from(encryptedValue) : undefined;\n if (this.cacheTimeToLive === 0 || forceRefresh) {\n return this.createProtectedDataEncryptionKey(name, keyEncryptionKey, encryptedValueBuffer);\n }\n\n if (encryptedValueBuffer) {\n const key = JSON.stringify([\n name,\n keyEncryptionKey.name,\n keyEncryptionKey.path,\n encryptedValueBuffer.toString(\"hex\"),\n ]);\n const protectedDataEncryptionKey = this.get(key);\n if (protectedDataEncryptionKey) {\n return protectedDataEncryptionKey;\n }\n }\n return this.createProtectedDataEncryptionKey(name, keyEncryptionKey, encryptedValueBuffer);\n }\n\n private generateColumnEncryptionKey(): Buffer {\n return randomBytes(32);\n }\n}\n"]}
@@ -10,6 +10,8 @@ class ClientEncryptionKeyResponse extends ResourceResponse_js_1.ResourceResponse
10
10
  super(resource, headers, statusCode, diagnostics);
11
11
  this.clientEncryptionKeyProperties = clientEncryptionKeyProperties;
12
12
  }
13
+ /** Properties of the client encryption key */
14
+ clientEncryptionKeyProperties;
13
15
  }
14
16
  exports.ClientEncryptionKeyResponse = ClientEncryptionKeyResponse;
15
17
  //# sourceMappingURL=ClientEncryptionKeyResponse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientEncryptionKeyResponse.js","sourceRoot":"","sources":["../../../../src/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC,2EAAqE;AAIrE,yDAAyD;AACzD,MAAa,2BAA4B,SAAQ,sCAA0B;IACzE,YACE,QAAkB,EAClB,OAAsB,EACtB,UAAkB,EAClB,6BAA4D,EAC5D,WAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;IACrE,CAAC;CAGF;AAbD,kEAaC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CosmosDiagnostics } from \"../../CosmosDiagnostics.js\";\nimport { CosmosHeaders } from \"../../queryExecutionContext/index.js\";\nimport { ResourceResponse } from \"../../request/ResourceResponse.js\";\nimport { Resource } from \"../../client/Resource.js\";\nimport { ClientEncryptionKeyProperties } from \"./ClientEncryptionKeyProperties.js\";\n\n/** Response object for ClientEncryptionKey operations */\nexport class ClientEncryptionKeyResponse extends ResourceResponse<Resource> {\n constructor(\n resource: Resource,\n headers: CosmosHeaders,\n statusCode: number,\n clientEncryptionKeyProperties: ClientEncryptionKeyProperties,\n diagnostics: CosmosDiagnostics,\n ) {\n super(resource, headers, statusCode, diagnostics);\n this.clientEncryptionKeyProperties = clientEncryptionKeyProperties;\n }\n /** Properties of the client encryption key */\n public readonly clientEncryptionKeyProperties: ClientEncryptionKeyProperties;\n}\n"]}
1
+ {"version":3,"file":"ClientEncryptionKeyResponse.js","sourceRoot":"","sources":["../../../../src/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC,2EAAqE;AAIrE,yDAAyD;AACzD,MAAa,2BAA4B,SAAQ,sCAA0B;IACzE,YACE,QAAkB,EAClB,OAAsB,EACtB,UAAkB,EAClB,6BAA4D,EAC5D,WAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;IACrE,CAAC;IACD,8CAA8C;IAC9B,6BAA6B,CAAgC;CAC9E;AAbD,kEAaC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CosmosDiagnostics } from \"../../CosmosDiagnostics.js\";\nimport { CosmosHeaders } from \"../../queryExecutionContext/index.js\";\nimport { ResourceResponse } from \"../../request/ResourceResponse.js\";\nimport { Resource } from \"../../client/Resource.js\";\nimport { ClientEncryptionKeyProperties } from \"./ClientEncryptionKeyProperties.js\";\n\n/** Response object for ClientEncryptionKey operations */\nexport class ClientEncryptionKeyResponse extends ResourceResponse<Resource> {\n constructor(\n resource: Resource,\n headers: CosmosHeaders,\n statusCode: number,\n clientEncryptionKeyProperties: ClientEncryptionKeyProperties,\n diagnostics: CosmosDiagnostics,\n ) {\n super(resource, headers, statusCode, diagnostics);\n this.clientEncryptionKeyProperties = clientEncryptionKeyProperties;\n }\n /** Properties of the client encryption key */\n public readonly clientEncryptionKeyProperties: ClientEncryptionKeyProperties;\n}\n"]}
@@ -3,7 +3,6 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.EncryptionItemQueryIterator = void 0;
6
- const tslib_1 = require("tslib");
7
6
  const constants_js_1 = require("../common/constants.js");
8
7
  const DiagnosticNodeInternal_js_1 = require("../diagnostics/DiagnosticNodeInternal.js");
9
8
  const queryIterator_js_1 = require("../queryIterator.js");
@@ -14,6 +13,9 @@ const diagnostics_js_1 = require("../utils/diagnostics.js");
14
13
  * extends @see {@link QueryIterator}
15
14
  */
16
15
  class EncryptionItemQueryIterator extends queryIterator_js_1.QueryIterator {
16
+ container;
17
+ encryptionClientContext;
18
+ encryptionOptions;
17
19
  constructor(clientContext, query, options, fetchFunctions, container) {
18
20
  super(clientContext, query, options, fetchFunctions, container.url, constants_js_1.ResourceType.item);
19
21
  this.container = container;
@@ -23,36 +25,32 @@ class EncryptionItemQueryIterator extends queryIterator_js_1.QueryIterator {
23
25
  /**
24
26
  * Gets an async iterator that will yield results until completion.
25
27
  */
26
- getAsyncIterator() {
27
- return tslib_1.__asyncGenerator(this, arguments, function* getAsyncIterator_1() {
28
- var _a;
29
- let response;
30
- const diagnosticNode = new DiagnosticNodeInternal_js_1.DiagnosticNodeInternal(this.encryptionClientContext.diagnosticLevel, DiagnosticNodeInternal_js_1.DiagnosticNodeType.CLIENT_REQUEST_NODE, null);
31
- try {
32
- response = yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues(queryIterator_js_1.QueryIterator.prototype.getAsyncIteratorInternal.call(this, diagnosticNode))));
33
- }
34
- catch (error) {
35
- yield tslib_1.__await(this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error));
36
- }
37
- if (((_a = response === null || response === void 0 ? void 0 : response.resources) === null || _a === void 0 ? void 0 : _a.length) > 0) {
38
- let count = 0;
39
- diagnosticNode.beginEncryptionDiagnostics(constants_js_1.Constants.Encryption.DiagnosticsDecryptOperation);
40
- for (let resource of response.resources) {
41
- const { body, propertiesDecryptedCount } = yield tslib_1.__await(this.container.encryptionProcessor.decrypt(resource));
42
- resource = body;
43
- count += propertiesDecryptedCount;
44
- }
45
- diagnosticNode.endEncryptionDiagnostics(constants_js_1.Constants.Encryption.DiagnosticsDecryptOperation, count);
28
+ async *getAsyncIterator() {
29
+ let response;
30
+ const diagnosticNode = new DiagnosticNodeInternal_js_1.DiagnosticNodeInternal(this.encryptionClientContext.diagnosticLevel, DiagnosticNodeInternal_js_1.DiagnosticNodeType.CLIENT_REQUEST_NODE, null);
31
+ try {
32
+ response = yield* queryIterator_js_1.QueryIterator.prototype.getAsyncIteratorInternal.call(this, diagnosticNode);
33
+ }
34
+ catch (error) {
35
+ await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);
36
+ }
37
+ if (response?.resources?.length > 0) {
38
+ let count = 0;
39
+ diagnosticNode.beginEncryptionDiagnostics(constants_js_1.Constants.Encryption.DiagnosticsDecryptOperation);
40
+ for (let resource of response.resources) {
41
+ const { body, propertiesDecryptedCount } = await this.container.encryptionProcessor.decrypt(resource);
42
+ resource = body;
43
+ count += propertiesDecryptedCount;
46
44
  }
47
- yield yield tslib_1.__await(response);
48
- });
45
+ diagnosticNode.endEncryptionDiagnostics(constants_js_1.Constants.Encryption.DiagnosticsDecryptOperation, count);
46
+ }
47
+ yield response;
49
48
  }
50
49
  /**
51
50
  * Fetch all pages for the query and return a single FeedResponse.
52
51
  */
53
52
  async fetchAll() {
54
53
  return (0, diagnostics_js_1.withDiagnostics)(async (diagnosticNode) => {
55
- var _a;
56
54
  let response;
57
55
  try {
58
56
  response = await queryIterator_js_1.QueryIterator.prototype.fetchAllInternal.call(this, diagnosticNode);
@@ -60,7 +58,7 @@ class EncryptionItemQueryIterator extends queryIterator_js_1.QueryIterator {
60
58
  catch (error) {
61
59
  await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);
62
60
  }
63
- if (((_a = response === null || response === void 0 ? void 0 : response.resources) === null || _a === void 0 ? void 0 : _a.length) > 0) {
61
+ if (response?.resources?.length > 0) {
64
62
  let count = 0;
65
63
  diagnosticNode.beginEncryptionDiagnostics(constants_js_1.Constants.Encryption.DiagnosticsDecryptOperation);
66
64
  for (let resource of response.resources) {
@@ -78,7 +76,6 @@ class EncryptionItemQueryIterator extends queryIterator_js_1.QueryIterator {
78
76
  */
79
77
  async fetchNext() {
80
78
  return (0, diagnostics_js_1.withDiagnostics)(async (diagnosticNode) => {
81
- var _a;
82
79
  let response;
83
80
  try {
84
81
  response = await queryIterator_js_1.QueryIterator.prototype.fetchNextInternal.call(this, diagnosticNode);
@@ -86,7 +83,7 @@ class EncryptionItemQueryIterator extends queryIterator_js_1.QueryIterator {
86
83
  catch (error) {
87
84
  await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);
88
85
  }
89
- if (((_a = response === null || response === void 0 ? void 0 : response.resources) === null || _a === void 0 ? void 0 : _a.length) > 0) {
86
+ if (response?.resources?.length > 0) {
90
87
  let count = 0;
91
88
  diagnosticNode.beginEncryptionDiagnostics(constants_js_1.Constants.Encryption.DiagnosticsDecryptOperation);
92
89
  for (let resource of response.resources) {
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionItemQueryIterator.js","sourceRoot":"","sources":["../../../src/encryption/EncryptionItemQueryIterator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Container } from \"../client/index.js\";\nimport type { ClientContext } from \"../ClientContext.js\";\nimport { Constants, ResourceType } from \"../common/constants.js\";\nimport {\n DiagnosticNodeInternal,\n DiagnosticNodeType,\n} from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type { SqlQuerySpec, FetchFunctionCallback } from \"../queryExecutionContext/index.js\";\nimport { QueryIterator } from \"../queryIterator.js\";\nimport type { FeedOptions, FeedResponse } from \"../request/index.js\";\nimport { withDiagnostics } from \"../utils/diagnostics.js\";\n\n/**\n * @internal\n * Provides the iterator for handling encrypted items in the Azure Cosmos DB database service.\n * extends @see {@link QueryIterator}\n */\nexport class EncryptionItemQueryIterator<Item> extends QueryIterator<Item> {\n private container: Container;\n private encryptionClientContext: ClientContext;\n private encryptionOptions: FeedOptions;\n\n constructor(\n clientContext: ClientContext,\n query: SqlQuerySpec | string,\n options: FeedOptions,\n fetchFunctions: FetchFunctionCallback | FetchFunctionCallback[],\n container: Container,\n ) {\n super(clientContext, query, options, fetchFunctions, container.url, ResourceType.item);\n this.container = container;\n this.encryptionClientContext = clientContext;\n this.encryptionOptions = options;\n }\n\n /**\n * Gets an async iterator that will yield results until completion.\n */\n public override async *getAsyncIterator(): AsyncIterable<FeedResponse<Item>> {\n let response: FeedResponse<Item>;\n const diagnosticNode = new DiagnosticNodeInternal(\n this.encryptionClientContext.diagnosticLevel,\n DiagnosticNodeType.CLIENT_REQUEST_NODE,\n null,\n );\n try {\n response = yield* QueryIterator.prototype.getAsyncIteratorInternal.call(this, diagnosticNode);\n } catch (error) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n if (response?.resources?.length > 0) {\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsDecryptOperation);\n for (let resource of response.resources) {\n const { body, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(resource);\n resource = body;\n count += propertiesDecryptedCount;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n count,\n );\n }\n yield response;\n }\n\n /**\n * Fetch all pages for the query and return a single FeedResponse.\n */\n public override async fetchAll(): Promise<FeedResponse<Item>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n let response: FeedResponse<Item>;\n try {\n response = await QueryIterator.prototype.fetchAllInternal.call(this, diagnosticNode);\n } catch (error) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n if (response?.resources?.length > 0) {\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsDecryptOperation);\n for (let resource of response.resources) {\n const { body, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(resource);\n resource = body;\n count += propertiesDecryptedCount;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n count,\n );\n }\n return response;\n }, this.encryptionClientContext);\n }\n\n /**\n * Retrieve the next batch from the feed.\n */\n public override async fetchNext(): Promise<FeedResponse<Item>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n let response: FeedResponse<Item>;\n try {\n response = await QueryIterator.prototype.fetchNextInternal.call(this, diagnosticNode);\n } catch (error) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n if (response?.resources?.length > 0) {\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsDecryptOperation);\n for (let resource of response.resources) {\n const { body, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(resource);\n resource = body;\n count += propertiesDecryptedCount;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n count,\n );\n }\n return response;\n }, this.encryptionClientContext);\n }\n /**\n * @internal\n */\n public override async init(diagnosticNode: DiagnosticNodeInternal): Promise<void> {\n // Ensure encryption is initialized and set rid in options\n await this.container.checkAndInitializeEncryption();\n this.encryptionOptions.containerRid = this.container._rid;\n await QueryIterator.prototype.init.call(this, diagnosticNode);\n }\n}\n"]}
1
+ {"version":3,"file":"EncryptionItemQueryIterator.js","sourceRoot":"","sources":["../../../src/encryption/EncryptionItemQueryIterator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Container } from \"../client/index.js\";\nimport type { ClientContext } from \"../ClientContext.js\";\nimport { Constants, ResourceType } from \"../common/constants.js\";\nimport {\n DiagnosticNodeInternal,\n DiagnosticNodeType,\n} from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type { SqlQuerySpec, FetchFunctionCallback } from \"../queryExecutionContext/index.js\";\nimport { QueryIterator } from \"../queryIterator.js\";\nimport type { FeedOptions, FeedResponse } from \"../request/index.js\";\nimport { withDiagnostics } from \"../utils/diagnostics.js\";\n\n/**\n * @internal\n * Provides the iterator for handling encrypted items in the Azure Cosmos DB database service.\n * extends @see {@link QueryIterator}\n */\nexport class EncryptionItemQueryIterator<Item> extends QueryIterator<Item> {\n private container: Container;\n private encryptionClientContext: ClientContext;\n private encryptionOptions: FeedOptions;\n\n constructor(\n clientContext: ClientContext,\n query: SqlQuerySpec | string,\n options: FeedOptions,\n fetchFunctions: FetchFunctionCallback | FetchFunctionCallback[],\n container: Container,\n ) {\n super(clientContext, query, options, fetchFunctions, container.url, ResourceType.item);\n this.container = container;\n this.encryptionClientContext = clientContext;\n this.encryptionOptions = options;\n }\n\n /**\n * Gets an async iterator that will yield results until completion.\n */\n public override async *getAsyncIterator(): AsyncIterable<FeedResponse<Item>> {\n let response: FeedResponse<Item>;\n const diagnosticNode = new DiagnosticNodeInternal(\n this.encryptionClientContext.diagnosticLevel,\n DiagnosticNodeType.CLIENT_REQUEST_NODE,\n null,\n );\n try {\n response = yield* QueryIterator.prototype.getAsyncIteratorInternal.call(this, diagnosticNode);\n } catch (error) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n if (response?.resources?.length > 0) {\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsDecryptOperation);\n for (let resource of response.resources) {\n const { body, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(resource);\n resource = body;\n count += propertiesDecryptedCount;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n count,\n );\n }\n yield response;\n }\n\n /**\n * Fetch all pages for the query and return a single FeedResponse.\n */\n public override async fetchAll(): Promise<FeedResponse<Item>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n let response: FeedResponse<Item>;\n try {\n response = await QueryIterator.prototype.fetchAllInternal.call(this, diagnosticNode);\n } catch (error) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n if (response?.resources?.length > 0) {\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsDecryptOperation);\n for (let resource of response.resources) {\n const { body, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(resource);\n resource = body;\n count += propertiesDecryptedCount;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n count,\n );\n }\n return response;\n }, this.encryptionClientContext);\n }\n\n /**\n * Retrieve the next batch from the feed.\n */\n public override async fetchNext(): Promise<FeedResponse<Item>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n let response: FeedResponse<Item>;\n try {\n response = await QueryIterator.prototype.fetchNextInternal.call(this, diagnosticNode);\n } catch (error) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n if (response?.resources?.length > 0) {\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsDecryptOperation);\n for (let resource of response.resources) {\n const { body, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(resource);\n resource = body;\n count += propertiesDecryptedCount;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n count,\n );\n }\n return response;\n }, this.encryptionClientContext);\n }\n /**\n * @internal\n */\n public override async init(diagnosticNode: DiagnosticNodeInternal): Promise<void> {\n // Ensure encryption is initialized and set rid in options\n await this.container.checkAndInitializeEncryption();\n this.encryptionOptions.containerRid = this.container._rid;\n await QueryIterator.prototype.init.call(this, diagnosticNode);\n }\n}\n"]}
@@ -5,9 +5,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.DataEncryptionKey = void 0;
6
6
  const node_crypto_1 = require("node:crypto");
7
7
  class DataEncryptionKey {
8
+ rootKeyBuffer;
9
+ keySizeInBits = 256;
10
+ keySizeInBytes = this.keySizeInBits / 8;
11
+ encryptionKeyBuffer;
12
+ macKeyBuffer;
13
+ ivKeyBuffer;
14
+ name;
8
15
  constructor(rootKey, name) {
9
- this.keySizeInBits = 256;
10
- this.keySizeInBytes = this.keySizeInBits / 8;
11
16
  if (rootKey.length !== this.keySizeInBytes) {
12
17
  throw new Error("Invalid root key size");
13
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataEncryptionKey.js","sourceRoot":"","sources":["../../../../src/encryption/EncryptionKey/DataEncryptionKey.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,6CAAyC;AAEzC,MAAsB,iBAAiB;IAUrC,YAAY,OAAe,EAAE,IAAY;QARjC,kBAAa,GAAG,GAAG,CAAC;QACpB,mBAAc,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAQ9C,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,iBAAiB,GAAG,kHAAkH,IAAI,CAAC,aAAa,EAAE,CAAC;QACjK,MAAM,UAAU,GAAG,2GAA2G,IAAI,CAAC,aAAa,EAAE,CAAC;QACnJ,MAAM,SAAS,GAAG,0GAA0G,IAAI,CAAC,aAAa,EAAE,CAAC;QAEjJ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACzF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC;IAEO,iBAAiB,CAAC,SAAiB,EAAE,GAAW;QACtD,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AA/BD,8CA+BC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"node:crypto\";\n\nexport abstract class DataEncryptionKey {\n private rootKeyBuffer: Buffer;\n private keySizeInBits = 256;\n private keySizeInBytes = this.keySizeInBits / 8;\n\n public encryptionKeyBuffer: Buffer;\n public macKeyBuffer: Buffer;\n public ivKeyBuffer: Buffer;\n public name: string;\n\n constructor(rootKey: Buffer, name: string) {\n if (rootKey.length !== this.keySizeInBytes) {\n throw new Error(\"Invalid root key size\");\n }\n this.rootKeyBuffer = rootKey;\n this.name = name;\n\n const encryptionKeySalt = `Microsoft SQL Server cell encryption key with encryption algorithm:AEAD_AES_256_CBC_HMAC_SHA256 and key length:${this.keySizeInBits}`;\n const macKeySalt = `Microsoft SQL Server cell MAC key with encryption algorithm:AEAD_AES_256_CBC_HMAC_SHA256 and key length:${this.keySizeInBits}`;\n const ivKeySalt = `Microsoft SQL Server cell IV key with encryption algorithm:AEAD_AES_256_CBC_HMAC_SHA256 and key length:${this.keySizeInBits}`;\n\n this.encryptionKeyBuffer = this.getHmacWithSha256(encryptionKeySalt, this.rootKeyBuffer);\n this.macKeyBuffer = this.getHmacWithSha256(macKeySalt, this.rootKeyBuffer);\n this.ivKeyBuffer = this.getHmacWithSha256(ivKeySalt, this.rootKeyBuffer);\n }\n\n private getHmacWithSha256(plainText: string, key: Buffer): Buffer {\n const hmac = createHmac(\"sha256\", key);\n hmac.update(Buffer.from(plainText, \"utf16le\"));\n return hmac.digest();\n }\n}\n"]}
1
+ {"version":3,"file":"DataEncryptionKey.js","sourceRoot":"","sources":["../../../../src/encryption/EncryptionKey/DataEncryptionKey.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,6CAAyC;AAEzC,MAAsB,iBAAiB;IAC7B,aAAa,CAAS;IACtB,aAAa,GAAG,GAAG,CAAC;IACpB,cAAc,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAEzC,mBAAmB,CAAS;IAC5B,YAAY,CAAS;IACrB,WAAW,CAAS;IACpB,IAAI,CAAS;IAEpB,YAAY,OAAe,EAAE,IAAY;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,iBAAiB,GAAG,kHAAkH,IAAI,CAAC,aAAa,EAAE,CAAC;QACjK,MAAM,UAAU,GAAG,2GAA2G,IAAI,CAAC,aAAa,EAAE,CAAC;QACnJ,MAAM,SAAS,GAAG,0GAA0G,IAAI,CAAC,aAAa,EAAE,CAAC;QAEjJ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACzF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC;IAEO,iBAAiB,CAAC,SAAiB,EAAE,GAAW;QACtD,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AA/BD,8CA+BC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"node:crypto\";\n\nexport abstract class DataEncryptionKey {\n private rootKeyBuffer: Buffer;\n private keySizeInBits = 256;\n private keySizeInBytes = this.keySizeInBits / 8;\n\n public encryptionKeyBuffer: Buffer;\n public macKeyBuffer: Buffer;\n public ivKeyBuffer: Buffer;\n public name: string;\n\n constructor(rootKey: Buffer, name: string) {\n if (rootKey.length !== this.keySizeInBytes) {\n throw new Error(\"Invalid root key size\");\n }\n this.rootKeyBuffer = rootKey;\n this.name = name;\n\n const encryptionKeySalt = `Microsoft SQL Server cell encryption key with encryption algorithm:AEAD_AES_256_CBC_HMAC_SHA256 and key length:${this.keySizeInBits}`;\n const macKeySalt = `Microsoft SQL Server cell MAC key with encryption algorithm:AEAD_AES_256_CBC_HMAC_SHA256 and key length:${this.keySizeInBits}`;\n const ivKeySalt = `Microsoft SQL Server cell IV key with encryption algorithm:AEAD_AES_256_CBC_HMAC_SHA256 and key length:${this.keySizeInBits}`;\n\n this.encryptionKeyBuffer = this.getHmacWithSha256(encryptionKeySalt, this.rootKeyBuffer);\n this.macKeyBuffer = this.getHmacWithSha256(macKeySalt, this.rootKeyBuffer);\n this.ivKeyBuffer = this.getHmacWithSha256(ivKeySalt, this.rootKeyBuffer);\n }\n\n private getHmacWithSha256(plainText: string, key: Buffer): Buffer {\n const hmac = createHmac(\"sha256\", key);\n hmac.update(Buffer.from(plainText, \"utf16le\"));\n return hmac.digest();\n }\n}\n"]}
@@ -9,7 +9,6 @@ import type { KeyEncryptionKey } from "../KeyEncryptionKey.js";
9
9
  export declare class ProtectedDataEncryptionKey extends DataEncryptionKey {
10
10
  keyEncryptionKey: KeyEncryptionKey;
11
11
  encryptedValue: Buffer;
12
- name: string;
13
12
  constructor(name: string, keyEncryptionKey: KeyEncryptionKey, rawKey: Buffer, encryptedKey: Buffer);
14
13
  }
15
14
  //# sourceMappingURL=ProtectedDataEncryptionKey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProtectedDataEncryptionKey.d.ts","sourceRoot":"","sources":["../../../../src/encryption/EncryptionKey/ProtectedDataEncryptionKey.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;IACxD,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,cAAc,EAAE,MAAM,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;gBAGlB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM;CAOvB"}
1
+ {"version":3,"file":"ProtectedDataEncryptionKey.d.ts","sourceRoot":"","sources":["../../../../src/encryption/EncryptionKey/ProtectedDataEncryptionKey.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;IACxD,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,cAAc,EAAE,MAAM,CAAC;gBAG5B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM;CAOvB"}
@@ -11,6 +11,8 @@ const DataEncryptionKey_js_1 = require("./DataEncryptionKey.js");
11
11
  * @hidden
12
12
  */
13
13
  class ProtectedDataEncryptionKey extends DataEncryptionKey_js_1.DataEncryptionKey {
14
+ keyEncryptionKey;
15
+ encryptedValue;
14
16
  constructor(name, keyEncryptionKey, rawKey, encryptedKey) {
15
17
  super(rawKey, name);
16
18
  this.name = name;
@@ -1 +1 @@
1
- {"version":3,"file":"ProtectedDataEncryptionKey.js","sourceRoot":"","sources":["../../../../src/encryption/EncryptionKey/ProtectedDataEncryptionKey.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iEAA2D;AAG3D;;;;;GAKG;AACH,MAAa,0BAA2B,SAAQ,wCAAiB;IAO/D,YACE,IAAY,EACZ,gBAAkC,EAClC,MAAc,EACd,YAAoB;QAEpB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;IACrC,CAAC;CACF;AAlBD,gEAkBC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DataEncryptionKey } from \"./DataEncryptionKey.js\";\nimport type { KeyEncryptionKey } from \"../KeyEncryptionKey.js\";\n\n/**\n * A wrapper class around `DataEncryptionKey` that stores it in a protected form.\n * The `ProtectedDataEncryptionKey` class extends `DataEncryptionKey` and holds both the raw key and its encrypted form.\n * It also includes information about the `KeyEncryptionKey` used to encrypt the data encryption key.\n * @hidden\n */\nexport class ProtectedDataEncryptionKey extends DataEncryptionKey {\n public keyEncryptionKey: KeyEncryptionKey;\n\n public encryptedValue: Buffer;\n\n public name: string;\n\n public constructor(\n name: string,\n keyEncryptionKey: KeyEncryptionKey,\n rawKey: Buffer,\n encryptedKey: Buffer,\n ) {\n super(rawKey, name);\n this.name = name;\n this.keyEncryptionKey = keyEncryptionKey;\n this.encryptedValue = encryptedKey;\n }\n}\n"]}
1
+ {"version":3,"file":"ProtectedDataEncryptionKey.js","sourceRoot":"","sources":["../../../../src/encryption/EncryptionKey/ProtectedDataEncryptionKey.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iEAA2D;AAG3D;;;;;GAKG;AACH,MAAa,0BAA2B,SAAQ,wCAAiB;IACxD,gBAAgB,CAAmB;IAEnC,cAAc,CAAS;IAE9B,YACE,IAAY,EACZ,gBAAkC,EAClC,MAAc,EACd,YAAoB;QAEpB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;IACrC,CAAC;CACF;AAhBD,gEAgBC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DataEncryptionKey } from \"./DataEncryptionKey.js\";\nimport type { KeyEncryptionKey } from \"../KeyEncryptionKey.js\";\n\n/**\n * A wrapper class around `DataEncryptionKey` that stores it in a protected form.\n * The `ProtectedDataEncryptionKey` class extends `DataEncryptionKey` and holds both the raw key and its encrypted form.\n * It also includes information about the `KeyEncryptionKey` used to encrypt the data encryption key.\n * @hidden\n */\nexport class ProtectedDataEncryptionKey extends DataEncryptionKey {\n public keyEncryptionKey: KeyEncryptionKey;\n\n public encryptedValue: Buffer;\n\n public constructor(\n name: string,\n keyEncryptionKey: KeyEncryptionKey,\n rawKey: Buffer,\n encryptedKey: Buffer,\n ) {\n super(rawKey, name);\n this.name = name;\n this.keyEncryptionKey = keyEncryptionKey;\n this.encryptedValue = encryptedKey;\n }\n}\n"]}
@@ -10,14 +10,15 @@ const index_js_2 = require("../enums/index.js");
10
10
  * Implementation of EncryptionKeyResolver that uses Azure Key Vault for customer managed keys.
11
11
  */
12
12
  class AzureKeyVaultEncryptionKeyResolver {
13
+ credentials;
13
14
  constructor(credentials) {
14
- /**
15
- * Name of the resolver to use for client side encryption.
16
- * Currently only AzureKeyVault implementation is supported.
17
- */
18
- this.encryptionKeyResolverName = index_js_2.EncryptionKeyResolverName.AzureKeyVault;
19
15
  this.credentials = credentials;
20
16
  }
17
+ /**
18
+ * Name of the resolver to use for client side encryption.
19
+ * Currently only AzureKeyVault implementation is supported.
20
+ */
21
+ encryptionKeyResolverName = index_js_2.EncryptionKeyResolverName.AzureKeyVault;
21
22
  /**
22
23
  * wraps the given key using the specified key encryption key path and algorithm.
23
24
  * @param encryptionKeyId - path to the customer managed key to be used for wrapping. For Azure Key Vault, this is url of the key in the vault.
@@ -1 +1 @@
1
- {"version":3,"file":"AzureKeyVaultEncryptionKeyResolver.js","sourceRoot":"","sources":["../../../../src/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { EncryptionKeyResolver } from \"./EncryptionKeyResolver.js\";\nimport type { KeyWrapAlgorithm } from \"@azure/keyvault-keys\";\nimport { KeyClient } from \"@azure/keyvault-keys\";\nimport { ErrorResponse } from \"../../request/index.js\";\nimport { EncryptionKeyResolverName } from \"../enums/index.js\";\n\n/**\n * Implementation of EncryptionKeyResolver that uses Azure Key Vault for customer managed keys.\n */\nexport class AzureKeyVaultEncryptionKeyResolver implements EncryptionKeyResolver {\n private credentials: TokenCredential;\n\n constructor(credentials: TokenCredential) {\n this.credentials = credentials;\n }\n /**\n * Name of the resolver to use for client side encryption.\n * Currently only AzureKeyVault implementation is supported.\n */\n public encryptionKeyResolverName = EncryptionKeyResolverName.AzureKeyVault;\n /**\n * wraps the given key using the specified key encryption key path and algorithm.\n * @param encryptionKeyId - path to the customer managed key to be used for wrapping. For Azure Key Vault, this is url of the key in the vault.\n * @param algorithm - algorithm to be used for wrapping.\n * @param unwrappedKey - dek to be wrapped.\n * @returns wrapped DEK.\n */\n public async wrapKey(\n encryptionKeyId: string,\n algorithm: string,\n unwrappedKey: Uint8Array,\n ): Promise<Uint8Array> {\n try {\n const origin = this.getOrigin(encryptionKeyId);\n const keyClient = new KeyClient(origin, this.credentials);\n const [keyName, keyVersion] = this.getKeyDetails(encryptionKeyId);\n const cryptographyClient = keyClient.getCryptographyClient(keyName, {\n keyVersion: keyVersion,\n });\n const res = await cryptographyClient.wrapKey(algorithm as KeyWrapAlgorithm, unwrappedKey);\n if (!res || !res.result) {\n throw new ErrorResponse(`Failed to wrap key: ${res}`);\n }\n return res.result;\n } catch (e) {\n throw new ErrorResponse(`Failed to wrap key: ${e.message}`);\n }\n }\n /**\n * Unwraps the given wrapped key using the specified key encryption key path and algorithm.\n * @param encryptionKeyId - path to the customer managed key to be used for unwrapping. For Azure Key Vault, this is url of the key in the vault.\n * @param algorithm - algorithm to be used for unwrapping.\n * @param wrappedKey - wrapped DEK.\n * @returns unwrapped DEK.\n */\n public async unwrapKey(\n encryptionKeyId: string,\n algorithm: string,\n wrappedKey: Uint8Array,\n ): Promise<Uint8Array> {\n try {\n const origin = this.getOrigin(encryptionKeyId);\n const keyClient = new KeyClient(origin, this.credentials);\n const [keyName, keyVersion] = this.getKeyDetails(encryptionKeyId);\n const cryptographyClient = keyClient.getCryptographyClient(keyName, {\n keyVersion: keyVersion,\n });\n const res = await cryptographyClient.unwrapKey(algorithm as KeyWrapAlgorithm, wrappedKey);\n if (!res || !res.result) {\n throw new ErrorResponse(`Failed to wrap key: ${res}`);\n }\n return res.result;\n } catch (e) {\n throw new ErrorResponse(`Failed to unwrap key: ${e.message}`);\n }\n }\n // TODO: improve this method to extract key name and version from the url\n private getKeyDetails(encryptionKeyId: string): [string, string] {\n let url;\n try {\n url = new URL(encryptionKeyId);\n const parts = url.pathname.split(\"/\");\n if (parts.length < 4 || parts.length > 5) {\n throw new ErrorResponse(\n `Invalid key url: ${encryptionKeyId}. Key url must be in the format https://<vault>.vault.azure.net/keys/<key-name>/<key-version>`,\n );\n }\n if (parts.length === 4 || parts.length === 5) {\n return [parts[2], parts[3]];\n }\n } catch (e) {\n throw new ErrorResponse(\n `Invalid key url: ${encryptionKeyId}. Key url must be in the format https://<vault>.vault.azure.net/keys/<key-name>/<key-version>. Error: ${e.message}`,\n );\n }\n }\n\n private getOrigin(encryptionKeyId: string): string {\n try {\n const url = new URL(encryptionKeyId);\n return url.origin;\n } catch (e) {\n throw new ErrorResponse(\n `Invalid key url: ${encryptionKeyId}. Key url must be in the format https://<vault>.vault.azure.net/keys/<key-name>/<key-version>. Error: ${e.message}`,\n );\n }\n }\n}\n"]}
1
+ {"version":3,"file":"AzureKeyVaultEncryptionKeyResolver.js","sourceRoot":"","sources":["../../../../src/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { EncryptionKeyResolver } from \"./EncryptionKeyResolver.js\";\nimport type { KeyWrapAlgorithm } from \"@azure/keyvault-keys\";\nimport { KeyClient } from \"@azure/keyvault-keys\";\nimport { ErrorResponse } from \"../../request/index.js\";\nimport { EncryptionKeyResolverName } from \"../enums/index.js\";\n\n/**\n * Implementation of EncryptionKeyResolver that uses Azure Key Vault for customer managed keys.\n */\nexport class AzureKeyVaultEncryptionKeyResolver implements EncryptionKeyResolver {\n private credentials: TokenCredential;\n\n constructor(credentials: TokenCredential) {\n this.credentials = credentials;\n }\n /**\n * Name of the resolver to use for client side encryption.\n * Currently only AzureKeyVault implementation is supported.\n */\n public encryptionKeyResolverName = EncryptionKeyResolverName.AzureKeyVault;\n /**\n * wraps the given key using the specified key encryption key path and algorithm.\n * @param encryptionKeyId - path to the customer managed key to be used for wrapping. For Azure Key Vault, this is url of the key in the vault.\n * @param algorithm - algorithm to be used for wrapping.\n * @param unwrappedKey - dek to be wrapped.\n * @returns wrapped DEK.\n */\n public async wrapKey(\n encryptionKeyId: string,\n algorithm: string,\n unwrappedKey: Uint8Array,\n ): Promise<Uint8Array> {\n try {\n const origin = this.getOrigin(encryptionKeyId);\n const keyClient = new KeyClient(origin, this.credentials);\n const [keyName, keyVersion] = this.getKeyDetails(encryptionKeyId);\n const cryptographyClient = keyClient.getCryptographyClient(keyName, {\n keyVersion: keyVersion,\n });\n const res = await cryptographyClient.wrapKey(algorithm as KeyWrapAlgorithm, unwrappedKey);\n if (!res || !res.result) {\n throw new ErrorResponse(`Failed to wrap key: ${res}`);\n }\n return res.result;\n } catch (e) {\n throw new ErrorResponse(`Failed to wrap key: ${e.message}`);\n }\n }\n /**\n * Unwraps the given wrapped key using the specified key encryption key path and algorithm.\n * @param encryptionKeyId - path to the customer managed key to be used for unwrapping. For Azure Key Vault, this is url of the key in the vault.\n * @param algorithm - algorithm to be used for unwrapping.\n * @param wrappedKey - wrapped DEK.\n * @returns unwrapped DEK.\n */\n public async unwrapKey(\n encryptionKeyId: string,\n algorithm: string,\n wrappedKey: Uint8Array,\n ): Promise<Uint8Array> {\n try {\n const origin = this.getOrigin(encryptionKeyId);\n const keyClient = new KeyClient(origin, this.credentials);\n const [keyName, keyVersion] = this.getKeyDetails(encryptionKeyId);\n const cryptographyClient = keyClient.getCryptographyClient(keyName, {\n keyVersion: keyVersion,\n });\n const res = await cryptographyClient.unwrapKey(algorithm as KeyWrapAlgorithm, wrappedKey);\n if (!res || !res.result) {\n throw new ErrorResponse(`Failed to wrap key: ${res}`);\n }\n return res.result;\n } catch (e) {\n throw new ErrorResponse(`Failed to unwrap key: ${e.message}`);\n }\n }\n // TODO: improve this method to extract key name and version from the url\n private getKeyDetails(encryptionKeyId: string): [string, string] {\n let url;\n try {\n url = new URL(encryptionKeyId);\n const parts = url.pathname.split(\"/\");\n if (parts.length < 4 || parts.length > 5) {\n throw new ErrorResponse(\n `Invalid key url: ${encryptionKeyId}. Key url must be in the format https://<vault>.vault.azure.net/keys/<key-name>/<key-version>`,\n );\n }\n if (parts.length === 4 || parts.length === 5) {\n return [parts[2], parts[3]];\n }\n } catch (e) {\n throw new ErrorResponse(\n `Invalid key url: ${encryptionKeyId}. Key url must be in the format https://<vault>.vault.azure.net/keys/<key-name>/<key-version>. Error: ${e.message}`,\n );\n }\n }\n\n private getOrigin(encryptionKeyId: string): string {\n try {\n const url = new URL(encryptionKeyId);\n return url.origin;\n } catch (e) {\n throw new ErrorResponse(\n `Invalid key url: ${encryptionKeyId}. Key url must be in the format https://<vault>.vault.azure.net/keys/<key-name>/<key-version>. Error: ${e.message}`,\n );\n }\n }\n}\n"]}
@@ -9,10 +9,17 @@ const time_js_1 = require("../utils/time.js");
9
9
  * Class to store encryption keys in unwrapped form and provide an interface for wrapping and unwrapping the keys.
10
10
  */
11
11
  class EncryptionKeyStoreProvider {
12
+ keyEncryptionKeyResolver;
13
+ cacheTimeToLive;
14
+ RsaOaepEncryptionAlgorithm = "RSA-OAEP";
15
+ // interval for clear cache to run
16
+ cacheRefresher;
17
+ // cache to store the unwrapped encryption key. Key is the path of the encryption key
18
+ unwrappedEncryptionKeyCache;
19
+ providerName;
12
20
  constructor(keyEncryptionKeyResolver, cacheTimeToLive) {
13
21
  this.keyEncryptionKeyResolver = keyEncryptionKeyResolver;
14
22
  this.cacheTimeToLive = cacheTimeToLive;
15
- this.RsaOaepEncryptionAlgorithm = "RSA-OAEP";
16
23
  this.keyEncryptionKeyResolver = keyEncryptionKeyResolver;
17
24
  this.providerName = keyEncryptionKeyResolver.encryptionKeyResolverName;
18
25
  this.unwrappedEncryptionKeyCache = {};
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionKeyStoreProvider.js","sourceRoot":"","sources":["../../../src/encryption/EncryptionKeyStoreProvider.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iDAA+C;AAC/C,8CAAuD;AAGvD;;GAEG;AACH,MAAa,0BAA0B;IAQrC,YACU,wBAA+C,EAC/C,eAAuB;QADvB,6BAAwB,GAAxB,wBAAwB,CAAuB;QAC/C,oBAAe,GAAf,eAAe,CAAQ;QAT1B,+BAA0B,GAAW,UAAU,CAAC;QAWrD,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC,yBAAyB,CAAC;QACvE,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,eAAuB,EACvB,SAAiC,EACjC,GAAW;QAEX,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CACtE,eAAe,EACf,SAAS,EACT,aAAa,CACd,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,eAAuB,EACvB,SAAiC,EACjC,UAAkB;QAElB,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,CACvD,eAAe,EACf,SAAS,EACT,UAAU,CACX,CAAC;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,EAAE,CAAC;YACvD,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACxD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,CACtE,eAAe,EACf,SAAS,EACT,oBAAoB,CACrB,CAAC;YACF,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjE,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC,cAAc,GAAG,IAAA,6BAAmB,EAAC,KAAK,IAAI,EAAE;YACnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACnD,IACE,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;oBAClE,IAAI,CAAC,eAAe,EACpB,CAAC;oBACD,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC,EAAE,oBAAS,CAAC,kCAAkC,CAAC,CAAC;IACnD,CAAC;CACF;AAxED,gEAwEC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Constants } from \"../common/index.js\";\nimport { startBackgroundTask } from \"../utils/time.js\";\nimport type { EncryptionKeyResolver } from \"./EncryptionKeyResolver/index.js\";\nimport type { KeyEncryptionAlgorithm } from \"./enums/index.js\";\n/**\n * Class to store encryption keys in unwrapped form and provide an interface for wrapping and unwrapping the keys.\n */\nexport class EncryptionKeyStoreProvider {\n public RsaOaepEncryptionAlgorithm: string = \"RSA-OAEP\";\n // interval for clear cache to run\n cacheRefresher: NodeJS.Timeout;\n\n // cache to store the unwrapped encryption key. Key is the path of the encryption key\n public unwrappedEncryptionKeyCache: { [key: string]: [Date, Buffer] };\n public providerName: string;\n constructor(\n private keyEncryptionKeyResolver: EncryptionKeyResolver,\n private cacheTimeToLive: number,\n ) {\n this.keyEncryptionKeyResolver = keyEncryptionKeyResolver;\n this.providerName = keyEncryptionKeyResolver.encryptionKeyResolverName;\n this.unwrappedEncryptionKeyCache = {};\n this.cacheTimeToLive = cacheTimeToLive;\n this.clearCacheOnTtlExpiry();\n }\n\n public async wrapKey(\n encryptionKeyId: string,\n algorithm: KeyEncryptionAlgorithm,\n key: Buffer,\n ): Promise<Buffer> {\n const uInt8ArrayKey = new Uint8Array(key);\n const wrappedEncryptionKey = await this.keyEncryptionKeyResolver.wrapKey(\n encryptionKeyId,\n algorithm,\n uInt8ArrayKey,\n );\n return Buffer.from(wrappedEncryptionKey);\n }\n\n public async unwrapKey(\n encryptionKeyId: string,\n algorithm: KeyEncryptionAlgorithm,\n wrappedKey: Buffer,\n ): Promise<Buffer> {\n if (this.cacheTimeToLive === 0) {\n const res = await this.keyEncryptionKeyResolver.unwrapKey(\n encryptionKeyId,\n algorithm,\n wrappedKey,\n );\n return Buffer.from(res);\n }\n if (!this.unwrappedEncryptionKeyCache[encryptionKeyId]) {\n const wrappedKeyUint8Array = new Uint8Array(wrappedKey);\n const plainEncryptionKey = await this.keyEncryptionKeyResolver.unwrapKey(\n encryptionKeyId,\n algorithm,\n wrappedKeyUint8Array,\n );\n const plainEncryptionKeyBuffer = Buffer.from(plainEncryptionKey);\n this.unwrappedEncryptionKeyCache[encryptionKeyId] = [new Date(), plainEncryptionKeyBuffer];\n }\n return this.unwrappedEncryptionKeyCache[encryptionKeyId][1];\n }\n\n private async clearCacheOnTtlExpiry(): Promise<void> {\n this.cacheRefresher = startBackgroundTask(async () => {\n const now = new Date();\n for (const key in this.unwrappedEncryptionKeyCache) {\n if (\n now.getTime() - this.unwrappedEncryptionKeyCache[key][0].getTime() >\n this.cacheTimeToLive\n ) {\n delete this.unwrappedEncryptionKeyCache[key];\n }\n }\n }, Constants.EncryptionCacheRefreshIntervalInMs);\n }\n}\n"]}
1
+ {"version":3,"file":"EncryptionKeyStoreProvider.js","sourceRoot":"","sources":["../../../src/encryption/EncryptionKeyStoreProvider.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iDAA+C;AAC/C,8CAAuD;AAGvD;;GAEG;AACH,MAAa,0BAA0B;IAS3B;IACA;IATH,0BAA0B,GAAW,UAAU,CAAC;IACvD,kCAAkC;IAClC,cAAc,CAAiB;IAE/B,qFAAqF;IAC9E,2BAA2B,CAAoC;IAC/D,YAAY,CAAS;IAC5B,YACU,wBAA+C,EAC/C,eAAuB;QADvB,6BAAwB,GAAxB,wBAAwB,CAAuB;QAC/C,oBAAe,GAAf,eAAe,CAAQ;QAE/B,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC,yBAAyB,CAAC;QACvE,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,eAAuB,EACvB,SAAiC,EACjC,GAAW;QAEX,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CACtE,eAAe,EACf,SAAS,EACT,aAAa,CACd,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,eAAuB,EACvB,SAAiC,EACjC,UAAkB;QAElB,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,CACvD,eAAe,EACf,SAAS,EACT,UAAU,CACX,CAAC;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,EAAE,CAAC;YACvD,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YACxD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,CACtE,eAAe,EACf,SAAS,EACT,oBAAoB,CACrB,CAAC;YACF,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjE,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC,cAAc,GAAG,IAAA,6BAAmB,EAAC,KAAK,IAAI,EAAE;YACnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACnD,IACE,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;oBAClE,IAAI,CAAC,eAAe,EACpB,CAAC;oBACD,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC,EAAE,oBAAS,CAAC,kCAAkC,CAAC,CAAC;IACnD,CAAC;CACF;AAxED,gEAwEC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Constants } from \"../common/index.js\";\nimport { startBackgroundTask } from \"../utils/time.js\";\nimport type { EncryptionKeyResolver } from \"./EncryptionKeyResolver/index.js\";\nimport type { KeyEncryptionAlgorithm } from \"./enums/index.js\";\n/**\n * Class to store encryption keys in unwrapped form and provide an interface for wrapping and unwrapping the keys.\n */\nexport class EncryptionKeyStoreProvider {\n public RsaOaepEncryptionAlgorithm: string = \"RSA-OAEP\";\n // interval for clear cache to run\n cacheRefresher: NodeJS.Timeout;\n\n // cache to store the unwrapped encryption key. Key is the path of the encryption key\n public unwrappedEncryptionKeyCache: { [key: string]: [Date, Buffer] };\n public providerName: string;\n constructor(\n private keyEncryptionKeyResolver: EncryptionKeyResolver,\n private cacheTimeToLive: number,\n ) {\n this.keyEncryptionKeyResolver = keyEncryptionKeyResolver;\n this.providerName = keyEncryptionKeyResolver.encryptionKeyResolverName;\n this.unwrappedEncryptionKeyCache = {};\n this.cacheTimeToLive = cacheTimeToLive;\n this.clearCacheOnTtlExpiry();\n }\n\n public async wrapKey(\n encryptionKeyId: string,\n algorithm: KeyEncryptionAlgorithm,\n key: Buffer,\n ): Promise<Buffer> {\n const uInt8ArrayKey = new Uint8Array(key);\n const wrappedEncryptionKey = await this.keyEncryptionKeyResolver.wrapKey(\n encryptionKeyId,\n algorithm,\n uInt8ArrayKey,\n );\n return Buffer.from(wrappedEncryptionKey);\n }\n\n public async unwrapKey(\n encryptionKeyId: string,\n algorithm: KeyEncryptionAlgorithm,\n wrappedKey: Buffer,\n ): Promise<Buffer> {\n if (this.cacheTimeToLive === 0) {\n const res = await this.keyEncryptionKeyResolver.unwrapKey(\n encryptionKeyId,\n algorithm,\n wrappedKey,\n );\n return Buffer.from(res);\n }\n if (!this.unwrappedEncryptionKeyCache[encryptionKeyId]) {\n const wrappedKeyUint8Array = new Uint8Array(wrappedKey);\n const plainEncryptionKey = await this.keyEncryptionKeyResolver.unwrapKey(\n encryptionKeyId,\n algorithm,\n wrappedKeyUint8Array,\n );\n const plainEncryptionKeyBuffer = Buffer.from(plainEncryptionKey);\n this.unwrappedEncryptionKeyCache[encryptionKeyId] = [new Date(), plainEncryptionKeyBuffer];\n }\n return this.unwrappedEncryptionKeyCache[encryptionKeyId][1];\n }\n\n private async clearCacheOnTtlExpiry(): Promise<void> {\n this.cacheRefresher = startBackgroundTask(async () => {\n const now = new Date();\n for (const key in this.unwrappedEncryptionKeyCache) {\n if (\n now.getTime() - this.unwrappedEncryptionKeyCache[key][0].getTime() >\n this.cacheTimeToLive\n ) {\n delete this.unwrappedEncryptionKeyCache[key];\n }\n }\n }, Constants.EncryptionCacheRefreshIntervalInMs);\n }\n}\n"]}
@@ -14,6 +14,12 @@ const constants_js_1 = require("../common/constants.js");
14
14
  * @hidden
15
15
  */
16
16
  class EncryptionManager {
17
+ cacheTimeToLive;
18
+ encryptionKeyStoreProvider;
19
+ protectedDataEncryptionKeyCache;
20
+ keyEncryptionKeyCache;
21
+ encryptionSettingsCache;
22
+ clientEncryptionKeyPropertiesCache;
17
23
  constructor(encryptionKeyResolver, cacheTimeToLive) {
18
24
  this.cacheTimeToLive =
19
25
  cacheTimeToLive !== undefined
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionManager.js","sourceRoot":"","sources":["../../../src/encryption/EncryptionManager.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,mGAA6F;AAC7F,+EAAyE;AACzE,mFAA6E;AAC7E,yGAAmG;AACnG,mFAA6E;AAC7E,yDAAmD;AAEnD;;;GAGG;AACH,MAAa,iBAAiB;IAQ5B,YAAY,qBAA4C,EAAE,eAAwB;QAChF,IAAI,CAAC,eAAe;YAClB,eAAe,KAAK,SAAS;gBAC3B,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,wBAAS,CAAC,yCAAyC,CAAC;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC,0BAA0B,GAAG,IAAI,0DAA0B,CAC9D,qBAAqB,EACrB,YAAY,CACb,CAAC;QACF,IAAI,CAAC,+BAA+B,GAAG,IAAI,oEAA+B,CAAC,YAAY,CAAC,CAAC;QACzF,IAAI,CAAC,qBAAqB,GAAG,IAAI,gDAAqB,EAAE,CAAC;QACzD,IAAI,CAAC,uBAAuB,GAAG,IAAI,oDAAuB,EAAE,CAAC;QAC7D,IAAI,CAAC,kCAAkC,GAAG,IAAI,0EAAkC,EAAE,CAAC;IACrF,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,qBAAqB,GAAG,IAAI,CAAC;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,CAAC;IAC9D,CAAC;CACF;AA/BD,8CA+BC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ProtectedDataEncryptionKeyCache } from \"./Cache/ProtectedDataEncryptionKeyCache.js\";\nimport { KeyEncryptionKeyCache } from \"./Cache/KeyEncryptionKeyCache.js\";\nimport { EncryptionSettingsCache } from \"./Cache/EncryptionSettingsCache.js\";\nimport { ClientEncryptionKeyPropertiesCache } from \"./Cache/ClientEncryptionKeyPropertiesCache.js\";\nimport { EncryptionKeyStoreProvider } from \"./EncryptionKeyStoreProvider.js\";\nimport { Constants } from \"../common/constants.js\";\nimport type { EncryptionKeyResolver } from \"./EncryptionKeyResolver/index.js\";\n/**\n * Cache manager for encryption related caches.\n * @hidden\n */\nexport class EncryptionManager {\n public cacheTimeToLive: number;\n public encryptionKeyStoreProvider: EncryptionKeyStoreProvider;\n public protectedDataEncryptionKeyCache: ProtectedDataEncryptionKeyCache;\n public keyEncryptionKeyCache: KeyEncryptionKeyCache;\n public encryptionSettingsCache: EncryptionSettingsCache;\n public clientEncryptionKeyPropertiesCache: ClientEncryptionKeyPropertiesCache;\n\n constructor(encryptionKeyResolver: EncryptionKeyResolver, cacheTimeToLive?: number) {\n this.cacheTimeToLive =\n cacheTimeToLive !== undefined\n ? cacheTimeToLive\n : Constants.DefaultEncryptionCacheTimeToLiveInSeconds;\n const cacheTtlInMs = this.getCacheTTlInMs();\n this.encryptionKeyStoreProvider = new EncryptionKeyStoreProvider(\n encryptionKeyResolver,\n cacheTtlInMs,\n );\n this.protectedDataEncryptionKeyCache = new ProtectedDataEncryptionKeyCache(cacheTtlInMs);\n this.keyEncryptionKeyCache = new KeyEncryptionKeyCache();\n this.encryptionSettingsCache = new EncryptionSettingsCache();\n this.clientEncryptionKeyPropertiesCache = new ClientEncryptionKeyPropertiesCache();\n }\n\n /**\n * Converts the EncryptionTimeToLive instance to a number (milliseconds).\n */\n private getCacheTTlInMs(): number {\n const millisecondsPerSecond = 1000;\n return Number(this.cacheTimeToLive * millisecondsPerSecond);\n }\n}\n"]}
1
+ {"version":3,"file":"EncryptionManager.js","sourceRoot":"","sources":["../../../src/encryption/EncryptionManager.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,mGAA6F;AAC7F,+EAAyE;AACzE,mFAA6E;AAC7E,yGAAmG;AACnG,mFAA6E;AAC7E,yDAAmD;AAEnD;;;GAGG;AACH,MAAa,iBAAiB;IACrB,eAAe,CAAS;IACxB,0BAA0B,CAA6B;IACvD,+BAA+B,CAAkC;IACjE,qBAAqB,CAAwB;IAC7C,uBAAuB,CAA0B;IACjD,kCAAkC,CAAqC;IAE9E,YAAY,qBAA4C,EAAE,eAAwB;QAChF,IAAI,CAAC,eAAe;YAClB,eAAe,KAAK,SAAS;gBAC3B,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,wBAAS,CAAC,yCAAyC,CAAC;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC,0BAA0B,GAAG,IAAI,0DAA0B,CAC9D,qBAAqB,EACrB,YAAY,CACb,CAAC;QACF,IAAI,CAAC,+BAA+B,GAAG,IAAI,oEAA+B,CAAC,YAAY,CAAC,CAAC;QACzF,IAAI,CAAC,qBAAqB,GAAG,IAAI,gDAAqB,EAAE,CAAC;QACzD,IAAI,CAAC,uBAAuB,GAAG,IAAI,oDAAuB,EAAE,CAAC;QAC7D,IAAI,CAAC,kCAAkC,GAAG,IAAI,0EAAkC,EAAE,CAAC;IACrF,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,qBAAqB,GAAG,IAAI,CAAC;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,CAAC;IAC9D,CAAC;CACF;AA/BD,8CA+BC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ProtectedDataEncryptionKeyCache } from \"./Cache/ProtectedDataEncryptionKeyCache.js\";\nimport { KeyEncryptionKeyCache } from \"./Cache/KeyEncryptionKeyCache.js\";\nimport { EncryptionSettingsCache } from \"./Cache/EncryptionSettingsCache.js\";\nimport { ClientEncryptionKeyPropertiesCache } from \"./Cache/ClientEncryptionKeyPropertiesCache.js\";\nimport { EncryptionKeyStoreProvider } from \"./EncryptionKeyStoreProvider.js\";\nimport { Constants } from \"../common/constants.js\";\nimport type { EncryptionKeyResolver } from \"./EncryptionKeyResolver/index.js\";\n/**\n * Cache manager for encryption related caches.\n * @hidden\n */\nexport class EncryptionManager {\n public cacheTimeToLive: number;\n public encryptionKeyStoreProvider: EncryptionKeyStoreProvider;\n public protectedDataEncryptionKeyCache: ProtectedDataEncryptionKeyCache;\n public keyEncryptionKeyCache: KeyEncryptionKeyCache;\n public encryptionSettingsCache: EncryptionSettingsCache;\n public clientEncryptionKeyPropertiesCache: ClientEncryptionKeyPropertiesCache;\n\n constructor(encryptionKeyResolver: EncryptionKeyResolver, cacheTimeToLive?: number) {\n this.cacheTimeToLive =\n cacheTimeToLive !== undefined\n ? cacheTimeToLive\n : Constants.DefaultEncryptionCacheTimeToLiveInSeconds;\n const cacheTtlInMs = this.getCacheTTlInMs();\n this.encryptionKeyStoreProvider = new EncryptionKeyStoreProvider(\n encryptionKeyResolver,\n cacheTtlInMs,\n );\n this.protectedDataEncryptionKeyCache = new ProtectedDataEncryptionKeyCache(cacheTtlInMs);\n this.keyEncryptionKeyCache = new KeyEncryptionKeyCache();\n this.encryptionSettingsCache = new EncryptionSettingsCache();\n this.clientEncryptionKeyPropertiesCache = new ClientEncryptionKeyPropertiesCache();\n }\n\n /**\n * Converts the EncryptionTimeToLive instance to a number (milliseconds).\n */\n private getCacheTTlInMs(): number {\n const millisecondsPerSecond = 1000;\n return Number(this.cacheTimeToLive * millisecondsPerSecond);\n }\n}\n"]}
@@ -7,6 +7,11 @@ const index_js_1 = require("../common/index.js");
7
7
  const index_js_2 = require("../request/index.js");
8
8
  const diagnostics_js_1 = require("../utils/diagnostics.js");
9
9
  class EncryptionProcessor {
10
+ containerId;
11
+ containerRid;
12
+ database;
13
+ clientContext;
14
+ encryptionManager;
10
15
  constructor(containerId, containerRid, database, clientContext, encryptionManager) {
11
16
  this.containerId = containerId;
12
17
  this.containerRid = containerRid;