@azure/cosmos 4.4.1 → 4.5.0-alpha.20250718.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/ClientContext.d.ts +19 -10
- package/dist/browser/ClientContext.d.ts.map +1 -1
- package/dist/browser/ClientContext.js +30 -11
- package/dist/browser/ClientContext.js.map +1 -1
- package/dist/browser/CosmosClient.d.ts.map +1 -1
- package/dist/browser/CosmosClient.js +13 -2
- package/dist/browser/CosmosClient.js.map +1 -1
- package/dist/browser/PartitionKeyRangeFailoverInfo.d.ts +49 -0
- package/dist/browser/PartitionKeyRangeFailoverInfo.d.ts.map +1 -0
- package/dist/browser/PartitionKeyRangeFailoverInfo.js +130 -0
- package/dist/browser/PartitionKeyRangeFailoverInfo.js.map +1 -0
- package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
- package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js +4 -0
- package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
- package/dist/browser/client/ClientUtils.d.ts +3 -1
- package/dist/browser/client/ClientUtils.d.ts.map +1 -1
- package/dist/browser/client/ClientUtils.js +10 -0
- package/dist/browser/client/ClientUtils.js.map +1 -1
- package/dist/browser/client/Item/Item.d.ts.map +1 -1
- package/dist/browser/client/Item/Item.js +13 -0
- package/dist/browser/client/Item/Item.js.map +1 -1
- package/dist/browser/client/Item/Items.d.ts +1 -0
- package/dist/browser/client/Item/Items.d.ts.map +1 -1
- package/dist/browser/client/Item/Items.js +29 -3
- package/dist/browser/client/Item/Items.js.map +1 -1
- package/dist/browser/common/constants.d.ts +20 -0
- package/dist/browser/common/constants.d.ts.map +1 -1
- package/dist/browser/common/constants.js +23 -1
- package/dist/browser/common/constants.js.map +1 -1
- package/dist/browser/common/platform.d.ts +6 -1
- package/dist/browser/common/platform.d.ts.map +1 -1
- package/dist/browser/common/platform.js +23 -4
- package/dist/browser/common/platform.js.map +1 -1
- package/dist/browser/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
- package/dist/browser/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
- package/dist/browser/diagnostics/DiagnosticNodeInternal.js.map +1 -1
- package/dist/browser/documents/ConnectionPolicy.d.ts +6 -0
- package/dist/browser/documents/ConnectionPolicy.d.ts.map +1 -1
- package/dist/browser/documents/ConnectionPolicy.js +2 -0
- package/dist/browser/documents/ConnectionPolicy.js.map +1 -1
- package/dist/browser/documents/DatabaseAccount.d.ts.map +1 -1
- package/dist/browser/documents/DatabaseAccount.js +3 -0
- package/dist/browser/documents/DatabaseAccount.js.map +1 -1
- package/dist/browser/documents/PartitionKeyDefinition.d.ts +1 -1
- package/dist/browser/documents/PartitionKeyDefinition.js.map +1 -1
- package/dist/browser/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
- package/dist/browser/encryption/EncryptionKeyStoreProvider.js +2 -1
- package/dist/browser/encryption/EncryptionKeyStoreProvider.js.map +1 -1
- package/dist/browser/extractPartitionKey.d.ts.map +1 -1
- package/dist/browser/extractPartitionKey.js +33 -20
- package/dist/browser/extractPartitionKey.js.map +1 -1
- package/dist/browser/globalEndpointManager.d.ts +6 -0
- package/dist/browser/globalEndpointManager.d.ts.map +1 -1
- package/dist/browser/globalEndpointManager.js +9 -4
- package/dist/browser/globalEndpointManager.js.map +1 -1
- package/dist/browser/globalPartitionEndpointManager.d.ts +79 -0
- package/dist/browser/globalPartitionEndpointManager.d.ts.map +1 -0
- package/dist/browser/globalPartitionEndpointManager.js +278 -0
- package/dist/browser/globalPartitionEndpointManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/Aggregators/index.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/Aggregators/index.js +1 -0
- package/dist/browser/queryExecutionContext/Aggregators/index.js.map +1 -1
- package/dist/browser/queryExecutionContext/documentProducer.d.ts +2 -3
- package/dist/browser/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/documentProducer.js +16 -21
- package/dist/browser/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts +3 -1
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js +10 -2
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js +2 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/browser/queryIterator.d.ts.map +1 -1
- package/dist/browser/queryIterator.js +2 -3
- package/dist/browser/queryIterator.js.map +1 -1
- package/dist/browser/request/ErrorResponse.d.ts +1 -1
- package/dist/browser/request/ErrorResponse.d.ts.map +1 -1
- package/dist/browser/request/ErrorResponse.js.map +1 -1
- package/dist/browser/request/RequestContext.d.ts +5 -0
- package/dist/browser/request/RequestContext.d.ts.map +1 -1
- package/dist/browser/request/RequestContext.js.map +1 -1
- package/dist/browser/request/RequestHandler.d.ts.map +1 -1
- package/dist/browser/request/RequestHandler.js +14 -4
- package/dist/browser/request/RequestHandler.js.map +1 -1
- package/dist/browser/request/request.d.ts.map +1 -1
- package/dist/browser/request/request.js +3 -3
- package/dist/browser/request/request.js.map +1 -1
- package/dist/browser/retry/RetryPolicy.d.ts +2 -2
- package/dist/browser/retry/RetryPolicy.d.ts.map +1 -1
- package/dist/browser/retry/RetryPolicy.js.map +1 -1
- package/dist/browser/retry/defaultRetryPolicy.d.ts.map +1 -1
- package/dist/browser/retry/defaultRetryPolicy.js +4 -8
- package/dist/browser/retry/defaultRetryPolicy.js.map +1 -1
- package/dist/browser/retry/endpointDiscoveryRetryPolicy.d.ts +5 -3
- package/dist/browser/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
- package/dist/browser/retry/endpointDiscoveryRetryPolicy.js +9 -2
- package/dist/browser/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
- package/dist/browser/retry/retryUtility.d.ts.map +1 -1
- package/dist/browser/retry/retryUtility.js +11 -5
- package/dist/browser/retry/retryUtility.js.map +1 -1
- package/dist/browser/retry/timeoutFailoverRetryPolicy.d.ts +6 -3
- package/dist/browser/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
- package/dist/browser/retry/timeoutFailoverRetryPolicy.js +15 -7
- package/dist/browser/retry/timeoutFailoverRetryPolicy.js.map +1 -1
- package/dist/browser/routing/partitionKeyRangeCache.d.ts.map +1 -1
- package/dist/browser/routing/partitionKeyRangeCache.js +11 -0
- package/dist/browser/routing/partitionKeyRangeCache.js.map +1 -1
- package/dist/browser/utils/checkURL.js +6 -0
- package/dist/browser/utils/checkURL.js.map +1 -1
- package/dist/browser/utils/hashing/hash.d.ts +2 -0
- package/dist/browser/utils/hashing/hash.d.ts.map +1 -1
- package/dist/browser/utils/hashing/hash.js +19 -0
- package/dist/browser/utils/hashing/hash.js.map +1 -1
- package/dist/browser/utils/time.d.ts +8 -0
- package/dist/browser/utils/time.d.ts.map +1 -1
- package/dist/browser/utils/time.js +19 -0
- package/dist/browser/utils/time.js.map +1 -1
- package/dist/commonjs/ClientContext.d.ts +19 -10
- package/dist/commonjs/ClientContext.d.ts.map +1 -1
- package/dist/commonjs/ClientContext.js +30 -11
- package/dist/commonjs/ClientContext.js.map +1 -1
- package/dist/commonjs/CosmosClient.d.ts.map +1 -1
- package/dist/commonjs/CosmosClient.js +13 -2
- package/dist/commonjs/CosmosClient.js.map +1 -1
- package/dist/commonjs/PartitionKeyRangeFailoverInfo.d.ts +49 -0
- package/dist/commonjs/PartitionKeyRangeFailoverInfo.d.ts.map +1 -0
- package/dist/commonjs/PartitionKeyRangeFailoverInfo.js +135 -0
- package/dist/commonjs/PartitionKeyRangeFailoverInfo.js.map +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js +4 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
- package/dist/commonjs/client/ClientUtils.d.ts +3 -1
- package/dist/commonjs/client/ClientUtils.d.ts.map +1 -1
- package/dist/commonjs/client/ClientUtils.js +11 -0
- package/dist/commonjs/client/ClientUtils.js.map +1 -1
- package/dist/commonjs/client/Item/Item.d.ts.map +1 -1
- package/dist/commonjs/client/Item/Item.js +13 -0
- package/dist/commonjs/client/Item/Item.js.map +1 -1
- package/dist/commonjs/client/Item/Items.d.ts +1 -0
- package/dist/commonjs/client/Item/Items.d.ts.map +1 -1
- package/dist/commonjs/client/Item/Items.js +27 -1
- package/dist/commonjs/client/Item/Items.js.map +1 -1
- package/dist/commonjs/common/constants.d.ts +20 -0
- package/dist/commonjs/common/constants.d.ts.map +1 -1
- package/dist/commonjs/common/constants.js +24 -2
- package/dist/commonjs/common/constants.js.map +1 -1
- package/dist/commonjs/common/platform.d.ts +6 -1
- package/dist/commonjs/common/platform.d.ts.map +1 -1
- package/dist/commonjs/common/platform.js +23 -3
- package/dist/commonjs/common/platform.js.map +1 -1
- package/dist/commonjs/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
- package/dist/commonjs/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
- package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js.map +1 -1
- package/dist/commonjs/documents/ConnectionPolicy.d.ts +6 -0
- package/dist/commonjs/documents/ConnectionPolicy.d.ts.map +1 -1
- package/dist/commonjs/documents/ConnectionPolicy.js +2 -0
- package/dist/commonjs/documents/ConnectionPolicy.js.map +1 -1
- package/dist/commonjs/documents/DatabaseAccount.d.ts.map +1 -1
- package/dist/commonjs/documents/DatabaseAccount.js +3 -0
- package/dist/commonjs/documents/DatabaseAccount.js.map +1 -1
- package/dist/commonjs/documents/PartitionKeyDefinition.d.ts +1 -1
- package/dist/commonjs/documents/PartitionKeyDefinition.js.map +1 -1
- package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.d.ts.map +1 -1
- package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js +2 -1
- package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
- package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js +2 -1
- package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js.map +1 -1
- package/dist/commonjs/extractPartitionKey.d.ts.map +1 -1
- package/dist/commonjs/extractPartitionKey.js +33 -20
- package/dist/commonjs/extractPartitionKey.js.map +1 -1
- package/dist/commonjs/globalEndpointManager.d.ts +6 -0
- package/dist/commonjs/globalEndpointManager.d.ts.map +1 -1
- package/dist/commonjs/globalEndpointManager.js +10 -5
- package/dist/commonjs/globalEndpointManager.js.map +1 -1
- package/dist/commonjs/globalPartitionEndpointManager.d.ts +79 -0
- package/dist/commonjs/globalPartitionEndpointManager.d.ts.map +1 -0
- package/dist/commonjs/globalPartitionEndpointManager.js +282 -0
- package/dist/commonjs/globalPartitionEndpointManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/index.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/index.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/index.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/documentProducer.d.ts +2 -3
- package/dist/commonjs/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/documentProducer.js +15 -20
- package/dist/commonjs/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts +3 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +10 -2
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +2 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/commonjs/queryIterator.d.ts.map +1 -1
- package/dist/commonjs/queryIterator.js +2 -3
- package/dist/commonjs/queryIterator.js.map +1 -1
- package/dist/commonjs/request/ErrorResponse.d.ts +1 -1
- package/dist/commonjs/request/ErrorResponse.d.ts.map +1 -1
- package/dist/commonjs/request/ErrorResponse.js.map +1 -1
- package/dist/commonjs/request/RequestContext.d.ts +5 -0
- package/dist/commonjs/request/RequestContext.d.ts.map +1 -1
- package/dist/commonjs/request/RequestContext.js.map +1 -1
- package/dist/commonjs/request/RequestHandler.d.ts.map +1 -1
- package/dist/commonjs/request/RequestHandler.js +12 -2
- package/dist/commonjs/request/RequestHandler.js.map +1 -1
- package/dist/commonjs/request/defaultAgent.js +4 -4
- package/dist/commonjs/request/defaultAgent.js.map +1 -1
- package/dist/commonjs/request/request.d.ts.map +1 -1
- package/dist/commonjs/request/request.js +3 -3
- package/dist/commonjs/request/request.js.map +1 -1
- package/dist/commonjs/retry/RetryPolicy.d.ts +2 -2
- package/dist/commonjs/retry/RetryPolicy.d.ts.map +1 -1
- package/dist/commonjs/retry/RetryPolicy.js.map +1 -1
- package/dist/commonjs/retry/defaultRetryPolicy.d.ts.map +1 -1
- package/dist/commonjs/retry/defaultRetryPolicy.js +3 -7
- package/dist/commonjs/retry/defaultRetryPolicy.js.map +1 -1
- package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.d.ts +5 -3
- package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
- package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js +9 -2
- package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
- package/dist/commonjs/retry/retryUtility.d.ts.map +1 -1
- package/dist/commonjs/retry/retryUtility.js +11 -5
- package/dist/commonjs/retry/retryUtility.js.map +1 -1
- package/dist/commonjs/retry/timeoutFailoverRetryPolicy.d.ts +6 -3
- package/dist/commonjs/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
- package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js +15 -7
- package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js.map +1 -1
- package/dist/commonjs/routing/partitionKeyRangeCache.d.ts.map +1 -1
- package/dist/commonjs/routing/partitionKeyRangeCache.js +11 -0
- package/dist/commonjs/routing/partitionKeyRangeCache.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +11 -11
- package/dist/commonjs/utils/checkURL.js +7 -0
- package/dist/commonjs/utils/checkURL.js.map +1 -1
- package/dist/commonjs/utils/hashing/hash.d.ts +2 -0
- package/dist/commonjs/utils/hashing/hash.d.ts.map +1 -1
- package/dist/commonjs/utils/hashing/hash.js +20 -0
- package/dist/commonjs/utils/hashing/hash.js.map +1 -1
- package/dist/commonjs/utils/time.d.ts +8 -0
- package/dist/commonjs/utils/time.d.ts.map +1 -1
- package/dist/commonjs/utils/time.js +20 -0
- package/dist/commonjs/utils/time.js.map +1 -1
- package/dist/esm/ClientContext.d.ts +19 -10
- package/dist/esm/ClientContext.d.ts.map +1 -1
- package/dist/esm/ClientContext.js +30 -11
- package/dist/esm/ClientContext.js.map +1 -1
- package/dist/esm/CosmosClient.d.ts.map +1 -1
- package/dist/esm/CosmosClient.js +13 -2
- package/dist/esm/CosmosClient.js.map +1 -1
- package/dist/esm/PartitionKeyRangeFailoverInfo.d.ts +49 -0
- package/dist/esm/PartitionKeyRangeFailoverInfo.d.ts.map +1 -0
- package/dist/esm/PartitionKeyRangeFailoverInfo.js +130 -0
- package/dist/esm/PartitionKeyRangeFailoverInfo.js.map +1 -0
- package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
- package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js +4 -0
- package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
- package/dist/esm/client/ClientUtils.d.ts +3 -1
- package/dist/esm/client/ClientUtils.d.ts.map +1 -1
- package/dist/esm/client/ClientUtils.js +10 -0
- package/dist/esm/client/ClientUtils.js.map +1 -1
- package/dist/esm/client/Item/Item.d.ts.map +1 -1
- package/dist/esm/client/Item/Item.js +13 -0
- package/dist/esm/client/Item/Item.js.map +1 -1
- package/dist/esm/client/Item/Items.d.ts +1 -0
- package/dist/esm/client/Item/Items.d.ts.map +1 -1
- package/dist/esm/client/Item/Items.js +29 -3
- package/dist/esm/client/Item/Items.js.map +1 -1
- package/dist/esm/common/constants.d.ts +20 -0
- package/dist/esm/common/constants.d.ts.map +1 -1
- package/dist/esm/common/constants.js +23 -1
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/common/platform.d.ts +6 -1
- package/dist/esm/common/platform.d.ts.map +1 -1
- package/dist/esm/common/platform.js +23 -4
- package/dist/esm/common/platform.js.map +1 -1
- package/dist/esm/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
- package/dist/esm/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
- package/dist/esm/diagnostics/DiagnosticNodeInternal.js.map +1 -1
- package/dist/esm/documents/ConnectionPolicy.d.ts +6 -0
- package/dist/esm/documents/ConnectionPolicy.d.ts.map +1 -1
- package/dist/esm/documents/ConnectionPolicy.js +2 -0
- package/dist/esm/documents/ConnectionPolicy.js.map +1 -1
- package/dist/esm/documents/DatabaseAccount.d.ts.map +1 -1
- package/dist/esm/documents/DatabaseAccount.js +3 -0
- package/dist/esm/documents/DatabaseAccount.js.map +1 -1
- package/dist/esm/documents/PartitionKeyDefinition.d.ts +1 -1
- package/dist/esm/documents/PartitionKeyDefinition.js.map +1 -1
- package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.d.ts.map +1 -1
- package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js +2 -1
- package/dist/esm/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
- package/dist/esm/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
- package/dist/esm/encryption/EncryptionKeyStoreProvider.js +2 -1
- package/dist/esm/encryption/EncryptionKeyStoreProvider.js.map +1 -1
- package/dist/esm/extractPartitionKey.d.ts.map +1 -1
- package/dist/esm/extractPartitionKey.js +33 -20
- package/dist/esm/extractPartitionKey.js.map +1 -1
- package/dist/esm/globalEndpointManager.d.ts +6 -0
- package/dist/esm/globalEndpointManager.d.ts.map +1 -1
- package/dist/esm/globalEndpointManager.js +9 -4
- package/dist/esm/globalEndpointManager.js.map +1 -1
- package/dist/esm/globalPartitionEndpointManager.d.ts +79 -0
- package/dist/esm/globalPartitionEndpointManager.d.ts.map +1 -0
- package/dist/esm/globalPartitionEndpointManager.js +278 -0
- package/dist/esm/globalPartitionEndpointManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/Aggregators/index.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/Aggregators/index.js +1 -0
- package/dist/esm/queryExecutionContext/Aggregators/index.js.map +1 -1
- package/dist/esm/queryExecutionContext/documentProducer.d.ts +2 -3
- package/dist/esm/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/documentProducer.js +16 -21
- package/dist/esm/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts +3 -1
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js +10 -2
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js +2 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/esm/queryIterator.d.ts.map +1 -1
- package/dist/esm/queryIterator.js +2 -3
- package/dist/esm/queryIterator.js.map +1 -1
- package/dist/esm/request/ErrorResponse.d.ts +1 -1
- package/dist/esm/request/ErrorResponse.d.ts.map +1 -1
- package/dist/esm/request/ErrorResponse.js.map +1 -1
- package/dist/esm/request/RequestContext.d.ts +5 -0
- package/dist/esm/request/RequestContext.d.ts.map +1 -1
- package/dist/esm/request/RequestContext.js.map +1 -1
- package/dist/esm/request/RequestHandler.d.ts.map +1 -1
- package/dist/esm/request/RequestHandler.js +14 -4
- package/dist/esm/request/RequestHandler.js.map +1 -1
- package/dist/esm/request/defaultAgent.js +2 -2
- package/dist/esm/request/defaultAgent.js.map +1 -1
- package/dist/esm/request/request.d.ts.map +1 -1
- package/dist/esm/request/request.js +3 -3
- package/dist/esm/request/request.js.map +1 -1
- package/dist/esm/retry/RetryPolicy.d.ts +2 -2
- package/dist/esm/retry/RetryPolicy.d.ts.map +1 -1
- package/dist/esm/retry/RetryPolicy.js.map +1 -1
- package/dist/esm/retry/defaultRetryPolicy.d.ts.map +1 -1
- package/dist/esm/retry/defaultRetryPolicy.js +4 -8
- package/dist/esm/retry/defaultRetryPolicy.js.map +1 -1
- package/dist/esm/retry/endpointDiscoveryRetryPolicy.d.ts +5 -3
- package/dist/esm/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
- package/dist/esm/retry/endpointDiscoveryRetryPolicy.js +9 -2
- package/dist/esm/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
- package/dist/esm/retry/retryUtility.d.ts.map +1 -1
- package/dist/esm/retry/retryUtility.js +11 -5
- package/dist/esm/retry/retryUtility.js.map +1 -1
- package/dist/esm/retry/timeoutFailoverRetryPolicy.d.ts +6 -3
- package/dist/esm/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
- package/dist/esm/retry/timeoutFailoverRetryPolicy.js +15 -7
- package/dist/esm/retry/timeoutFailoverRetryPolicy.js.map +1 -1
- package/dist/esm/routing/partitionKeyRangeCache.d.ts.map +1 -1
- package/dist/esm/routing/partitionKeyRangeCache.js +11 -0
- package/dist/esm/routing/partitionKeyRangeCache.js.map +1 -1
- package/dist/esm/utils/checkURL.js +6 -0
- package/dist/esm/utils/checkURL.js.map +1 -1
- package/dist/esm/utils/hashing/hash.d.ts +2 -0
- package/dist/esm/utils/hashing/hash.d.ts.map +1 -1
- package/dist/esm/utils/hashing/hash.js +19 -0
- package/dist/esm/utils/hashing/hash.js.map +1 -1
- package/dist/esm/utils/time.d.ts +8 -0
- package/dist/esm/utils/time.d.ts.map +1 -1
- package/dist/esm/utils/time.js +19 -0
- package/dist/esm/utils/time.js.map +1 -1
- package/dist/react-native/ClientContext.d.ts +19 -10
- package/dist/react-native/ClientContext.d.ts.map +1 -1
- package/dist/react-native/ClientContext.js +30 -11
- package/dist/react-native/ClientContext.js.map +1 -1
- package/dist/react-native/CosmosClient.d.ts.map +1 -1
- package/dist/react-native/CosmosClient.js +13 -2
- package/dist/react-native/CosmosClient.js.map +1 -1
- package/dist/react-native/PartitionKeyRangeFailoverInfo.d.ts +49 -0
- package/dist/react-native/PartitionKeyRangeFailoverInfo.d.ts.map +1 -0
- package/dist/react-native/PartitionKeyRangeFailoverInfo.js +130 -0
- package/dist/react-native/PartitionKeyRangeFailoverInfo.js.map +1 -0
- package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
- package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js +4 -0
- package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
- package/dist/react-native/client/ClientUtils.d.ts +3 -1
- package/dist/react-native/client/ClientUtils.d.ts.map +1 -1
- package/dist/react-native/client/ClientUtils.js +10 -0
- package/dist/react-native/client/ClientUtils.js.map +1 -1
- package/dist/react-native/client/Item/Item.d.ts.map +1 -1
- package/dist/react-native/client/Item/Item.js +13 -0
- package/dist/react-native/client/Item/Item.js.map +1 -1
- package/dist/react-native/client/Item/Items.d.ts +1 -0
- package/dist/react-native/client/Item/Items.d.ts.map +1 -1
- package/dist/react-native/client/Item/Items.js +29 -3
- package/dist/react-native/client/Item/Items.js.map +1 -1
- package/dist/react-native/common/constants.d.ts +20 -0
- package/dist/react-native/common/constants.d.ts.map +1 -1
- package/dist/react-native/common/constants.js +23 -1
- package/dist/react-native/common/constants.js.map +1 -1
- package/dist/react-native/common/platform.d.ts +6 -1
- package/dist/react-native/common/platform.d.ts.map +1 -1
- package/dist/react-native/common/platform.js +23 -4
- package/dist/react-native/common/platform.js.map +1 -1
- package/dist/react-native/diagnostics/DiagnosticNodeInternal.d.ts +1 -0
- package/dist/react-native/diagnostics/DiagnosticNodeInternal.d.ts.map +1 -1
- package/dist/react-native/diagnostics/DiagnosticNodeInternal.js.map +1 -1
- package/dist/react-native/documents/ConnectionPolicy.d.ts +6 -0
- package/dist/react-native/documents/ConnectionPolicy.d.ts.map +1 -1
- package/dist/react-native/documents/ConnectionPolicy.js +2 -0
- package/dist/react-native/documents/ConnectionPolicy.js.map +1 -1
- package/dist/react-native/documents/DatabaseAccount.d.ts.map +1 -1
- package/dist/react-native/documents/DatabaseAccount.js +3 -0
- package/dist/react-native/documents/DatabaseAccount.js.map +1 -1
- package/dist/react-native/documents/PartitionKeyDefinition.d.ts +1 -1
- package/dist/react-native/documents/PartitionKeyDefinition.js.map +1 -1
- package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.d.ts.map +1 -1
- package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js +2 -1
- package/dist/react-native/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +1 -1
- package/dist/react-native/encryption/EncryptionKeyStoreProvider.d.ts.map +1 -1
- package/dist/react-native/encryption/EncryptionKeyStoreProvider.js +2 -1
- package/dist/react-native/encryption/EncryptionKeyStoreProvider.js.map +1 -1
- package/dist/react-native/extractPartitionKey.d.ts.map +1 -1
- package/dist/react-native/extractPartitionKey.js +33 -20
- package/dist/react-native/extractPartitionKey.js.map +1 -1
- package/dist/react-native/globalEndpointManager.d.ts +6 -0
- package/dist/react-native/globalEndpointManager.d.ts.map +1 -1
- package/dist/react-native/globalEndpointManager.js +9 -4
- package/dist/react-native/globalEndpointManager.js.map +1 -1
- package/dist/react-native/globalPartitionEndpointManager.d.ts +79 -0
- package/dist/react-native/globalPartitionEndpointManager.d.ts.map +1 -0
- package/dist/react-native/globalPartitionEndpointManager.js +278 -0
- package/dist/react-native/globalPartitionEndpointManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/Aggregators/index.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/Aggregators/index.js +1 -0
- package/dist/react-native/queryExecutionContext/Aggregators/index.js.map +1 -1
- package/dist/react-native/queryExecutionContext/documentProducer.d.ts +2 -3
- package/dist/react-native/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/documentProducer.js +16 -21
- package/dist/react-native/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts +3 -1
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js +10 -2
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js +2 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/react-native/queryIterator.d.ts.map +1 -1
- package/dist/react-native/queryIterator.js +2 -3
- package/dist/react-native/queryIterator.js.map +1 -1
- package/dist/react-native/request/ErrorResponse.d.ts +1 -1
- package/dist/react-native/request/ErrorResponse.d.ts.map +1 -1
- package/dist/react-native/request/ErrorResponse.js.map +1 -1
- package/dist/react-native/request/RequestContext.d.ts +5 -0
- package/dist/react-native/request/RequestContext.d.ts.map +1 -1
- package/dist/react-native/request/RequestContext.js.map +1 -1
- package/dist/react-native/request/RequestHandler.d.ts.map +1 -1
- package/dist/react-native/request/RequestHandler.js +14 -4
- package/dist/react-native/request/RequestHandler.js.map +1 -1
- package/dist/react-native/request/defaultAgent.js +2 -2
- package/dist/react-native/request/defaultAgent.js.map +1 -1
- package/dist/react-native/request/request.d.ts.map +1 -1
- package/dist/react-native/request/request.js +3 -3
- package/dist/react-native/request/request.js.map +1 -1
- package/dist/react-native/retry/RetryPolicy.d.ts +2 -2
- package/dist/react-native/retry/RetryPolicy.d.ts.map +1 -1
- package/dist/react-native/retry/RetryPolicy.js.map +1 -1
- package/dist/react-native/retry/defaultRetryPolicy.d.ts.map +1 -1
- package/dist/react-native/retry/defaultRetryPolicy.js +4 -8
- package/dist/react-native/retry/defaultRetryPolicy.js.map +1 -1
- package/dist/react-native/retry/endpointDiscoveryRetryPolicy.d.ts +5 -3
- package/dist/react-native/retry/endpointDiscoveryRetryPolicy.d.ts.map +1 -1
- package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js +9 -2
- package/dist/react-native/retry/endpointDiscoveryRetryPolicy.js.map +1 -1
- package/dist/react-native/retry/retryUtility.d.ts.map +1 -1
- package/dist/react-native/retry/retryUtility.js +11 -5
- package/dist/react-native/retry/retryUtility.js.map +1 -1
- package/dist/react-native/retry/timeoutFailoverRetryPolicy.d.ts +6 -3
- package/dist/react-native/retry/timeoutFailoverRetryPolicy.d.ts.map +1 -1
- package/dist/react-native/retry/timeoutFailoverRetryPolicy.js +15 -7
- package/dist/react-native/retry/timeoutFailoverRetryPolicy.js.map +1 -1
- package/dist/react-native/routing/partitionKeyRangeCache.d.ts.map +1 -1
- package/dist/react-native/routing/partitionKeyRangeCache.js +11 -0
- package/dist/react-native/routing/partitionKeyRangeCache.js.map +1 -1
- package/dist/react-native/utils/checkURL.js +6 -0
- package/dist/react-native/utils/checkURL.js.map +1 -1
- package/dist/react-native/utils/hashing/hash.d.ts +2 -0
- package/dist/react-native/utils/hashing/hash.d.ts.map +1 -1
- package/dist/react-native/utils/hashing/hash.js +19 -0
- package/dist/react-native/utils/hashing/hash.js.map +1 -1
- package/dist/react-native/utils/time.d.ts +8 -0
- package/dist/react-native/utils/time.d.ts.map +1 -1
- package/dist/react-native/utils/time.js +19 -0
- package/dist/react-native/utils/time.js.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/client/Item/Item.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../../ClientContext.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport {\n Constants,\n copyObject,\n createDocumentUri,\n getIdFromLink,\n getPathFromLink,\n isItemResourceValid,\n ResourceType,\n StatusCodes,\n} from \"../../common/index.js\";\nimport type { PartitionKey, PartitionKeyInternal } from \"../../documents/index.js\";\nimport { convertToInternalPartitionKey } from \"../../documents/index.js\";\nimport type { RequestOptions, Response } from \"../../request/index.js\";\nimport { ErrorResponse } from \"../../request/index.js\";\nimport type { PatchRequestBody } from \"../../utils/patch.js\";\nimport { PatchOperationType } from \"../../utils/patch.js\";\nimport type { Container } from \"../Container/index.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { ItemDefinition } from \"./ItemDefinition.js\";\nimport { ItemResponse } from \"./ItemResponse.js\";\nimport { getEmptyCosmosDiagnostics, withDiagnostics } from \"../../utils/diagnostics.js\";\nimport { setPartitionKeyIfUndefined } from \"../../extractPartitionKey.js\";\n\n/**\n * Used to perform operations on a specific item.\n *\n * @see {@link Items} for operations on all items; see `container.items`.\n */\nexport class Item {\n private partitionKey: PartitionKeyInternal;\n /**\n * Returns a reference URL to the resource. Used for linking in Permissions.\n */\n public get url(): string {\n return createDocumentUri(this.container.database.id, this.container.id, this.id);\n }\n\n /**\n * @hidden\n * @param container - The parent {@link Container}.\n * @param id - The id of the given {@link Item}.\n * @param partitionKey - The primary key of the given {@link Item} (only for partitioned containers).\n */\n constructor(\n public readonly container: Container,\n public readonly id: string,\n private readonly clientContext: ClientContext,\n partitionKey?: PartitionKey,\n ) {\n this.partitionKey =\n partitionKey === undefined ? undefined : convertToInternalPartitionKey(partitionKey);\n }\n\n /**\n * Read the item's definition.\n *\n * Any provided type, T, is not necessarily enforced by the SDK.\n * You may get more or less properties and it's up to your logic to enforce it.\n * If the type, T, is a class, it won't pass `typeof` comparisons, because it won't have a match prototype.\n * It's recommended to only use interfaces.\n *\n * There is no set schema for JSON items. They may contain any number of custom properties.\n *\n * @param options - Additional options for the request\n *\n * @example Using custom type for response\n * ```ts snippet:ItemRead\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * interface TodoItem {\n * title: string;\n * done: boolean;\n * id: string;\n * }\n *\n * const { resource: item } = await container.item(\"id\", \"<pkValue>\").read<TodoItem>();\n * ```\n */\n public async read<T extends ItemDefinition = any>(\n options: RequestOptions = {},\n ): Promise<ItemResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n this.partitionKey = await setPartitionKeyIfUndefined(\n diagnosticNode,\n this.container,\n this.partitionKey,\n );\n let url = this.url;\n let partitionKey = this.partitionKey;\n let response: Response<T & Resource>;\n try {\n if (this.clientContext.enableEncryption) {\n await this.container.checkAndInitializeEncryption();\n options.containerRid = this.container._rid;\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n );\n const { partitionKeyList: encryptedPartitionKey, encryptedCount } =\n await this.container.encryptionProcessor.getEncryptedPartitionKeyValue(\n this.partitionKey,\n );\n partitionKey = encryptedPartitionKey;\n count += encryptedCount;\n if (await this.container.encryptionProcessor.isPathEncrypted(\"/id\")) {\n url = await this.container.encryptionProcessor.getEncryptedUrl(this.url);\n count++;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n count,\n );\n }\n const path = getPathFromLink(url);\n const id = getIdFromLink(url);\n\n response = await this.clientContext.read<T>({\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n diagnosticNode,\n });\n } catch (error: any) {\n if (this.clientContext.enableEncryption) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n if (error.code !== StatusCodes.NotFound) {\n throw error;\n }\n response = error;\n }\n if (this.clientContext.enableEncryption) {\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsDecryptOperation);\n const { body, propertiesDecryptedCount } = await this.container.encryptionProcessor.decrypt(\n response.result,\n );\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n propertiesDecryptedCount,\n );\n response.result = body;\n }\n return new ItemResponse(\n response.result,\n response.headers,\n response.code,\n response.substatus,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Replace the item's definition.\n *\n * There is no set schema for JSON items. They may contain any number of custom properties.\n *\n * @param body - The definition to replace the existing {@link Item}'s definition with.\n * @param options - Additional options for the request\n * @example\n * ```ts snippet:ItemReplaceItemDefinition\n * import { CosmosClient, ItemDefinition } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const item: ItemDefinition = {\n * id: \"id\",\n * title: \"new_title\",\n * };\n *\n * const { resource: replacedItem } = await container.item(\"id\").replace(item);\n * ```\n */\n\n public replace(\n body: ItemDefinition,\n options?: RequestOptions,\n ): Promise<ItemResponse<ItemDefinition>>;\n /**\n * Replace the item's definition.\n *\n * Any provided type, T, is not necessarily enforced by the SDK.\n * You may get more or less properties and it's up to your logic to enforce it.\n *\n * There is no set schema for JSON items. They may contain any number of custom properties.\n *\n * @param body - The definition to replace the existing {@link Item}'s definition with.\n * @param options - Additional options for the request\n * @example\n * ```ts snippet:ItemReplace\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * interface TodoItem {\n * title: string;\n * done: boolean;\n * id: string;\n * }\n *\n * const { resource: item } = await container.item(\"id\", \"<pkValue>\").read<TodoItem>();\n *\n * item.done = true;\n * const { resource: replacedItem } = await container.item(\"id\").replace<TodoItem>(item);\n * ```\n */\n public replace<T extends ItemDefinition>(\n body: T,\n options?: RequestOptions,\n ): Promise<ItemResponse<T>>;\n public async replace<T extends ItemDefinition>(\n body: T,\n options: RequestOptions = {},\n ): Promise<ItemResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n this.partitionKey = await setPartitionKeyIfUndefined(\n diagnosticNode,\n this.container,\n this.partitionKey,\n );\n let partitionKey = this.partitionKey;\n const err = {};\n if (!isItemResourceValid(body, err)) {\n throw err;\n }\n let url = this.url;\n\n let response: Response<T & Resource>;\n try {\n if (this.clientContext.enableEncryption) {\n // returns copy to avoid encryption of original body passed\n body = copyObject(body);\n options = options || {};\n await this.container.checkAndInitializeEncryption();\n options.containerRid = this.container._rid;\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n );\n const { body: encryptedBody, propertiesEncryptedCount } =\n await this.container.encryptionProcessor.encrypt(body);\n body = encryptedBody;\n count += propertiesEncryptedCount;\n const { partitionKeyList: encryptedPartitionKeyList, encryptedCount } =\n await this.container.encryptionProcessor.getEncryptedPartitionKeyValue(\n this.partitionKey,\n );\n partitionKey = encryptedPartitionKeyList;\n count += encryptedCount;\n if (await this.container.encryptionProcessor.isPathEncrypted(\"/id\")) {\n url = await this.container.encryptionProcessor.getEncryptedUrl(this.url);\n count++;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n count,\n );\n }\n const path = getPathFromLink(url);\n const id = getIdFromLink(url);\n\n response = await this.clientContext.replace<T>({\n body,\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n diagnosticNode,\n });\n } catch (error: any) {\n if (this.clientContext.enableEncryption) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n throw error;\n }\n if (this.clientContext.enableEncryption) {\n try {\n // try block for decrypting response. This is done so that we can throw special error message in case of decryption failure\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n );\n const { body: result, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(response.result);\n response.result = result;\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n propertiesDecryptedCount,\n );\n } catch (error) {\n const decryptionError = new ErrorResponse(\n `Item replace operation was successful but response decryption failed: + ${error.message}`,\n );\n decryptionError.code = StatusCodes.ServiceUnavailable;\n throw decryptionError;\n }\n }\n return new ItemResponse(\n response.result,\n response.headers,\n response.code,\n response.substatus,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Delete the item.\n *\n * Any provided type, T, is not necessarily enforced by the SDK.\n * You may get more or less properties and it's up to your logic to enforce it.\n *\n * @param options - Additional options for the request\n * @example\n * ```ts snippet:ItemDelete\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * interface TodoItem {\n * title: string;\n * done: boolean;\n * id: string;\n * }\n *\n * const { resource: item } = await container.item(\"id\", \"<pkValue>\").read<TodoItem>();\n *\n * await container.item(\"id\").delete<TodoItem>();\n * ```\n */\n public async delete<T extends ItemDefinition = any>(\n options: RequestOptions = {},\n ): Promise<ItemResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n this.partitionKey = await setPartitionKeyIfUndefined(\n diagnosticNode,\n this.container,\n this.partitionKey,\n );\n let partitionKey = this.partitionKey;\n let url = this.url;\n let response: Response<T & Resource>;\n try {\n if (this.clientContext.enableEncryption) {\n await this.container.checkAndInitializeEncryption();\n options.containerRid = this.container._rid;\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n );\n const { partitionKeyList, encryptedCount } =\n await this.container.encryptionProcessor.getEncryptedPartitionKeyValue(\n this.partitionKey,\n );\n partitionKey = partitionKeyList;\n count += encryptedCount;\n if (await this.container.encryptionProcessor.isPathEncrypted(\"/id\")) {\n url = await this.container.encryptionProcessor.getEncryptedUrl(this.url);\n count++;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n count,\n );\n }\n const path = getPathFromLink(url);\n const id = getIdFromLink(url);\n\n response = await this.clientContext.delete<T>({\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n diagnosticNode,\n });\n } catch (error: any) {\n if (this.clientContext.enableEncryption) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n throw error;\n }\n\n return new ItemResponse(\n response.result,\n response.headers,\n response.code,\n response.substatus,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Perform a JSONPatch on the item.\n *\n * Any provided type, T, is not necessarily enforced by the SDK.\n * You may get more or less properties and it's up to your logic to enforce it.\n *\n * @param options - Additional options for the request\n * @example\n * ```ts snippet:ItemPatch\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * interface TodoItem {\n * title: string;\n * done: boolean;\n * id: string;\n * }\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const { resource: item } = await container.item(\"id\", \"<pkValue>\").read<TodoItem>();\n *\n * const { resource: patchedItem } = await container.item(\"id\").patch<TodoItem>([\n * {\n * op: \"replace\", // Operation type (can be replace, add, remove, set, incr)\n * path: \"/title\", // The path to the property to update\n * value: \"new-title\", // New value for the property\n * },\n * {\n * op: \"remove\",\n * path: \"/done\",\n * },\n * ]);\n * ```\n */\n public async patch<T extends ItemDefinition = any>(\n body: PatchRequestBody,\n options: RequestOptions = {},\n ): Promise<ItemResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n this.partitionKey = await setPartitionKeyIfUndefined(\n diagnosticNode,\n this.container,\n this.partitionKey,\n );\n let url = this.url;\n let partitionKey = this.partitionKey;\n let response: Response<T & Resource>;\n try {\n if (this.clientContext.enableEncryption) {\n await this.container.checkAndInitializeEncryption();\n options.containerRid = this.container._rid;\n // returns copy to avoid encryption of original body passed\n body = copyObject(body);\n const operations = Array.isArray(body) ? body : body.operations;\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n );\n let propertiesEncryptedCount = 0;\n for (const operation of operations) {\n if (operation.op === PatchOperationType.remove) {\n continue;\n }\n const isPathEncrypted = await this.container.encryptionProcessor.isPathEncrypted(\n operation.path,\n );\n if (!isPathEncrypted) {\n continue;\n }\n if (operation.op === PatchOperationType.incr) {\n throw new ErrorResponse(\n `Increment patch operation is not allowed for encrypted path '${operation.path}'`,\n );\n }\n if (\"value\" in operation) {\n operation.value = await this.container.encryptionProcessor.encryptProperty(\n operation.path,\n operation.value,\n );\n }\n propertiesEncryptedCount++;\n }\n const { partitionKeyList, encryptedCount } =\n await this.container.encryptionProcessor.getEncryptedPartitionKeyValue(partitionKey);\n partitionKey = partitionKeyList;\n propertiesEncryptedCount += encryptedCount;\n if (await this.container.encryptionProcessor.isPathEncrypted(\"/id\")) {\n url = await this.container.encryptionProcessor.getEncryptedUrl(this.url);\n propertiesEncryptedCount++;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n propertiesEncryptedCount,\n );\n }\n const path = getPathFromLink(url);\n const id = getIdFromLink(url);\n response = await this.clientContext.patch<T>({\n body,\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n diagnosticNode,\n });\n } catch (error: any) {\n if (this.clientContext.enableEncryption) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n throw error;\n }\n if (this.clientContext.enableEncryption) {\n try {\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n );\n const { body: result, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(response.result);\n response.result = result;\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n propertiesDecryptedCount,\n );\n } catch (error) {\n const decryptionError = new ErrorResponse(\n `Item patch operation was successful but response decryption failed: + ${error.message}`,\n );\n decryptionError.code = StatusCodes.ServiceUnavailable;\n throw decryptionError;\n }\n }\n\n return new ItemResponse(\n response.result,\n response.headers,\n response.code,\n response.substatus,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/client/Item/Item.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../../ClientContext.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport {\n Constants,\n copyObject,\n createDocumentUri,\n getIdFromLink,\n getPathFromLink,\n isItemResourceValid,\n ResourceType,\n StatusCodes,\n} from \"../../common/index.js\";\nimport type { PartitionKey, PartitionKeyInternal } from \"../../documents/index.js\";\nimport { convertToInternalPartitionKey } from \"../../documents/index.js\";\nimport type { RequestOptions, Response } from \"../../request/index.js\";\nimport { ErrorResponse } from \"../../request/index.js\";\nimport type { PatchRequestBody } from \"../../utils/patch.js\";\nimport { PatchOperationType } from \"../../utils/patch.js\";\nimport type { Container } from \"../Container/index.js\";\nimport type { Resource } from \"../Resource.js\";\nimport type { ItemDefinition } from \"./ItemDefinition.js\";\nimport { ItemResponse } from \"./ItemResponse.js\";\nimport { getEmptyCosmosDiagnostics, withDiagnostics } from \"../../utils/diagnostics.js\";\nimport { setPartitionKeyIfUndefined } from \"../../extractPartitionKey.js\";\nimport { computePartitionKeyRangeId } from \"../ClientUtils.js\";\n\n/**\n * Used to perform operations on a specific item.\n *\n * @see {@link Items} for operations on all items; see `container.items`.\n */\nexport class Item {\n private partitionKey: PartitionKeyInternal;\n /**\n * Returns a reference URL to the resource. Used for linking in Permissions.\n */\n public get url(): string {\n return createDocumentUri(this.container.database.id, this.container.id, this.id);\n }\n\n /**\n * @hidden\n * @param container - The parent {@link Container}.\n * @param id - The id of the given {@link Item}.\n * @param partitionKey - The primary key of the given {@link Item} (only for partitioned containers).\n */\n constructor(\n public readonly container: Container,\n public readonly id: string,\n private readonly clientContext: ClientContext,\n partitionKey?: PartitionKey,\n ) {\n this.partitionKey =\n partitionKey === undefined ? undefined : convertToInternalPartitionKey(partitionKey);\n }\n\n /**\n * Read the item's definition.\n *\n * Any provided type, T, is not necessarily enforced by the SDK.\n * You may get more or less properties and it's up to your logic to enforce it.\n * If the type, T, is a class, it won't pass `typeof` comparisons, because it won't have a match prototype.\n * It's recommended to only use interfaces.\n *\n * There is no set schema for JSON items. They may contain any number of custom properties.\n *\n * @param options - Additional options for the request\n *\n * @example Using custom type for response\n * ```ts snippet:ItemRead\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * interface TodoItem {\n * title: string;\n * done: boolean;\n * id: string;\n * }\n *\n * const { resource: item } = await container.item(\"id\", \"<pkValue>\").read<TodoItem>();\n * ```\n */\n public async read<T extends ItemDefinition = any>(\n options: RequestOptions = {},\n ): Promise<ItemResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n this.partitionKey = await setPartitionKeyIfUndefined(\n diagnosticNode,\n this.container,\n this.partitionKey,\n );\n let url = this.url;\n let partitionKey = this.partitionKey;\n let response: Response<T & Resource>;\n try {\n if (this.clientContext.enableEncryption) {\n await this.container.checkAndInitializeEncryption();\n options.containerRid = this.container._rid;\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n );\n const { partitionKeyList: encryptedPartitionKey, encryptedCount } =\n await this.container.encryptionProcessor.getEncryptedPartitionKeyValue(\n this.partitionKey,\n );\n partitionKey = encryptedPartitionKey;\n count += encryptedCount;\n if (await this.container.encryptionProcessor.isPathEncrypted(\"/id\")) {\n url = await this.container.encryptionProcessor.getEncryptedUrl(this.url);\n count++;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n count,\n );\n }\n const path = getPathFromLink(url);\n const id = getIdFromLink(url);\n\n const isPartitionLevelFailOverEnabled =\n this.clientContext.isPartitionLevelFailOverEnabled();\n const partitionKeyRangeId = await computePartitionKeyRangeId(\n diagnosticNode,\n partitionKey,\n this.clientContext.partitionKeyRangeCache,\n isPartitionLevelFailOverEnabled,\n this.container,\n );\n\n response = await this.clientContext.read<T>({\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n diagnosticNode,\n partitionKeyRangeId,\n });\n } catch (error: any) {\n if (this.clientContext.enableEncryption) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n if (error.code !== StatusCodes.NotFound) {\n throw error;\n }\n response = error;\n }\n if (this.clientContext.enableEncryption) {\n diagnosticNode.beginEncryptionDiagnostics(Constants.Encryption.DiagnosticsDecryptOperation);\n const { body, propertiesDecryptedCount } = await this.container.encryptionProcessor.decrypt(\n response.result,\n );\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n propertiesDecryptedCount,\n );\n response.result = body;\n }\n return new ItemResponse(\n response.result,\n response.headers,\n response.code,\n response.substatus,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Replace the item's definition.\n *\n * There is no set schema for JSON items. They may contain any number of custom properties.\n *\n * @param body - The definition to replace the existing {@link Item}'s definition with.\n * @param options - Additional options for the request\n * @example\n * ```ts snippet:ItemReplaceItemDefinition\n * import { CosmosClient, ItemDefinition } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const item: ItemDefinition = {\n * id: \"id\",\n * title: \"new_title\",\n * };\n *\n * const { resource: replacedItem } = await container.item(\"id\").replace(item);\n * ```\n */\n\n public replace(\n body: ItemDefinition,\n options?: RequestOptions,\n ): Promise<ItemResponse<ItemDefinition>>;\n /**\n * Replace the item's definition.\n *\n * Any provided type, T, is not necessarily enforced by the SDK.\n * You may get more or less properties and it's up to your logic to enforce it.\n *\n * There is no set schema for JSON items. They may contain any number of custom properties.\n *\n * @param body - The definition to replace the existing {@link Item}'s definition with.\n * @param options - Additional options for the request\n * @example\n * ```ts snippet:ItemReplace\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * interface TodoItem {\n * title: string;\n * done: boolean;\n * id: string;\n * }\n *\n * const { resource: item } = await container.item(\"id\", \"<pkValue>\").read<TodoItem>();\n *\n * item.done = true;\n * const { resource: replacedItem } = await container.item(\"id\").replace<TodoItem>(item);\n * ```\n */\n public replace<T extends ItemDefinition>(\n body: T,\n options?: RequestOptions,\n ): Promise<ItemResponse<T>>;\n public async replace<T extends ItemDefinition>(\n body: T,\n options: RequestOptions = {},\n ): Promise<ItemResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n this.partitionKey = await setPartitionKeyIfUndefined(\n diagnosticNode,\n this.container,\n this.partitionKey,\n );\n let partitionKey = this.partitionKey;\n const err = {};\n if (!isItemResourceValid(body, err)) {\n throw err;\n }\n let url = this.url;\n\n let response: Response<T & Resource>;\n try {\n if (this.clientContext.enableEncryption) {\n // returns copy to avoid encryption of original body passed\n body = copyObject(body);\n options = options || {};\n await this.container.checkAndInitializeEncryption();\n options.containerRid = this.container._rid;\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n );\n const { body: encryptedBody, propertiesEncryptedCount } =\n await this.container.encryptionProcessor.encrypt(body);\n body = encryptedBody;\n count += propertiesEncryptedCount;\n const { partitionKeyList: encryptedPartitionKeyList, encryptedCount } =\n await this.container.encryptionProcessor.getEncryptedPartitionKeyValue(\n this.partitionKey,\n );\n partitionKey = encryptedPartitionKeyList;\n count += encryptedCount;\n if (await this.container.encryptionProcessor.isPathEncrypted(\"/id\")) {\n url = await this.container.encryptionProcessor.getEncryptedUrl(this.url);\n count++;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n count,\n );\n }\n const path = getPathFromLink(url);\n const id = getIdFromLink(url);\n\n const isPartitionLevelFailOverEnabled =\n this.clientContext.isPartitionLevelFailOverEnabled();\n const partitionKeyRangeId = await computePartitionKeyRangeId(\n diagnosticNode,\n partitionKey,\n this.clientContext.partitionKeyRangeCache,\n isPartitionLevelFailOverEnabled,\n this.container,\n );\n\n response = await this.clientContext.replace<T>({\n body,\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n diagnosticNode,\n partitionKeyRangeId,\n });\n } catch (error: any) {\n if (this.clientContext.enableEncryption) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n throw error;\n }\n if (this.clientContext.enableEncryption) {\n try {\n // try block for decrypting response. This is done so that we can throw special error message in case of decryption failure\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n );\n const { body: result, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(response.result);\n response.result = result;\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n propertiesDecryptedCount,\n );\n } catch (error) {\n const decryptionError = new ErrorResponse(\n `Item replace operation was successful but response decryption failed: + ${error.message}`,\n );\n decryptionError.code = StatusCodes.ServiceUnavailable;\n throw decryptionError;\n }\n }\n return new ItemResponse(\n response.result,\n response.headers,\n response.code,\n response.substatus,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Delete the item.\n *\n * Any provided type, T, is not necessarily enforced by the SDK.\n * You may get more or less properties and it's up to your logic to enforce it.\n *\n * @param options - Additional options for the request\n * @example\n * ```ts snippet:ItemDelete\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * interface TodoItem {\n * title: string;\n * done: boolean;\n * id: string;\n * }\n *\n * const { resource: item } = await container.item(\"id\", \"<pkValue>\").read<TodoItem>();\n *\n * await container.item(\"id\").delete<TodoItem>();\n * ```\n */\n public async delete<T extends ItemDefinition = any>(\n options: RequestOptions = {},\n ): Promise<ItemResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n this.partitionKey = await setPartitionKeyIfUndefined(\n diagnosticNode,\n this.container,\n this.partitionKey,\n );\n let partitionKey = this.partitionKey;\n let url = this.url;\n let response: Response<T & Resource>;\n try {\n if (this.clientContext.enableEncryption) {\n await this.container.checkAndInitializeEncryption();\n options.containerRid = this.container._rid;\n let count = 0;\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n );\n const { partitionKeyList, encryptedCount } =\n await this.container.encryptionProcessor.getEncryptedPartitionKeyValue(\n this.partitionKey,\n );\n partitionKey = partitionKeyList;\n count += encryptedCount;\n if (await this.container.encryptionProcessor.isPathEncrypted(\"/id\")) {\n url = await this.container.encryptionProcessor.getEncryptedUrl(this.url);\n count++;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n count,\n );\n }\n const path = getPathFromLink(url);\n const id = getIdFromLink(url);\n\n const isPartitionLevelFailOverEnabled =\n this.clientContext.isPartitionLevelFailOverEnabled();\n const partitionKeyRangeId = await computePartitionKeyRangeId(\n diagnosticNode,\n partitionKey,\n this.clientContext.partitionKeyRangeCache,\n isPartitionLevelFailOverEnabled,\n this.container,\n );\n\n response = await this.clientContext.delete<T>({\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n diagnosticNode,\n partitionKeyRangeId,\n });\n } catch (error: any) {\n if (this.clientContext.enableEncryption) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n throw error;\n }\n\n return new ItemResponse(\n response.result,\n response.headers,\n response.code,\n response.substatus,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n\n /**\n * Perform a JSONPatch on the item.\n *\n * Any provided type, T, is not necessarily enforced by the SDK.\n * You may get more or less properties and it's up to your logic to enforce it.\n *\n * @param options - Additional options for the request\n * @example\n * ```ts snippet:ItemPatch\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * interface TodoItem {\n * title: string;\n * done: boolean;\n * id: string;\n * }\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const { resource: item } = await container.item(\"id\", \"<pkValue>\").read<TodoItem>();\n *\n * const { resource: patchedItem } = await container.item(\"id\").patch<TodoItem>([\n * {\n * op: \"replace\", // Operation type (can be replace, add, remove, set, incr)\n * path: \"/title\", // The path to the property to update\n * value: \"new-title\", // New value for the property\n * },\n * {\n * op: \"remove\",\n * path: \"/done\",\n * },\n * ]);\n * ```\n */\n public async patch<T extends ItemDefinition = any>(\n body: PatchRequestBody,\n options: RequestOptions = {},\n ): Promise<ItemResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n this.partitionKey = await setPartitionKeyIfUndefined(\n diagnosticNode,\n this.container,\n this.partitionKey,\n );\n let url = this.url;\n let partitionKey = this.partitionKey;\n let response: Response<T & Resource>;\n try {\n if (this.clientContext.enableEncryption) {\n await this.container.checkAndInitializeEncryption();\n options.containerRid = this.container._rid;\n // returns copy to avoid encryption of original body passed\n body = copyObject(body);\n const operations = Array.isArray(body) ? body : body.operations;\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n );\n let propertiesEncryptedCount = 0;\n for (const operation of operations) {\n if (operation.op === PatchOperationType.remove) {\n continue;\n }\n const isPathEncrypted = await this.container.encryptionProcessor.isPathEncrypted(\n operation.path,\n );\n if (!isPathEncrypted) {\n continue;\n }\n if (operation.op === PatchOperationType.incr) {\n throw new ErrorResponse(\n `Increment patch operation is not allowed for encrypted path '${operation.path}'`,\n );\n }\n if (\"value\" in operation) {\n operation.value = await this.container.encryptionProcessor.encryptProperty(\n operation.path,\n operation.value,\n );\n }\n propertiesEncryptedCount++;\n }\n const { partitionKeyList, encryptedCount } =\n await this.container.encryptionProcessor.getEncryptedPartitionKeyValue(partitionKey);\n partitionKey = partitionKeyList;\n propertiesEncryptedCount += encryptedCount;\n if (await this.container.encryptionProcessor.isPathEncrypted(\"/id\")) {\n url = await this.container.encryptionProcessor.getEncryptedUrl(this.url);\n propertiesEncryptedCount++;\n }\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsEncryptOperation,\n propertiesEncryptedCount,\n );\n }\n const path = getPathFromLink(url);\n const id = getIdFromLink(url);\n\n const isPartitionLevelFailOverEnabled =\n this.clientContext.isPartitionLevelFailOverEnabled();\n const partitionKeyRangeId = await computePartitionKeyRangeId(\n diagnosticNode,\n partitionKey,\n this.clientContext.partitionKeyRangeCache,\n isPartitionLevelFailOverEnabled,\n this.container,\n );\n\n response = await this.clientContext.patch<T>({\n body,\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n options,\n partitionKey: partitionKey,\n diagnosticNode,\n partitionKeyRangeId,\n });\n } catch (error: any) {\n if (this.clientContext.enableEncryption) {\n await this.container.throwIfRequestNeedsARetryPostPolicyRefresh(error);\n }\n throw error;\n }\n if (this.clientContext.enableEncryption) {\n try {\n diagnosticNode.beginEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n );\n const { body: result, propertiesDecryptedCount } =\n await this.container.encryptionProcessor.decrypt(response.result);\n response.result = result;\n diagnosticNode.endEncryptionDiagnostics(\n Constants.Encryption.DiagnosticsDecryptOperation,\n propertiesDecryptedCount,\n );\n } catch (error) {\n const decryptionError = new ErrorResponse(\n `Item patch operation was successful but response decryption failed: + ${error.message}`,\n );\n decryptionError.code = StatusCodes.ServiceUnavailable;\n throw decryptionError;\n }\n }\n\n return new ItemResponse(\n response.result,\n response.headers,\n response.code,\n response.substatus,\n this,\n getEmptyCosmosDiagnostics(),\n );\n }, this.clientContext);\n }\n}\n"]}
|
|
@@ -359,6 +359,7 @@ export declare class Items {
|
|
|
359
359
|
executeBulkOperations(operations: OperationInput[], options?: RequestOptions): Promise<BulkOperationResult[]>;
|
|
360
360
|
/**
|
|
361
361
|
* Execute bulk operations on items.
|
|
362
|
+
* @deprecated Use `executeBulkOperations` instead.
|
|
362
363
|
*
|
|
363
364
|
* Bulk takes an array of Operations which are typed based on what the operation does.
|
|
364
365
|
* The choices are: Create, Upsert, Read, Replace, and Delete
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Items.d.ts","sourceRoot":"","sources":["../../../../src/client/Item/Items.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAY5D,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,uBAAuB,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAEV,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,qBAAqB,EAErB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAW9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Items.d.ts","sourceRoot":"","sources":["../../../../src/client/Item/Items.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,13 @@ import { ItemResponse } from "./ItemResponse.js";
|
|
|
9
9
|
import { isKeyInRange, prepareOperations, decorateBatchOperation, splitBatchBasedOnBodySize, encryptOperationInput, } from "../../utils/batch.js";
|
|
10
10
|
import { assertNotUndefined, isPrimitivePartitionKeyValue } from "../../utils/typeChecks.js";
|
|
11
11
|
import { hashPartitionKey } from "../../utils/hashing/hash.js";
|
|
12
|
-
import {
|
|
12
|
+
import { QueryRange } from "../../routing/index.js";
|
|
13
13
|
import { convertToInternalPartitionKey } from "../../documents/index.js";
|
|
14
14
|
import { validateChangeFeedIteratorOptions } from "../../client/ChangeFeed/changeFeedUtils.js";
|
|
15
15
|
import { DiagnosticNodeType } from "../../diagnostics/DiagnosticNodeInternal.js";
|
|
16
16
|
import { getEmptyCosmosDiagnostics, withDiagnostics, addDiagnosticChild, } from "../../utils/diagnostics.js";
|
|
17
17
|
import { randomUUID } from "@azure/core-util";
|
|
18
|
-
import { readPartitionKeyDefinition } from "../ClientUtils.js";
|
|
18
|
+
import { computePartitionKeyRangeId, readPartitionKeyDefinition } from "../ClientUtils.js";
|
|
19
19
|
import { ChangeFeedIteratorBuilder } from "../ChangeFeed/ChangeFeedIteratorBuilder.js";
|
|
20
20
|
import { TypeMarker } from "../../encryption/enums/TypeMarker.js";
|
|
21
21
|
import { EncryptionItemQueryIterator } from "../../encryption/EncryptionItemQueryIterator.js";
|
|
@@ -41,12 +41,18 @@ export class Items {
|
|
|
41
41
|
constructor(container, clientContext) {
|
|
42
42
|
this.container = container;
|
|
43
43
|
this.clientContext = clientContext;
|
|
44
|
-
this.partitionKeyRangeCache =
|
|
44
|
+
this.partitionKeyRangeCache = this.clientContext.partitionKeyRangeCache;
|
|
45
45
|
}
|
|
46
46
|
query(query, options = {}) {
|
|
47
47
|
const path = getPathFromLink(this.container.url, ResourceType.item);
|
|
48
48
|
const id = getIdFromLink(this.container.url);
|
|
49
49
|
const fetchFunction = async (diagnosticNode, innerOptions, correlatedActivityId) => {
|
|
50
|
+
let internalPartitionKey;
|
|
51
|
+
if (options.partitionKey) {
|
|
52
|
+
internalPartitionKey = convertToInternalPartitionKey(options.partitionKey);
|
|
53
|
+
}
|
|
54
|
+
const isPartitionLevelFailOverEnabled = this.clientContext.isPartitionLevelFailOverEnabled();
|
|
55
|
+
const partitionKeyRangeId = await computePartitionKeyRangeId(diagnosticNode, internalPartitionKey, this.partitionKeyRangeCache, isPartitionLevelFailOverEnabled, this.container);
|
|
50
56
|
const response = await this.clientContext.queryFeed({
|
|
51
57
|
path,
|
|
52
58
|
resourceType: ResourceType.item,
|
|
@@ -57,6 +63,7 @@ export class Items {
|
|
|
57
63
|
partitionKey: options.partitionKey,
|
|
58
64
|
diagnosticNode,
|
|
59
65
|
correlatedActivityId: correlatedActivityId,
|
|
66
|
+
partitionKeyRangeId,
|
|
60
67
|
});
|
|
61
68
|
return response;
|
|
62
69
|
};
|
|
@@ -96,6 +103,15 @@ export class Items {
|
|
|
96
103
|
async getEncryptionQueryIterator(queryBuilder, options = {}) {
|
|
97
104
|
const encryptionSqlQuerySpec = queryBuilder.toEncryptionSqlQuerySpec();
|
|
98
105
|
const sqlQuerySpec = await this.buildSqlQuerySpec(encryptionSqlQuerySpec);
|
|
106
|
+
if (this.clientContext.enableEncryption && options.partitionKey) {
|
|
107
|
+
await this.container.checkAndInitializeEncryption();
|
|
108
|
+
const { partitionKeyList, encryptedCount } = await this.container.encryptionProcessor.getEncryptedPartitionKeyValue([
|
|
109
|
+
options.partitionKey,
|
|
110
|
+
]);
|
|
111
|
+
if (encryptedCount > 0) {
|
|
112
|
+
options.partitionKey = partitionKeyList[0];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
99
115
|
const iterator = this.query(sqlQuerySpec, options);
|
|
100
116
|
return iterator;
|
|
101
117
|
}
|
|
@@ -247,6 +263,8 @@ export class Items {
|
|
|
247
263
|
}
|
|
248
264
|
const path = getPathFromLink(this.container.url, ResourceType.item);
|
|
249
265
|
const id = getIdFromLink(this.container.url);
|
|
266
|
+
const isPartitionLevelFailOverEnabled = this.clientContext.isPartitionLevelFailOverEnabled();
|
|
267
|
+
const partitionKeyRangeId = await computePartitionKeyRangeId(diagnosticNode, partitionKey, this.partitionKeyRangeCache, isPartitionLevelFailOverEnabled, this.container, partitionKeyDefinition);
|
|
250
268
|
response = await this.clientContext.create({
|
|
251
269
|
body,
|
|
252
270
|
path,
|
|
@@ -255,6 +273,7 @@ export class Items {
|
|
|
255
273
|
diagnosticNode,
|
|
256
274
|
options,
|
|
257
275
|
partitionKey,
|
|
276
|
+
partitionKeyRangeId,
|
|
258
277
|
});
|
|
259
278
|
}
|
|
260
279
|
catch (error) {
|
|
@@ -312,6 +331,8 @@ export class Items {
|
|
|
312
331
|
}
|
|
313
332
|
const path = getPathFromLink(this.container.url, ResourceType.item);
|
|
314
333
|
const id = getIdFromLink(this.container.url);
|
|
334
|
+
const isPartitionLevelFailOverEnabled = this.clientContext.isPartitionLevelFailOverEnabled();
|
|
335
|
+
const partitionKeyRangeId = await computePartitionKeyRangeId(diagnosticNode, partitionKey, this.partitionKeyRangeCache, isPartitionLevelFailOverEnabled, this.container, partitionKeyDefinition);
|
|
315
336
|
response = await this.clientContext.upsert({
|
|
316
337
|
body,
|
|
317
338
|
path,
|
|
@@ -320,6 +341,7 @@ export class Items {
|
|
|
320
341
|
options,
|
|
321
342
|
partitionKey,
|
|
322
343
|
diagnosticNode,
|
|
344
|
+
partitionKeyRangeId,
|
|
323
345
|
});
|
|
324
346
|
}
|
|
325
347
|
catch (error) {
|
|
@@ -386,6 +408,7 @@ export class Items {
|
|
|
386
408
|
}
|
|
387
409
|
/**
|
|
388
410
|
* Execute bulk operations on items.
|
|
411
|
+
* @deprecated Use `executeBulkOperations` instead.
|
|
389
412
|
*
|
|
390
413
|
* Bulk takes an array of Operations which are typed based on what the operation does.
|
|
391
414
|
* The choices are: Create, Upsert, Read, Replace, and Delete
|
|
@@ -651,6 +674,8 @@ export class Items {
|
|
|
651
674
|
count += totalPropertiesEncryptedCount;
|
|
652
675
|
diagnosticNode.endEncryptionDiagnostics(Constants.Encryption.DiagnosticsEncryptOperation, count);
|
|
653
676
|
}
|
|
677
|
+
const isPartitionLevelFailOverEnabled = this.clientContext.isPartitionLevelFailOverEnabled();
|
|
678
|
+
const partitionKeyRangeId = await computePartitionKeyRangeId(diagnosticNode, partitionKey, this.partitionKeyRangeCache, isPartitionLevelFailOverEnabled, this.container);
|
|
654
679
|
response = await this.clientContext.batch({
|
|
655
680
|
body: operations,
|
|
656
681
|
partitionKey,
|
|
@@ -658,6 +683,7 @@ export class Items {
|
|
|
658
683
|
resourceId: this.container.url,
|
|
659
684
|
options,
|
|
660
685
|
diagnosticNode,
|
|
686
|
+
partitionKeyRangeId,
|
|
661
687
|
});
|
|
662
688
|
}
|
|
663
689
|
catch (err) {
|