@azure/cosmos 4.9.2 → 4.9.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/common/constants.js +1 -1
- package/dist/browser/common/constants.js.map +1 -1
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +2 -1
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +6 -5
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -1
- package/dist/commonjs/ChangeFeedIterator.js +6 -0
- package/dist/commonjs/ChangeFeedIterator.js.map +2 -2
- package/dist/commonjs/ChangeFeedOptions.js +1 -0
- package/dist/commonjs/ChangeFeedOptions.js.map +1 -1
- package/dist/commonjs/ChangeFeedResponse.js +5 -0
- package/dist/commonjs/ChangeFeedResponse.js.map +2 -2
- package/dist/commonjs/ClientContext.js +6 -0
- package/dist/commonjs/ClientContext.js.map +2 -2
- package/dist/commonjs/CosmosClient.js +1 -0
- package/dist/commonjs/CosmosClient.js.map +1 -1
- package/dist/commonjs/CosmosClientOptions.js +1 -0
- package/dist/commonjs/CosmosClientOptions.js.map +1 -1
- package/dist/commonjs/CosmosDiagnostics.js +1 -0
- package/dist/commonjs/CosmosDiagnostics.js.map +1 -1
- package/dist/commonjs/GlobalEndpointManagerOptions.js +1 -0
- package/dist/commonjs/GlobalEndpointManagerOptions.js.map +1 -1
- package/dist/commonjs/PartitionKeyRangeFailoverInfo.js +1 -0
- package/dist/commonjs/PartitionKeyRangeFailoverInfo.js.map +1 -1
- package/dist/commonjs/auth.js +1 -0
- package/dist/commonjs/auth.js.map +1 -1
- package/dist/commonjs/bulk/Batcher.js +1 -0
- package/dist/commonjs/bulk/Batcher.js.map +1 -1
- package/dist/commonjs/bulk/BulkHelper.js +1 -0
- package/dist/commonjs/bulk/BulkHelper.js.map +1 -1
- package/dist/commonjs/bulk/BulkResponse.js +1 -0
- package/dist/commonjs/bulk/BulkResponse.js.map +1 -1
- package/dist/commonjs/bulk/CongestionAlgorithm.js +1 -0
- package/dist/commonjs/bulk/CongestionAlgorithm.js.map +1 -1
- package/dist/commonjs/bulk/HelperPerPartition.js +1 -0
- package/dist/commonjs/bulk/HelperPerPartition.js.map +1 -1
- package/dist/commonjs/bulk/ItemOperation.js +1 -0
- package/dist/commonjs/bulk/ItemOperation.js.map +1 -1
- package/dist/commonjs/bulk/ItemOperationContext.js +1 -0
- package/dist/commonjs/bulk/ItemOperationContext.js.map +1 -1
- package/dist/commonjs/bulk/Limiter.js +1 -0
- package/dist/commonjs/bulk/Limiter.js.map +1 -1
- package/dist/commonjs/bulk/PartitionMetric.js +1 -0
- package/dist/commonjs/bulk/PartitionMetric.js.map +1 -1
- package/dist/commonjs/bulk/index.js +1 -0
- package/dist/commonjs/bulk/index.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedEnums.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedEnums.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js +9 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js.map +2 -2
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js +7 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +2 -2
- package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js +5 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +2 -2
- package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js +6 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +2 -2
- package/dist/commonjs/client/ChangeFeed/ChangeFeedMode.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedMode.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedPullModelIterator.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedPullModelIterator.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFrom.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFrom.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js +1 -0
- package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js +1 -0
- package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/FeedRange.js +1 -0
- package/dist/commonjs/client/ChangeFeed/FeedRange.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js +1 -0
- package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.js +1 -0
- package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/buildChangeFeedIterator.js +1 -0
- package/dist/commonjs/client/ChangeFeed/buildChangeFeedIterator.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js +1 -0
- package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/index.js +1 -0
- package/dist/commonjs/client/ChangeFeed/index.js.map +1 -1
- package/dist/commonjs/client/ClientUtils.js +1 -0
- package/dist/commonjs/client/ClientUtils.js.map +1 -1
- package/dist/commonjs/client/Conflict/Conflict.js +5 -0
- package/dist/commonjs/client/Conflict/Conflict.js.map +2 -2
- package/dist/commonjs/client/Conflict/ConflictDefinition.js +1 -0
- package/dist/commonjs/client/Conflict/ConflictDefinition.js.map +1 -1
- package/dist/commonjs/client/Conflict/ConflictResolutionMode.js +1 -0
- package/dist/commonjs/client/Conflict/ConflictResolutionMode.js.map +1 -1
- package/dist/commonjs/client/Conflict/ConflictResolutionPolicy.js +1 -0
- package/dist/commonjs/client/Conflict/ConflictResolutionPolicy.js.map +1 -1
- package/dist/commonjs/client/Conflict/ConflictResponse.js +1 -0
- package/dist/commonjs/client/Conflict/ConflictResponse.js.map +1 -1
- package/dist/commonjs/client/Conflict/Conflicts.js +3 -0
- package/dist/commonjs/client/Conflict/Conflicts.js.map +2 -2
- package/dist/commonjs/client/Conflict/index.js +1 -0
- package/dist/commonjs/client/Conflict/index.js.map +1 -1
- package/dist/commonjs/client/Container/Container.js +5 -0
- package/dist/commonjs/client/Container/Container.js.map +2 -2
- package/dist/commonjs/client/Container/ContainerDefinition.js +1 -0
- package/dist/commonjs/client/Container/ContainerDefinition.js.map +1 -1
- package/dist/commonjs/client/Container/ContainerRequest.js +1 -0
- package/dist/commonjs/client/Container/ContainerRequest.js.map +1 -1
- package/dist/commonjs/client/Container/ContainerResponse.js +1 -0
- package/dist/commonjs/client/Container/ContainerResponse.js.map +1 -1
- package/dist/commonjs/client/Container/Containers.js +4 -0
- package/dist/commonjs/client/Container/Containers.js.map +2 -2
- package/dist/commonjs/client/Container/PartitionKeyRange.js +1 -0
- package/dist/commonjs/client/Container/PartitionKeyRange.js.map +1 -1
- package/dist/commonjs/client/Container/UniqueKeyPolicy.js +1 -0
- package/dist/commonjs/client/Container/UniqueKeyPolicy.js.map +1 -1
- package/dist/commonjs/client/Container/index.js +1 -0
- package/dist/commonjs/client/Container/index.js.map +1 -1
- package/dist/commonjs/client/Database/Database.js +5 -0
- package/dist/commonjs/client/Database/Database.js.map +2 -2
- package/dist/commonjs/client/Database/DatabaseDefinition.js +1 -0
- package/dist/commonjs/client/Database/DatabaseDefinition.js.map +1 -1
- package/dist/commonjs/client/Database/DatabaseRequest.js +1 -0
- package/dist/commonjs/client/Database/DatabaseRequest.js.map +1 -1
- package/dist/commonjs/client/Database/DatabaseResponse.js +1 -0
- package/dist/commonjs/client/Database/DatabaseResponse.js.map +1 -1
- package/dist/commonjs/client/Database/Databases.js +4 -0
- package/dist/commonjs/client/Database/Databases.js.map +2 -2
- package/dist/commonjs/client/Database/index.js +1 -0
- package/dist/commonjs/client/Database/index.js.map +1 -1
- package/dist/commonjs/client/Item/Item.js +4 -0
- package/dist/commonjs/client/Item/Item.js.map +2 -2
- package/dist/commonjs/client/Item/ItemDefinition.js +1 -0
- package/dist/commonjs/client/Item/ItemDefinition.js.map +1 -1
- package/dist/commonjs/client/Item/ItemResponse.js +1 -0
- package/dist/commonjs/client/Item/ItemResponse.js.map +1 -1
- package/dist/commonjs/client/Item/Items.js +3 -0
- package/dist/commonjs/client/Item/Items.js.map +2 -2
- package/dist/commonjs/client/Item/index.js +1 -0
- package/dist/commonjs/client/Item/index.js.map +1 -1
- package/dist/commonjs/client/Offer/Offer.js +4 -0
- package/dist/commonjs/client/Offer/Offer.js.map +2 -2
- package/dist/commonjs/client/Offer/OfferDefinition.js +1 -0
- package/dist/commonjs/client/Offer/OfferDefinition.js.map +1 -1
- package/dist/commonjs/client/Offer/OfferResponse.js +1 -0
- package/dist/commonjs/client/Offer/OfferResponse.js.map +1 -1
- package/dist/commonjs/client/Offer/Offers.js +3 -0
- package/dist/commonjs/client/Offer/Offers.js.map +2 -2
- package/dist/commonjs/client/Offer/index.js +1 -0
- package/dist/commonjs/client/Offer/index.js.map +1 -1
- package/dist/commonjs/client/Permission/Permission.js +4 -0
- package/dist/commonjs/client/Permission/Permission.js.map +2 -2
- package/dist/commonjs/client/Permission/PermissionBody.js +1 -0
- package/dist/commonjs/client/Permission/PermissionBody.js.map +1 -1
- package/dist/commonjs/client/Permission/PermissionDefinition.js +1 -0
- package/dist/commonjs/client/Permission/PermissionDefinition.js.map +1 -1
- package/dist/commonjs/client/Permission/PermissionResponse.js +1 -0
- package/dist/commonjs/client/Permission/PermissionResponse.js.map +1 -1
- package/dist/commonjs/client/Permission/Permissions.js +3 -0
- package/dist/commonjs/client/Permission/Permissions.js.map +2 -2
- package/dist/commonjs/client/Permission/index.js +1 -0
- package/dist/commonjs/client/Permission/index.js.map +1 -1
- package/dist/commonjs/client/Resource.js +1 -0
- package/dist/commonjs/client/Resource.js.map +1 -1
- package/dist/commonjs/client/SasToken/PermissionScopeValues.js +1 -0
- package/dist/commonjs/client/SasToken/PermissionScopeValues.js.map +1 -1
- package/dist/commonjs/client/SasToken/SasTokenProperties.js +1 -0
- package/dist/commonjs/client/SasToken/SasTokenProperties.js.map +1 -1
- package/dist/commonjs/client/Script/Scripts.js +3 -0
- package/dist/commonjs/client/Script/Scripts.js.map +2 -2
- package/dist/commonjs/client/StoredProcedure/StoredProcedure.js +4 -0
- package/dist/commonjs/client/StoredProcedure/StoredProcedure.js.map +2 -2
- package/dist/commonjs/client/StoredProcedure/StoredProcedureDefinition.js +1 -0
- package/dist/commonjs/client/StoredProcedure/StoredProcedureDefinition.js.map +1 -1
- package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js +1 -0
- package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
- package/dist/commonjs/client/StoredProcedure/StoredProcedures.js +3 -0
- package/dist/commonjs/client/StoredProcedure/StoredProcedures.js.map +2 -2
- package/dist/commonjs/client/StoredProcedure/index.js +1 -0
- package/dist/commonjs/client/StoredProcedure/index.js.map +1 -1
- package/dist/commonjs/client/Trigger/Trigger.js +4 -0
- package/dist/commonjs/client/Trigger/Trigger.js.map +2 -2
- package/dist/commonjs/client/Trigger/TriggerDefinition.js +1 -0
- package/dist/commonjs/client/Trigger/TriggerDefinition.js.map +1 -1
- package/dist/commonjs/client/Trigger/TriggerResponse.js +1 -0
- package/dist/commonjs/client/Trigger/TriggerResponse.js.map +1 -1
- package/dist/commonjs/client/Trigger/Triggers.js +3 -0
- package/dist/commonjs/client/Trigger/Triggers.js.map +2 -2
- package/dist/commonjs/client/Trigger/index.js +1 -0
- package/dist/commonjs/client/Trigger/index.js.map +1 -1
- package/dist/commonjs/client/User/User.js +4 -0
- package/dist/commonjs/client/User/User.js.map +2 -2
- package/dist/commonjs/client/User/UserDefinition.js +1 -0
- package/dist/commonjs/client/User/UserDefinition.js.map +1 -1
- package/dist/commonjs/client/User/UserResponse.js +1 -0
- package/dist/commonjs/client/User/UserResponse.js.map +1 -1
- package/dist/commonjs/client/User/Users.js +3 -0
- package/dist/commonjs/client/User/Users.js.map +2 -2
- package/dist/commonjs/client/User/index.js +1 -0
- package/dist/commonjs/client/User/index.js.map +1 -1
- package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js +4 -0
- package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js.map +2 -2
- package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionDefinition.js +1 -0
- package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionDefinition.js.map +1 -1
- package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js +1 -0
- package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
- package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js +3 -0
- package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js.map +2 -2
- package/dist/commonjs/client/UserDefinedFunction/index.js +1 -0
- package/dist/commonjs/client/UserDefinedFunction/index.js.map +1 -1
- package/dist/commonjs/client/index.js +1 -0
- package/dist/commonjs/client/index.js.map +1 -1
- package/dist/commonjs/common/constants.js +2 -1
- package/dist/commonjs/common/constants.js.map +2 -2
- package/dist/commonjs/common/helper.js +1 -0
- package/dist/commonjs/common/helper.js.map +1 -1
- package/dist/commonjs/common/index.js +1 -0
- package/dist/commonjs/common/index.js.map +1 -1
- package/dist/commonjs/common/logger.js +1 -0
- package/dist/commonjs/common/logger.js.map +1 -1
- package/dist/commonjs/common/partitionKeys.js +1 -0
- package/dist/commonjs/common/partitionKeys.js.map +1 -1
- package/dist/commonjs/common/platform.js +1 -0
- package/dist/commonjs/common/platform.js.map +1 -1
- package/dist/commonjs/common/statusCodes.js +1 -0
- package/dist/commonjs/common/statusCodes.js.map +1 -1
- package/dist/commonjs/common/uriFactory.js +1 -0
- package/dist/commonjs/common/uriFactory.js.map +1 -1
- package/dist/commonjs/diagnostics/CosmosDbDiagnosticLevel.js +1 -0
- package/dist/commonjs/diagnostics/CosmosDbDiagnosticLevel.js.map +1 -1
- package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js +1 -0
- package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
- package/dist/commonjs/diagnostics/DiagnosticFormatter.js +1 -0
- package/dist/commonjs/diagnostics/DiagnosticFormatter.js.map +1 -1
- package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js +1 -0
- package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js.map +1 -1
- package/dist/commonjs/diagnostics/DiagnosticWriter.js +1 -0
- package/dist/commonjs/diagnostics/DiagnosticWriter.js.map +1 -1
- package/dist/commonjs/diagnostics/diagnosticLevelComparator.js +1 -0
- package/dist/commonjs/diagnostics/diagnosticLevelComparator.js.map +1 -1
- package/dist/commonjs/diagnostics/index.js +1 -0
- package/dist/commonjs/diagnostics/index.js.map +1 -1
- package/dist/commonjs/documents/ComputedProperty.js +1 -0
- package/dist/commonjs/documents/ComputedProperty.js.map +1 -1
- package/dist/commonjs/documents/ConnectionMode.js +1 -0
- package/dist/commonjs/documents/ConnectionMode.js.map +1 -1
- package/dist/commonjs/documents/ConnectionPolicy.js +1 -0
- package/dist/commonjs/documents/ConnectionPolicy.js.map +1 -1
- package/dist/commonjs/documents/ConsistencyLevel.js +1 -0
- package/dist/commonjs/documents/ConsistencyLevel.js.map +1 -1
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js +1 -0
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -1
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js +1 -0
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -1
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js +1 -0
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -1
- package/dist/commonjs/documents/DataType.js +1 -0
- package/dist/commonjs/documents/DataType.js.map +1 -1
- package/dist/commonjs/documents/DatabaseAccount.js +1 -0
- package/dist/commonjs/documents/DatabaseAccount.js.map +1 -1
- package/dist/commonjs/documents/Document.js +1 -0
- package/dist/commonjs/documents/Document.js.map +1 -1
- package/dist/commonjs/documents/FullTextPolicy.js +1 -0
- package/dist/commonjs/documents/FullTextPolicy.js.map +1 -1
- package/dist/commonjs/documents/GeospatialType.js +1 -0
- package/dist/commonjs/documents/GeospatialType.js.map +1 -1
- package/dist/commonjs/documents/IndexKind.js +1 -0
- package/dist/commonjs/documents/IndexKind.js.map +1 -1
- package/dist/commonjs/documents/IndexingMode.js +1 -0
- package/dist/commonjs/documents/IndexingMode.js.map +1 -1
- package/dist/commonjs/documents/IndexingPolicy.js +1 -0
- package/dist/commonjs/documents/IndexingPolicy.js.map +1 -1
- package/dist/commonjs/documents/PartitionKey.js +1 -0
- package/dist/commonjs/documents/PartitionKey.js.map +1 -1
- package/dist/commonjs/documents/PartitionKeyDefinition.js +1 -0
- package/dist/commonjs/documents/PartitionKeyDefinition.js.map +1 -1
- package/dist/commonjs/documents/PartitionKeyDefinitionVersion.js +1 -0
- package/dist/commonjs/documents/PartitionKeyDefinitionVersion.js.map +1 -1
- package/dist/commonjs/documents/PartitionKeyInternal.js +1 -0
- package/dist/commonjs/documents/PartitionKeyInternal.js.map +1 -1
- package/dist/commonjs/documents/PartitionKeyKind.js +1 -0
- package/dist/commonjs/documents/PartitionKeyKind.js.map +1 -1
- package/dist/commonjs/documents/PermissionMode.js +1 -0
- package/dist/commonjs/documents/PermissionMode.js.map +1 -1
- package/dist/commonjs/documents/PriorityLevel.js +1 -0
- package/dist/commonjs/documents/PriorityLevel.js.map +1 -1
- package/dist/commonjs/documents/TriggerOperation.js +1 -0
- package/dist/commonjs/documents/TriggerOperation.js.map +1 -1
- package/dist/commonjs/documents/TriggerType.js +1 -0
- package/dist/commonjs/documents/TriggerType.js.map +1 -1
- package/dist/commonjs/documents/UserDefinedFunctionType.js +1 -0
- package/dist/commonjs/documents/UserDefinedFunctionType.js.map +1 -1
- package/dist/commonjs/documents/VectorEmbeddingPolicy.js +1 -0
- package/dist/commonjs/documents/VectorEmbeddingPolicy.js.map +1 -1
- package/dist/commonjs/documents/index.js +1 -0
- package/dist/commonjs/documents/index.js.map +1 -1
- package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +1 -0
- package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
- package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/index.js +1 -0
- package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/index.js.map +1 -1
- package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +1 -0
- package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
- package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js +1 -0
- package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
- package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js +1 -0
- package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
- package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js +2 -0
- package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +2 -2
- package/dist/commonjs/encryption/ClientEncryptionIncludedPath.js +1 -0
- package/dist/commonjs/encryption/ClientEncryptionIncludedPath.js.map +1 -1
- package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyProperties.js +1 -0
- package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyProperties.js.map +1 -1
- package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyRequest.js +1 -0
- package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyRequest.js.map +1 -1
- package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +1 -0
- package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
- package/dist/commonjs/encryption/ClientEncryptionKey/index.js +1 -0
- package/dist/commonjs/encryption/ClientEncryptionKey/index.js.map +1 -1
- package/dist/commonjs/encryption/ClientEncryptionOptions.js +1 -0
- package/dist/commonjs/encryption/ClientEncryptionOptions.js.map +1 -1
- package/dist/commonjs/encryption/ClientEncryptionPolicy.js +1 -0
- package/dist/commonjs/encryption/ClientEncryptionPolicy.js.map +1 -1
- package/dist/commonjs/encryption/CosmosEncryptedNumber.js +1 -0
- package/dist/commonjs/encryption/CosmosEncryptedNumber.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionItemQueryIterator.js +1 -0
- package/dist/commonjs/encryption/EncryptionItemQueryIterator.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js +1 -0
- package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +1 -0
- package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionKey/index.js +1 -0
- package/dist/commonjs/encryption/EncryptionKey/index.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +1 -0
- package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionKeyResolver/EncryptionKeyResolver.js +1 -0
- package/dist/commonjs/encryption/EncryptionKeyResolver/EncryptionKeyResolver.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionKeyResolver/index.js +1 -0
- package/dist/commonjs/encryption/EncryptionKeyResolver/index.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js +3 -0
- package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js.map +2 -2
- package/dist/commonjs/encryption/EncryptionKeyWrapMetadata.js +1 -0
- package/dist/commonjs/encryption/EncryptionKeyWrapMetadata.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionManager.js +1 -0
- package/dist/commonjs/encryption/EncryptionManager.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionProcessor.js +6 -0
- package/dist/commonjs/encryption/EncryptionProcessor.js.map +2 -2
- package/dist/commonjs/encryption/EncryptionQueryBuilder.js +1 -0
- package/dist/commonjs/encryption/EncryptionQueryBuilder.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionSettingForProperty.js +1 -0
- package/dist/commonjs/encryption/EncryptionSettingForProperty.js.map +1 -1
- package/dist/commonjs/encryption/EncryptionSettings.js +1 -0
- package/dist/commonjs/encryption/EncryptionSettings.js.map +1 -1
- package/dist/commonjs/encryption/KeyEncryptionKey.js +1 -0
- package/dist/commonjs/encryption/KeyEncryptionKey.js.map +1 -1
- package/dist/commonjs/encryption/Serializers/BooleanSerializer.js +1 -0
- package/dist/commonjs/encryption/Serializers/BooleanSerializer.js.map +1 -1
- package/dist/commonjs/encryption/Serializers/FloatSerializer.js +1 -0
- package/dist/commonjs/encryption/Serializers/FloatSerializer.js.map +1 -1
- package/dist/commonjs/encryption/Serializers/NumberSerializer.js +1 -0
- package/dist/commonjs/encryption/Serializers/NumberSerializer.js.map +1 -1
- package/dist/commonjs/encryption/Serializers/Serializer.js +1 -0
- package/dist/commonjs/encryption/Serializers/Serializer.js.map +1 -1
- package/dist/commonjs/encryption/Serializers/StringSerializer.js +1 -0
- package/dist/commonjs/encryption/Serializers/StringSerializer.js.map +1 -1
- package/dist/commonjs/encryption/Serializers/index.js +1 -0
- package/dist/commonjs/encryption/Serializers/index.js.map +1 -1
- package/dist/commonjs/encryption/enums/EncryptionAlgorithm.js +1 -0
- package/dist/commonjs/encryption/enums/EncryptionAlgorithm.js.map +1 -1
- package/dist/commonjs/encryption/enums/EncryptionKeyResolverName.js +1 -0
- package/dist/commonjs/encryption/enums/EncryptionKeyResolverName.js.map +1 -1
- package/dist/commonjs/encryption/enums/EncryptionType.js +1 -0
- package/dist/commonjs/encryption/enums/EncryptionType.js.map +1 -1
- package/dist/commonjs/encryption/enums/KeyEncryptionAlgorithm.js +1 -0
- package/dist/commonjs/encryption/enums/KeyEncryptionAlgorithm.js.map +1 -1
- package/dist/commonjs/encryption/enums/TypeMarker.js +1 -0
- package/dist/commonjs/encryption/enums/TypeMarker.js.map +1 -1
- package/dist/commonjs/encryption/enums/index.js +1 -0
- package/dist/commonjs/encryption/enums/index.js.map +1 -1
- package/dist/commonjs/encryption/index.js +1 -0
- package/dist/commonjs/encryption/index.js.map +1 -1
- package/dist/commonjs/extractPartitionKey.js +1 -0
- package/dist/commonjs/extractPartitionKey.js.map +1 -1
- package/dist/commonjs/globalEndpointManager.js +2 -0
- package/dist/commonjs/globalEndpointManager.js.map +2 -2
- package/dist/commonjs/globalPartitionEndpointManager.js +2 -0
- package/dist/commonjs/globalPartitionEndpointManager.js.map +2 -2
- package/dist/commonjs/index.js +1 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/plugins/Plugin.js +1 -0
- package/dist/commonjs/plugins/Plugin.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/Aggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/Aggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js.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/ContinuationTokenManager/BaseContinuationTokenManager.js +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/CosmosHeaders.js +1 -0
- package/dist/commonjs/queryExecutionContext/CosmosHeaders.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +3 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +3 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +5 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +6 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +4 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +3 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/EndpointComponent/emptyGroup.js +1 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/emptyGroup.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/ExecutionContext.js +1 -0
- package/dist/commonjs/queryExecutionContext/ExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/FetchResult.js +1 -0
- package/dist/commonjs/queryExecutionContext/FetchResult.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js +3 -0
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js +3 -0
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js +1 -0
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/SqlQuerySpec.js +1 -0
- package/dist/commonjs/queryExecutionContext/SqlQuerySpec.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js +1 -0
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/documentProducer.js +2 -0
- package/dist/commonjs/queryExecutionContext/documentProducer.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/headerUtils.js +1 -0
- package/dist/commonjs/queryExecutionContext/headerUtils.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +8 -0
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/index.js +1 -0
- package/dist/commonjs/queryExecutionContext/index.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResponse.js +1 -0
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResponse.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.js +1 -0
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByComparator.js +2 -0
- package/dist/commonjs/queryExecutionContext/orderByComparator.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js +2 -0
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js +1 -0
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +10 -0
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.js +1 -0
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js +8 -0
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +2 -1
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +6 -4
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +3 -3
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +2 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +2 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +2 -2
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.js +1 -0
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.js.map +1 -1
- package/dist/commonjs/queryIterator.js +7 -0
- package/dist/commonjs/queryIterator.js.map +2 -2
- package/dist/commonjs/queryMetrics/clientSideMetrics.js +2 -0
- package/dist/commonjs/queryMetrics/clientSideMetrics.js.map +2 -2
- package/dist/commonjs/queryMetrics/index.js +1 -0
- package/dist/commonjs/queryMetrics/index.js.map +1 -1
- package/dist/commonjs/queryMetrics/queryMetrics.js +14 -0
- package/dist/commonjs/queryMetrics/queryMetrics.js.map +2 -2
- package/dist/commonjs/queryMetrics/queryMetricsConstants.js +1 -0
- package/dist/commonjs/queryMetrics/queryMetricsConstants.js.map +1 -1
- package/dist/commonjs/queryMetrics/queryMetricsUtils.js +1 -0
- package/dist/commonjs/queryMetrics/queryMetricsUtils.js.map +1 -1
- package/dist/commonjs/queryMetrics/queryPreparationTime.js +5 -0
- package/dist/commonjs/queryMetrics/queryPreparationTime.js.map +2 -2
- package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js +4 -0
- package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js.map +2 -2
- package/dist/commonjs/queryMetrics/timeSpan.js +1 -0
- package/dist/commonjs/queryMetrics/timeSpan.js.map +1 -1
- package/dist/commonjs/request/ErrorResponse.js +1 -0
- package/dist/commonjs/request/ErrorResponse.js.map +1 -1
- package/dist/commonjs/request/FeedOptions.js +1 -0
- package/dist/commonjs/request/FeedOptions.js.map +1 -1
- package/dist/commonjs/request/FeedResponse.js +5 -0
- package/dist/commonjs/request/FeedResponse.js.map +2 -2
- package/dist/commonjs/request/RequestContext.js +1 -0
- package/dist/commonjs/request/RequestContext.js.map +1 -1
- package/dist/commonjs/request/RequestHandler.js +1 -0
- package/dist/commonjs/request/RequestHandler.js.map +1 -1
- package/dist/commonjs/request/RequestOptions.js +1 -0
- package/dist/commonjs/request/RequestOptions.js.map +1 -1
- package/dist/commonjs/request/ResourceResponse.js +6 -0
- package/dist/commonjs/request/ResourceResponse.js.map +2 -2
- package/dist/commonjs/request/Response.js +1 -0
- package/dist/commonjs/request/Response.js.map +1 -1
- package/dist/commonjs/request/SharedOptions.js +1 -0
- package/dist/commonjs/request/SharedOptions.js.map +1 -1
- package/dist/commonjs/request/StatusCodes.js +1 -0
- package/dist/commonjs/request/StatusCodes.js.map +1 -1
- package/dist/commonjs/request/TimeoutError.js +1 -0
- package/dist/commonjs/request/TimeoutError.js.map +1 -1
- package/dist/commonjs/request/defaultAgent.js +1 -0
- package/dist/commonjs/request/defaultAgent.js.map +1 -1
- package/dist/commonjs/request/globalStatistics.js +1 -0
- package/dist/commonjs/request/globalStatistics.js.map +1 -1
- package/dist/commonjs/request/hybridSearchQueryResult.js +1 -0
- package/dist/commonjs/request/hybridSearchQueryResult.js.map +1 -1
- package/dist/commonjs/request/index.js +1 -0
- package/dist/commonjs/request/index.js.map +1 -1
- package/dist/commonjs/request/request.js +1 -0
- package/dist/commonjs/request/request.js.map +1 -1
- package/dist/commonjs/retry/RetryContext.js +1 -0
- package/dist/commonjs/retry/RetryContext.js.map +1 -1
- package/dist/commonjs/retry/RetryPolicy.js +1 -0
- package/dist/commonjs/retry/RetryPolicy.js.map +1 -1
- package/dist/commonjs/retry/bulkExecutionRetryPolicy.js +1 -0
- package/dist/commonjs/retry/bulkExecutionRetryPolicy.js.map +1 -1
- package/dist/commonjs/retry/defaultRetryPolicy.js +2 -0
- package/dist/commonjs/retry/defaultRetryPolicy.js.map +2 -2
- package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js +5 -0
- package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js.map +2 -2
- package/dist/commonjs/retry/index.js +1 -0
- package/dist/commonjs/retry/index.js.map +1 -1
- package/dist/commonjs/retry/resourceThrottleRetryPolicy.js +1 -0
- package/dist/commonjs/retry/resourceThrottleRetryPolicy.js.map +1 -1
- package/dist/commonjs/retry/retryOptions.js +1 -0
- package/dist/commonjs/retry/retryOptions.js.map +1 -1
- package/dist/commonjs/retry/retryUtility.js +1 -0
- package/dist/commonjs/retry/retryUtility.js.map +1 -1
- package/dist/commonjs/retry/sessionRetryPolicy.js +5 -0
- package/dist/commonjs/retry/sessionRetryPolicy.js.map +2 -2
- package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js +8 -0
- package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js.map +2 -2
- package/dist/commonjs/routing/CollectionRoutingMapFactory.js +1 -0
- package/dist/commonjs/routing/CollectionRoutingMapFactory.js.map +1 -1
- package/dist/commonjs/routing/QueryRange.js +1 -0
- package/dist/commonjs/routing/QueryRange.js.map +1 -1
- package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js +1 -0
- package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js.map +1 -1
- package/dist/commonjs/routing/index.js +1 -0
- package/dist/commonjs/routing/index.js.map +1 -1
- package/dist/commonjs/routing/partitionKeyRangeCache.js +2 -0
- package/dist/commonjs/routing/partitionKeyRangeCache.js.map +2 -2
- package/dist/commonjs/routing/smartRoutingMapProvider.js +1 -0
- package/dist/commonjs/routing/smartRoutingMapProvider.js.map +1 -1
- package/dist/commonjs/session/SessionContext.js +1 -0
- package/dist/commonjs/session/SessionContext.js.map +1 -1
- package/dist/commonjs/session/VectorSessionToken.js +5 -0
- package/dist/commonjs/session/VectorSessionToken.js.map +2 -2
- package/dist/commonjs/session/sessionContainer.js +3 -0
- package/dist/commonjs/session/sessionContainer.js.map +2 -2
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/utils/SasToken.js +1 -0
- package/dist/commonjs/utils/SasToken.js.map +1 -1
- package/dist/commonjs/utils/atob.js +1 -0
- package/dist/commonjs/utils/atob.js.map +1 -1
- package/dist/commonjs/utils/batch.js +1 -0
- package/dist/commonjs/utils/batch.js.map +1 -1
- package/dist/commonjs/utils/cachedClient.js +1 -0
- package/dist/commonjs/utils/cachedClient.js.map +1 -1
- package/dist/commonjs/utils/checkURL.js +1 -0
- package/dist/commonjs/utils/checkURL.js.map +1 -1
- package/dist/commonjs/utils/diagnostics.js +1 -0
- package/dist/commonjs/utils/diagnostics.js.map +1 -1
- package/dist/commonjs/utils/digest.js +1 -0
- package/dist/commonjs/utils/digest.js.map +1 -1
- package/dist/commonjs/utils/encode.js +1 -0
- package/dist/commonjs/utils/encode.js.map +1 -1
- package/dist/commonjs/utils/envUtils.js +1 -0
- package/dist/commonjs/utils/envUtils.js.map +1 -1
- package/dist/commonjs/utils/fixedSizePriorityQueue.js +1 -0
- package/dist/commonjs/utils/fixedSizePriorityQueue.js.map +1 -1
- package/dist/commonjs/utils/globalCrypto.js +1 -0
- package/dist/commonjs/utils/globalCrypto.js.map +1 -1
- package/dist/commonjs/utils/hashObject.js +1 -0
- package/dist/commonjs/utils/hashObject.js.map +1 -1
- package/dist/commonjs/utils/hashing/encoding/number.js +1 -0
- package/dist/commonjs/utils/hashing/encoding/number.js.map +1 -1
- package/dist/commonjs/utils/hashing/encoding/prefix.js +1 -0
- package/dist/commonjs/utils/hashing/encoding/prefix.js.map +1 -1
- package/dist/commonjs/utils/hashing/encoding/string.js +1 -0
- package/dist/commonjs/utils/hashing/encoding/string.js.map +1 -1
- package/dist/commonjs/utils/hashing/hash.js +1 -0
- package/dist/commonjs/utils/hashing/hash.js.map +1 -1
- package/dist/commonjs/utils/hashing/multiHash.js +1 -0
- package/dist/commonjs/utils/hashing/multiHash.js.map +1 -1
- package/dist/commonjs/utils/hashing/murmurHash.js +1 -0
- package/dist/commonjs/utils/hashing/murmurHash.js.map +1 -1
- package/dist/commonjs/utils/hashing/v1.js +1 -0
- package/dist/commonjs/utils/hashing/v1.js.map +1 -1
- package/dist/commonjs/utils/hashing/v2.js +1 -0
- package/dist/commonjs/utils/hashing/v2.js.map +1 -1
- package/dist/commonjs/utils/headers.js +1 -0
- package/dist/commonjs/utils/headers.js.map +1 -1
- package/dist/commonjs/utils/hmac.js +1 -0
- package/dist/commonjs/utils/hmac.js.map +1 -1
- package/dist/commonjs/utils/nonStreamingOrderByMap.js +1 -0
- package/dist/commonjs/utils/nonStreamingOrderByMap.js.map +1 -1
- package/dist/commonjs/utils/offers.js +1 -0
- package/dist/commonjs/utils/offers.js.map +1 -1
- package/dist/commonjs/utils/patch.js +1 -0
- package/dist/commonjs/utils/patch.js.map +1 -1
- package/dist/commonjs/utils/strings.js +1 -0
- package/dist/commonjs/utils/strings.js.map +1 -1
- package/dist/commonjs/utils/supportedQueryFeaturesBuilder.js +1 -0
- package/dist/commonjs/utils/supportedQueryFeaturesBuilder.js.map +1 -1
- package/dist/commonjs/utils/time.js +1 -0
- package/dist/commonjs/utils/time.js.map +1 -1
- package/dist/commonjs/utils/tracing.js +1 -0
- package/dist/commonjs/utils/tracing.js.map +1 -1
- package/dist/commonjs/utils/typeChecks.js +1 -0
- package/dist/commonjs/utils/typeChecks.js.map +1 -1
- package/dist/commonjs/utils/types.js +1 -0
- package/dist/commonjs/utils/types.js.map +1 -1
- package/dist/commonjs/utils/uint8.js +1 -0
- package/dist/commonjs/utils/uint8.js.map +1 -1
- package/dist/esm/common/constants.js +1 -1
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +2 -1
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +6 -5
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -1
- package/dist/react-native/common/constants.js +1 -1
- package/dist/react-native/common/constants.js.map +1 -1
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +2 -1
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +6 -5
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -1
- package/package.json +8 -8
package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../src/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport type { Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport { getInitialHeader, mergeHeaders } from \"../headerUtils.js\";\nimport type { ParallelQueryResult } from \"../parallelQueryResult.js\";\nimport { createParallelQueryResult } from \"../parallelQueryResult.js\";\nimport { calculateOffsetLimitForPartitionRanges } from \"../PartitionRangeUtils.js\";\n\n/** @hidden */\nexport class OffsetLimitEndpointComponent implements ExecutionContext {\n constructor(\n private executionContext: ExecutionContext,\n private offset: number,\n private limit: number,\n ) {}\n\n public hasMoreResults(): boolean {\n return (this.offset > 0 || this.limit > 0) && this.executionContext.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n const aggregateHeaders = getInitialHeader();\n const buffer: any[] = [];\n const response = await this.executionContext.fetchMore(diagnosticNode);\n if (!response) {\n return { result: undefined, headers: aggregateHeaders };\n }\n mergeHeaders(aggregateHeaders, response.headers);\n if (\n response.result === undefined ||\n !Array.isArray(response.result.buffer) ||\n response.result.buffer.length === 0\n ) {\n return { result: response.result, headers: response.headers };\n }\n\n const parallelResult = response.result as ParallelQueryResult;\n const dataToProcess: any[] = parallelResult.buffer;\n const partitionKeyRangeMap = parallelResult.partitionKeyRangeMap;\n const updatedContinuationRanges = parallelResult.updatedContinuationRanges;\n const orderByItems = parallelResult.orderByItems;\n\n const initialOffset = this.offset;\n const initialLimit = this.limit;\n\n const filteredOrderByItems: any[] = [];\n let itemIndex = 0;\n\n for (const item of dataToProcess) {\n if (this.offset > 0) {\n this.offset--;\n // Skip this item AND its corresponding orderByItems entry\n } else if (this.limit > 0) {\n buffer.push(item);\n // Include the corresponding orderByItems entry\n if (orderByItems && itemIndex < orderByItems.length) {\n filteredOrderByItems.push(orderByItems[itemIndex]);\n }\n this.limit--;\n }\n itemIndex++;\n }\n\n // Process offset/limit logic and update partition key range map\n // Note: Pass initial offset/limit values (not current state) to calculateOffsetLimitForPartitionRanges\n // This function updates partition metadata while the loop above processes actual data items\n const updatedPartitionKeyRangeMap = calculateOffsetLimitForPartitionRanges(\n partitionKeyRangeMap,\n initialOffset,\n initialLimit,\n );\n\n // Return in the new structure format using the utility function\n const result = createParallelQueryResult(\n buffer,\n updatedPartitionKeyRangeMap,\n updatedContinuationRanges,\n filteredOrderByItems.length > 0 ? filteredOrderByItems : undefined,\n );\n\n return {\n result,\n headers: aggregateHeaders,\n };\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,yBAA+C;AAE/C,iCAA0C;AAC1C,iCAAuD;AAGhD,MAAM,6BAAyD;AAAA,EACpE,YACU,kBACA,QACA,OACR;AAHQ;AACA;AACA;AAAA,EACP;AAAA,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,yBAA+C;AAE/C,iCAA0C;AAC1C,iCAAuD;AAGhD,MAAM,6BAAyD;AAAA,EACpE,YACU,kBACA,QACA,OACR;AAHQ;AACA;AACA;AAAA,EACP;AAAA,EAHO;AAAA,EACA;AAAA,EACA;AAAA,EAGH,iBAA0B;AAC/B,YAAQ,KAAK,SAAS,KAAK,KAAK,QAAQ,MAAM,KAAK,iBAAiB,eAAe;AAAA,EACrF;AAAA,EAEA,MAAa,UAAU,gBAAiE;AACtF,UAAM,uBAAmB,qCAAiB;AAC1C,UAAM,SAAgB,CAAC;AACvB,UAAM,WAAW,MAAM,KAAK,iBAAiB,UAAU,cAAc;AACrE,QAAI,CAAC,UAAU;AACb,aAAO,EAAE,QAAQ,QAAW,SAAS,iBAAiB;AAAA,IACxD;AACA,yCAAa,kBAAkB,SAAS,OAAO;AAC/C,QACE,SAAS,WAAW,UACpB,CAAC,MAAM,QAAQ,SAAS,OAAO,MAAM,KACrC,SAAS,OAAO,OAAO,WAAW,GAClC;AACA,aAAO,EAAE,QAAQ,SAAS,QAAQ,SAAS,SAAS,QAAQ;AAAA,IAC9D;AAEA,UAAM,iBAAiB,SAAS;AAChC,UAAM,gBAAuB,eAAe;AAC5C,UAAM,uBAAuB,eAAe;AAC5C,UAAM,4BAA4B,eAAe;AACjD,UAAM,eAAe,eAAe;AAEpC,UAAM,gBAAgB,KAAK;AAC3B,UAAM,eAAe,KAAK;AAE1B,UAAM,uBAA8B,CAAC;AACrC,QAAI,YAAY;AAEhB,eAAW,QAAQ,eAAe;AAChC,UAAI,KAAK,SAAS,GAAG;AACnB,aAAK;AAAA,MAEP,WAAW,KAAK,QAAQ,GAAG;AACzB,eAAO,KAAK,IAAI;AAEhB,YAAI,gBAAgB,YAAY,aAAa,QAAQ;AACnD,+BAAqB,KAAK,aAAa,SAAS,CAAC;AAAA,QACnD;AACA,aAAK;AAAA,MACP;AACA;AAAA,IACF;AAKA,UAAM,kCAA8B;AAAA,MAClC;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,UAAM,aAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,qBAAqB,SAAS,IAAI,uBAAuB;AAAA,IAC3D;AAEA,WAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -34,6 +34,8 @@ class OrderByEndpointComponent {
|
|
|
34
34
|
this.executionContext = executionContext;
|
|
35
35
|
this.emitRawOrderByPayload = emitRawOrderByPayload;
|
|
36
36
|
}
|
|
37
|
+
executionContext;
|
|
38
|
+
emitRawOrderByPayload;
|
|
37
39
|
/**
|
|
38
40
|
* Determine if there are still remaining resources to processs.
|
|
39
41
|
* @returns true if there is other elements to process in the OrderByEndpointComponent.
|
|
@@ -81,3 +83,4 @@ class OrderByEndpointComponent {
|
|
|
81
83
|
0 && (module.exports = {
|
|
82
84
|
OrderByEndpointComponent
|
|
83
85
|
});
|
|
86
|
+
//# sourceMappingURL=OrderByEndpointComponent.js.map
|
package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../src/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport type { Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport type { ParallelQueryResult } from \"../parallelQueryResult.js\";\nimport { createParallelQueryResult } from \"../parallelQueryResult.js\";\nimport type { OrderByItemWithRid } from \"../parallelQueryResult.js\";\n\n/** @hidden */\nexport class OrderByEndpointComponent implements ExecutionContext {\n /**\n * Represents an endpoint in handling an order by query. For each processed orderby\n * result it returns 'payload' item of the result\n *\n * @param executionContext - Underlying Execution Context\n * @param emitRawOrderByPayload - Whether to emit raw order by payload\n * @hidden\n */\n constructor(\n private executionContext: ExecutionContext,\n private emitRawOrderByPayload: boolean = false,\n ) {}\n /**\n * Determine if there are still remaining resources to processs.\n * @returns true if there is other elements to process in the OrderByEndpointComponent.\n */\n public hasMoreResults(): boolean {\n return this.executionContext.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n const buffer: any[] = [];\n const orderByItemsArray: OrderByItemWithRid[] = []; // Store order by items for each item\n\n const response = await this.executionContext.fetchMore(diagnosticNode);\n if (\n !response ||\n !response.result ||\n !Array.isArray(response.result.buffer) ||\n response.result.buffer.length === 0\n ) {\n // Preserve the partitionKeyRangeMap and updatedContinuationRanges from the original response\n // even when the buffer is empty, as they contain continuation token information\n const originalResult = response?.result as ParallelQueryResult;\n const result = createParallelQueryResult(\n [],\n originalResult?.partitionKeyRangeMap || new Map(),\n originalResult?.updatedContinuationRanges || {},\n [],\n );\n return { result, headers: response?.headers };\n }\n\n const parallelResult = response.result as ParallelQueryResult;\n const rawBuffer = parallelResult.buffer;\n const partitionKeyRangeMap = parallelResult.partitionKeyRangeMap;\n const updatedContinuationRanges = parallelResult.updatedContinuationRanges;\n\n // Process buffer items and collect order by items for each item\n for (let i = 0; i < rawBuffer.length; i++) {\n const item = rawBuffer[i];\n if (this.emitRawOrderByPayload) {\n buffer.push(item);\n } else {\n buffer.push(item.payload);\n }\n orderByItemsArray.push({ orderByItems: item.orderByItems, _rid: item._rid });\n }\n\n const result = createParallelQueryResult(\n buffer,\n partitionKeyRangeMap,\n updatedContinuationRanges,\n orderByItemsArray,\n );\n\n return { result, headers: response.headers };\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,iCAA0C;AAInC,MAAM,yBAAqD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShE,YACU,kBACA,wBAAiC,OACzC;AAFQ;AACA;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,iCAA0C;AAInC,MAAM,yBAAqD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShE,YACU,kBACA,wBAAiC,OACzC;AAFQ;AACA;AAAA,EACP;AAAA,EAFO;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMH,iBAA0B;AAC/B,WAAO,KAAK,iBAAiB,eAAe;AAAA,EAC9C;AAAA,EAEA,MAAa,UAAU,gBAAiE;AACtF,UAAM,SAAgB,CAAC;AACvB,UAAM,oBAA0C,CAAC;AAEjD,UAAM,WAAW,MAAM,KAAK,iBAAiB,UAAU,cAAc;AACrE,QACE,CAAC,YACD,CAAC,SAAS,UACV,CAAC,MAAM,QAAQ,SAAS,OAAO,MAAM,KACrC,SAAS,OAAO,OAAO,WAAW,GAClC;AAGA,YAAM,iBAAiB,UAAU;AACjC,YAAMA,cAAS;AAAA,QACb,CAAC;AAAA,QACD,gBAAgB,wBAAwB,oBAAI,IAAI;AAAA,QAChD,gBAAgB,6BAA6B,CAAC;AAAA,QAC9C,CAAC;AAAA,MACH;AACA,aAAO,EAAE,QAAAA,SAAQ,SAAS,UAAU,QAAQ;AAAA,IAC9C;AAEA,UAAM,iBAAiB,SAAS;AAChC,UAAM,YAAY,eAAe;AACjC,UAAM,uBAAuB,eAAe;AAC5C,UAAM,4BAA4B,eAAe;AAGjD,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,YAAM,OAAO,UAAU,CAAC;AACxB,UAAI,KAAK,uBAAuB;AAC9B,eAAO,KAAK,IAAI;AAAA,MAClB,OAAO;AACL,eAAO,KAAK,KAAK,OAAO;AAAA,MAC1B;AACA,wBAAkB,KAAK,EAAE,cAAc,KAAK,cAAc,MAAM,KAAK,KAAK,CAAC;AAAA,IAC7E;AAEA,UAAM,aAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO,EAAE,QAAQ,SAAS,SAAS,QAAQ;AAAA,EAC7C;AACF;",
|
|
6
6
|
"names": ["result"]
|
|
7
7
|
}
|
package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js
CHANGED
|
@@ -28,6 +28,7 @@ class OrderedDistinctEndpointComponent {
|
|
|
28
28
|
this.executionContext = executionContext;
|
|
29
29
|
this.hashedLastResult = hashedLastResult;
|
|
30
30
|
}
|
|
31
|
+
executionContext;
|
|
31
32
|
hashedLastResult;
|
|
32
33
|
hasMoreResults() {
|
|
33
34
|
return this.executionContext.hasMoreResults();
|
|
@@ -73,3 +74,4 @@ class OrderedDistinctEndpointComponent {
|
|
|
73
74
|
0 && (module.exports = {
|
|
74
75
|
OrderedDistinctEndpointComponent
|
|
75
76
|
});
|
|
77
|
+
//# sourceMappingURL=OrderedDistinctEndpointComponent.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../src/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport { hashObject } from \"../../utils/hashObject.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport { createParallelQueryResult, type ParallelQueryResult } from \"../parallelQueryResult.js\";\nimport { processDistinctQueryAndUpdateRangeMap } from \"../PartitionRangeUtils.js\";\n\n/** @hidden */\nexport class OrderedDistinctEndpointComponent implements ExecutionContext {\n private hashedLastResult: string;\n\n constructor(\n private executionContext: ExecutionContext,\n hashedLastResult?: string,\n ) {\n this.hashedLastResult = hashedLastResult;\n }\n\n public hasMoreResults(): boolean {\n return this.executionContext.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n const buffer: any[] = [];\n const response = await this.executionContext.fetchMore(diagnosticNode);\n if (\n !response ||\n !response.result ||\n !Array.isArray(response.result.buffer) ||\n response.result.buffer.length === 0\n ) {\n return { result: response.result, headers: response.headers };\n }\n\n const parallelResult = response.result as ParallelQueryResult;\n const dataToProcess: any[] = parallelResult.buffer;\n const partitionKeyRangeMap = parallelResult.partitionKeyRangeMap;\n const updatedContinuationRanges = parallelResult.updatedContinuationRanges;\n const orderByItems = parallelResult.orderByItems;\n\n // Process each item and maintain hashedLastResult for distinct filtering\n for (const item of dataToProcess) {\n if (item) {\n const hashedResult = await hashObject(item);\n if (hashedResult !== this.hashedLastResult) {\n buffer.push(item);\n this.hashedLastResult = hashedResult;\n }\n }\n }\n\n // Process distinct query logic and update partition key range map with hashedLastResult\n const updatedPartitionKeyRangeMap = await processDistinctQueryAndUpdateRangeMap(\n dataToProcess,\n partitionKeyRangeMap,\n hashObject,\n );\n\n // Return in the new structure format using the utility function\n const result = createParallelQueryResult(\n buffer,\n updatedPartitionKeyRangeMap,\n updatedContinuationRanges,\n orderByItems,\n );\n\n return {\n result,\n headers: response.headers,\n };\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,wBAA2B;AAE3B,iCAAoE;AACpE,iCAAsD;AAG/C,MAAM,iCAA6D;AAAA,EAGxE,YACU,kBACR,kBACA;AAFQ;AAGR,SAAK,mBAAmB;AAAA,EAC1B;AAAA,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,wBAA2B;AAE3B,iCAAoE;AACpE,iCAAsD;AAG/C,MAAM,iCAA6D;AAAA,EAGxE,YACU,kBACR,kBACA;AAFQ;AAGR,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAJU;AAAA,EAHF;AAAA,EASD,iBAA0B;AAC/B,WAAO,KAAK,iBAAiB,eAAe;AAAA,EAC9C;AAAA,EAEA,MAAa,UAAU,gBAAiE;AACtF,UAAM,SAAgB,CAAC;AACvB,UAAM,WAAW,MAAM,KAAK,iBAAiB,UAAU,cAAc;AACrE,QACE,CAAC,YACD,CAAC,SAAS,UACV,CAAC,MAAM,QAAQ,SAAS,OAAO,MAAM,KACrC,SAAS,OAAO,OAAO,WAAW,GAClC;AACA,aAAO,EAAE,QAAQ,SAAS,QAAQ,SAAS,SAAS,QAAQ;AAAA,IAC9D;AAEA,UAAM,iBAAiB,SAAS;AAChC,UAAM,gBAAuB,eAAe;AAC5C,UAAM,uBAAuB,eAAe;AAC5C,UAAM,4BAA4B,eAAe;AACjD,UAAM,eAAe,eAAe;AAGpC,eAAW,QAAQ,eAAe;AAChC,UAAI,MAAM;AACR,cAAM,eAAe,UAAM,8BAAW,IAAI;AAC1C,YAAI,iBAAiB,KAAK,kBAAkB;AAC1C,iBAAO,KAAK,IAAI;AAChB,eAAK,mBAAmB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAGA,UAAM,8BAA8B,UAAM;AAAA,MACxC;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,UAAM,aAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA,SAAS,SAAS;AAAA,IACpB;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js
CHANGED
|
@@ -28,6 +28,7 @@ class UnorderedDistinctEndpointComponent {
|
|
|
28
28
|
this.executionContext = executionContext;
|
|
29
29
|
this.hashedResults = /* @__PURE__ */ new Set();
|
|
30
30
|
}
|
|
31
|
+
executionContext;
|
|
31
32
|
hashedResults;
|
|
32
33
|
hasMoreResults() {
|
|
33
34
|
const result = this.executionContext.hasMoreResults();
|
|
@@ -63,3 +64,4 @@ class UnorderedDistinctEndpointComponent {
|
|
|
63
64
|
0 && (module.exports = {
|
|
64
65
|
UnorderedDistinctEndpointComponent
|
|
65
66
|
});
|
|
67
|
+
//# sourceMappingURL=UnorderedDistinctEndpointComponent.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../src/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { Response } from \"../../request/index.js\";\nimport type { ExecutionContext } from \"../ExecutionContext.js\";\nimport { hashObject } from \"../../utils/hashObject.js\";\nimport type { DiagnosticNodeInternal } from \"../../diagnostics/DiagnosticNodeInternal.js\";\nimport type { ParallelQueryResult } from \"../parallelQueryResult.js\";\nimport { createParallelQueryResult } from \"../parallelQueryResult.js\";\nimport { getInitialHeader } from \"../headerUtils.js\";\n\n/** @hidden */\nexport class UnorderedDistinctEndpointComponent implements ExecutionContext {\n private hashedResults: Set<string>;\n constructor(private executionContext: ExecutionContext) {\n this.hashedResults = new Set();\n }\n\n public hasMoreResults(): boolean {\n const result = this.executionContext.hasMoreResults();\n return result;\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n const buffer: any[] = [];\n const response = await this.executionContext.fetchMore(diagnosticNode);\n\n if (!response) {\n const result = createParallelQueryResult([], new Map(), {}, undefined);\n return { result, headers: getInitialHeader() };\n }\n\n if (\n response.result === undefined ||\n !Array.isArray(response.result.buffer) ||\n response.result.buffer.length === 0\n ) {\n const result = createParallelQueryResult([], new Map(), {}, undefined);\n return { result, headers: response.headers };\n }\n\n const parallelResult = response.result as ParallelQueryResult;\n const dataToProcess: any[] = parallelResult.buffer;\n\n for (const item of dataToProcess) {\n if (item) {\n const hashedResult = await hashObject(item);\n if (!this.hashedResults.has(hashedResult)) {\n buffer.push(item);\n this.hashedResults.add(hashedResult);\n }\n }\n }\n const result = createParallelQueryResult(buffer, new Map(), undefined, undefined);\n return { result, headers: response.headers };\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,wBAA2B;AAG3B,iCAA0C;AAC1C,yBAAiC;AAG1B,MAAM,mCAA+D;AAAA,EAE1E,YAAoB,kBAAoC;AAApC;AAClB,SAAK,gBAAgB,oBAAI,IAAI;AAAA,EAC/B;AAAA,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,wBAA2B;AAG3B,iCAA0C;AAC1C,yBAAiC;AAG1B,MAAM,mCAA+D;AAAA,EAE1E,YAAoB,kBAAoC;AAApC;AAClB,SAAK,gBAAgB,oBAAI,IAAI;AAAA,EAC/B;AAAA,EAFoB;AAAA,EADZ;AAAA,EAKD,iBAA0B;AAC/B,UAAM,SAAS,KAAK,iBAAiB,eAAe;AACpD,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,UAAU,gBAAiE;AACtF,UAAM,SAAgB,CAAC;AACvB,UAAM,WAAW,MAAM,KAAK,iBAAiB,UAAU,cAAc;AAErE,QAAI,CAAC,UAAU;AACb,YAAMA,cAAS,sDAA0B,CAAC,GAAG,oBAAI,IAAI,GAAG,CAAC,GAAG,MAAS;AACrE,aAAO,EAAE,QAAAA,SAAQ,aAAS,qCAAiB,EAAE;AAAA,IAC/C;AAEA,QACE,SAAS,WAAW,UACpB,CAAC,MAAM,QAAQ,SAAS,OAAO,MAAM,KACrC,SAAS,OAAO,OAAO,WAAW,GAClC;AACA,YAAMA,cAAS,sDAA0B,CAAC,GAAG,oBAAI,IAAI,GAAG,CAAC,GAAG,MAAS;AACrE,aAAO,EAAE,QAAAA,SAAQ,SAAS,SAAS,QAAQ;AAAA,IAC7C;AAEA,UAAM,iBAAiB,SAAS;AAChC,UAAM,gBAAuB,eAAe;AAE5C,eAAW,QAAQ,eAAe;AAChC,UAAI,MAAM;AACR,cAAM,eAAe,UAAM,8BAAW,IAAI;AAC1C,YAAI,CAAC,KAAK,cAAc,IAAI,YAAY,GAAG;AACzC,iBAAO,KAAK,IAAI;AAChB,eAAK,cAAc,IAAI,YAAY;AAAA,QACrC;AAAA,MACF;AAAA,IACF;AACA,UAAM,aAAS,sDAA0B,QAAQ,oBAAI,IAAI,GAAG,QAAW,MAAS;AAChF,WAAO,EAAE,QAAQ,SAAS,SAAS,QAAQ;AAAA,EAC7C;AACF;",
|
|
6
6
|
"names": ["result"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../src/queryExecutionContext/EndpointComponent/emptyGroup.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// All aggregates are effectively a group by operation\n// The empty group is used for aggregates without a GROUP BY clause\nexport const emptyGroup = \"__empty__\";\n\n// Newer API versions rewrite the query to return `item2`. It fixes some legacy issues with the original `item` result\n// Aggregator code should use item2 when available\nexport const extractAggregateResult = (payload: { item2?: unknown; item: unknown }): any =>\n Object.keys(payload).length > 0 ? (payload.item2 ? payload.item2 : payload.item) : null;\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,MAAM,aAAa;AAInB,MAAM,yBAAyB,CAAC,YACrC,OAAO,KAAK,OAAO,EAAE,SAAS,IAAK,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAQ;",
|
|
6
6
|
"names": []
|
|
@@ -13,3 +13,4 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
13
13
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
14
14
|
var ExecutionContext_exports = {};
|
|
15
15
|
module.exports = __toCommonJS(ExecutionContext_exports);
|
|
16
|
+
//# sourceMappingURL=ExecutionContext.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/ExecutionContext.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type { Response } from \"../request/index.js\";\n\n/** @hidden */\nexport interface ExecutionContext {\n nextItem?: (diagnosticNode: DiagnosticNodeInternal) => Promise<Response<any>>;\n hasMoreResults: () => boolean;\n fetchMore?: (diagnosticNode: DiagnosticNodeInternal) => Promise<Response<any>>;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/FetchResult.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/** @hidden */\nexport enum FetchResultType {\n \"Done\" = 0,\n \"Exception\" = 1,\n \"Result\" = 2,\n}\n\n/** @hidden */\nexport class FetchResult {\n public feedResponse: any;\n public headers: any;\n public fetchResultType: FetchResultType;\n public error: any;\n /**\n * Wraps fetch results for the document producer.\n * This allows the document producer to buffer exceptions so that actual results don't get flushed during splits.\n *\n * @param feedReponse - The response the document producer got back on a successful fetch\n * @param error - The exception meant to be buffered on an unsuccessful fetch\n * @hidden\n */\n constructor(feedResponse: unknown, error: unknown, headers?: unknown) {\n // TODO: feedResponse/error\n if (feedResponse !== undefined) {\n this.feedResponse = feedResponse;\n this.headers = headers;\n this.fetchResultType = FetchResultType.Result;\n } else {\n this.error = error;\n this.fetchResultType = FetchResultType.Exception;\n }\n }\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,IAAK,kBAAL,kBAAKA,qBAAL;AACL,EAAAA,kCAAA,UAAS,KAAT;AACA,EAAAA,kCAAA,eAAc,KAAd;AACA,EAAAA,kCAAA,YAAW,KAAX;AAHU,SAAAA;AAAA,GAAA;AAOL,MAAM,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASP,YAAY,cAAuB,OAAgB,SAAmB;AAEpE,QAAI,iBAAiB,QAAW;AAC9B,WAAK,eAAe;AACpB,WAAK,UAAU;AACf,WAAK,kBAAkB;AAAA,IACzB,OAAO;AACL,WAAK,QAAQ;AACb,WAAK,kBAAkB;AAAA,IACzB;AAAA,EACF;AACF;",
|
|
6
6
|
"names": ["FetchResultType"]
|
|
@@ -26,6 +26,8 @@ class LegacyFetchImplementation {
|
|
|
26
26
|
this.endpoint = endpoint;
|
|
27
27
|
this.pageSize = pageSize;
|
|
28
28
|
}
|
|
29
|
+
endpoint;
|
|
30
|
+
pageSize;
|
|
29
31
|
async fetchMore(diagnosticNode, fetchBuffer) {
|
|
30
32
|
const fetchMoreRespHeaders = (0, import_headerUtils.getInitialHeader)();
|
|
31
33
|
try {
|
|
@@ -61,3 +63,4 @@ class LegacyFetchImplementation {
|
|
|
61
63
|
0 && (module.exports = {
|
|
62
64
|
LegacyFetchImplementation
|
|
63
65
|
});
|
|
66
|
+
//# sourceMappingURL=LegacyFetchImplementation.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/LegacyFetchImplementation.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Response } from \"../request/index.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { mergeHeaders, getInitialHeader } from \"./headerUtils.js\";\nimport type { ExecutionContext } from \"./ExecutionContext.js\";\n\n/**\n * Legacy fetch implementation for when enableQueryControl is false\n * @hidden\n */\nexport class LegacyFetchImplementation {\n constructor(\n private endpoint: ExecutionContext,\n private pageSize: number,\n ) {}\n\n async fetchMore(\n diagnosticNode: DiagnosticNodeInternal,\n fetchBuffer: any[],\n ): Promise<Response<any>> {\n // Initialize headers fresh for each fetchMore call\n const fetchMoreRespHeaders = getInitialHeader();\n\n try {\n // Keep fetching until we have enough items or no more results\n while (fetchBuffer.length < this.pageSize && this.endpoint.hasMoreResults()) {\n const response = await this.endpoint.fetchMore!(diagnosticNode);\n mergeHeaders(fetchMoreRespHeaders, response.headers);\n\n if (\n !response ||\n !response.result ||\n !response.result.buffer ||\n response.result.buffer.length === 0\n ) {\n if (fetchBuffer.length > 0) {\n const copiedFetchBuffer = [...fetchBuffer];\n fetchBuffer.length = 0; // Clear array in place\n return { result: copiedFetchBuffer, headers: fetchMoreRespHeaders };\n } else {\n return { result: undefined, headers: fetchMoreRespHeaders };\n }\n }\n fetchBuffer.push(...response.result.buffer);\n }\n\n // Return collected items up to pageSize\n if (fetchBuffer.length > 0) {\n const temp = fetchBuffer.slice(0, this.pageSize);\n fetchBuffer.splice(0, this.pageSize); // Remove items in place\n return { result: temp, headers: fetchMoreRespHeaders };\n } else {\n return { result: undefined, headers: fetchMoreRespHeaders };\n }\n } catch (err: any) {\n mergeHeaders(fetchMoreRespHeaders, err.headers);\n err.headers = fetchMoreRespHeaders;\n throw err;\n }\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,yBAA+C;AAOxC,MAAM,0BAA0B;AAAA,EACrC,YACU,UACA,UACR;AAFQ;AACA;AAAA,EACP;AAAA,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,yBAA+C;AAOxC,MAAM,0BAA0B;AAAA,EACrC,YACU,UACA,UACR;AAFQ;AACA;AAAA,EACP;AAAA,EAFO;AAAA,EACA;AAAA,EAGV,MAAM,UACJ,gBACA,aACwB;AAExB,UAAM,2BAAuB,qCAAiB;AAE9C,QAAI;AAEF,aAAO,YAAY,SAAS,KAAK,YAAY,KAAK,SAAS,eAAe,GAAG;AAC3E,cAAM,WAAW,MAAM,KAAK,SAAS,UAAW,cAAc;AAC9D,6CAAa,sBAAsB,SAAS,OAAO;AAEnD,YACE,CAAC,YACD,CAAC,SAAS,UACV,CAAC,SAAS,OAAO,UACjB,SAAS,OAAO,OAAO,WAAW,GAClC;AACA,cAAI,YAAY,SAAS,GAAG;AAC1B,kBAAM,oBAAoB,CAAC,GAAG,WAAW;AACzC,wBAAY,SAAS;AACrB,mBAAO,EAAE,QAAQ,mBAAmB,SAAS,qBAAqB;AAAA,UACpE,OAAO;AACL,mBAAO,EAAE,QAAQ,QAAW,SAAS,qBAAqB;AAAA,UAC5D;AAAA,QACF;AACA,oBAAY,KAAK,GAAG,SAAS,OAAO,MAAM;AAAA,MAC5C;AAGA,UAAI,YAAY,SAAS,GAAG;AAC1B,cAAM,OAAO,YAAY,MAAM,GAAG,KAAK,QAAQ;AAC/C,oBAAY,OAAO,GAAG,KAAK,QAAQ;AACnC,eAAO,EAAE,QAAQ,MAAM,SAAS,qBAAqB;AAAA,MACvD,OAAO;AACL,eAAO,EAAE,QAAQ,QAAW,SAAS,qBAAqB;AAAA,MAC5D;AAAA,IACF,SAAS,KAAU;AACjB,2CAAa,sBAAsB,IAAI,OAAO;AAC9C,UAAI,UAAU;AACd,YAAM;AAAA,IACR;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/PartitionRangeManager.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { QueryRangeWithContinuationToken } from \"../documents/ContinuationToken/CompositeQueryContinuationToken.js\";\nimport type { QueryRangeMapping } from \"./queryRangeMapping.js\";\n\n/**\n * Checks if a continuation token indicates an exhausted partition.\n * @param continuationToken - The continuation token to check\n * @returns true if the partition is exhausted (null, empty, or \"null\" string)\n * @hidden\n */\nexport function isPartitionExhausted(continuationToken: string | undefined): boolean {\n return (\n !continuationToken ||\n continuationToken === \"\" ||\n continuationToken === \"null\" ||\n continuationToken.toLowerCase() === \"null\"\n );\n}\n\n/**\n * Manages partition key range mappings for query execution.\n * Handles range operations, offset/limit processing, and distinct query logic.\n * @hidden\n */\nexport class PartitionRangeManager {\n private partitionKeyRangeMap: Map<string, QueryRangeMapping> = new Map();\n\n constructor(initialPartitionKeyRangeMap?: Map<string, QueryRangeMapping>) {\n if (initialPartitionKeyRangeMap) {\n this.partitionKeyRangeMap = new Map(initialPartitionKeyRangeMap);\n }\n }\n\n /**\n * Gets a copy of the current partition key range map for constructor pattern\n */\n public getPartitionKeyRangeMap(): Map<string, QueryRangeMapping> {\n return new Map(this.partitionKeyRangeMap);\n }\n\n /**\n * Adds a range mapping to the partition key range map\n * Does not allow updates to existing keys - only new additions\n * @param rangeId - Unique identifier for the partition range\n * @param mapping - The QueryRangeMapping to add\n */\n private addPartitionRangeMapping(rangeId: string, mapping: QueryRangeMapping): void {\n if (!this.partitionKeyRangeMap.has(rangeId)) {\n this.partitionKeyRangeMap.set(rangeId, mapping);\n }\n }\n\n /**\n * Removes a range mapping from the partition key range map\n */\n public removePartitionRangeMapping(rangeId: string): void {\n this.partitionKeyRangeMap.delete(rangeId);\n }\n\n /**\n * Updates the partition key range map with new mappings from the endpoint response\n * @param partitionKeyRangeMap - Map of range IDs to QueryRangeMapping objects\n */\n public addPartitionKeyRangeMap(partitionKeyRangeMap: Map<string, QueryRangeMapping>): void {\n if (partitionKeyRangeMap) {\n for (const [rangeId, mapping] of partitionKeyRangeMap) {\n this.addPartitionRangeMapping(rangeId, mapping);\n }\n }\n }\n\n /**\n * Checks if there are any unprocessed ranges in the sliding window\n */\n public hasUnprocessedRanges(): boolean {\n return this.partitionKeyRangeMap.size > 0;\n }\n\n /**\n * Removes exhausted(fully drained) ranges from the given range mappings\n * @param rangeMappings - Array of range mappings to filter\n * @returns Filtered array without exhausted ranges\n */\n public removeExhaustedRanges(rangeMappings: QueryRangeMapping[]): QueryRangeMapping[] {\n if (!rangeMappings || !Array.isArray(rangeMappings)) {\n return [];\n }\n\n return rangeMappings.filter((mapping) => {\n if (!mapping) {\n return false;\n }\n const isExhausted = isPartitionExhausted(mapping.continuationToken);\n\n if (isExhausted) {\n return false;\n }\n return true;\n });\n }\n\n /**\n * Processes ranges for ORDER BY queries\n */\n public processOrderByRanges(pageSize: number): {\n endIndex: number;\n processedRanges: string[];\n lastRangeBeforePageLimit: QueryRangeMapping | null;\n } {\n let endIndex = 0;\n const processedRanges: string[] = [];\n let lastRangeBeforePageLimit: QueryRangeMapping | null = null;\n let rangeIndex = 0;\n for (const [rangeId, value] of this.partitionKeyRangeMap) {\n rangeIndex++;\n const { itemCount } = value;\n // Check if this complete range fits within remaining page size capacity\n if (endIndex + itemCount <= pageSize) {\n lastRangeBeforePageLimit = value;\n endIndex += itemCount;\n processedRanges.push(rangeId);\n } else {\n break;\n }\n }\n\n return { endIndex, processedRanges, lastRangeBeforePageLimit };\n }\n\n public processEmptyOrderByRanges(ranges: QueryRangeWithContinuationToken[]): {\n endIndex: number;\n processedRanges: string[];\n lastRangeBeforePageLimit: QueryRangeMapping | undefined;\n } {\n const endIndex = 0;\n const processedRanges: string[] = [];\n let lastRangeBeforePageLimit: QueryRangeMapping | undefined;\n\n // since there is no data returned add all the ids to processed ranges\n for (const [rangeId, _] of this.partitionKeyRangeMap) {\n processedRanges.push(rangeId);\n }\n // search for matching range in the map(min max value exact match) and return that as lastRangeBeforePageLimit\n for (const [_, mapping] of this.partitionKeyRangeMap) {\n if (\n mapping.partitionKeyRange!.minInclusive === ranges[0].queryRange.min &&\n mapping.partitionKeyRange!.maxExclusive === ranges[0].queryRange.max\n ) {\n lastRangeBeforePageLimit = mapping;\n break;\n }\n }\n\n return { endIndex, processedRanges, lastRangeBeforePageLimit };\n }\n /**\n * Processes ranges for parallel queries - multi-range aggregation\n */\n public processParallelRanges(pageSize: number): {\n endIndex: number;\n processedRanges: string[];\n processedRangeMappings: QueryRangeMapping[];\n lastPartitionBeforeCutoff?: { rangeId: string; mapping: QueryRangeMapping };\n } {\n let endIndex = 0;\n const processedRanges: string[] = [];\n const processedRangeMappings: QueryRangeMapping[] = [];\n let rangesAggregatedInCurrentToken = 0;\n let lastPartitionBeforeCutoff: { rangeId: string; mapping: QueryRangeMapping } | undefined;\n\n for (const [rangeId, value] of this.partitionKeyRangeMap) {\n rangesAggregatedInCurrentToken++;\n\n // Validate range data\n if (!value || value.itemCount === undefined) {\n continue;\n }\n\n const { itemCount } = value;\n\n // ASSUMPTION: Backend should respect maxItemCount and return pageSize or fewer items per partition.\n // The logic below expects itemCount (items from a partition) to be <= pageSize.\n // KNOWN ISSUE: Backend currently violates this contract for non-streaming queries (e.g., hybrid queries),\n // returning more items per partition than maxItemCount specified. This causes pagination logic to fail,\n // as ranges with itemCount > pageSize cannot fit and result in endIndex=0.\n if (endIndex + itemCount <= pageSize) {\n lastPartitionBeforeCutoff = { rangeId, mapping: value };\n endIndex += itemCount;\n processedRanges.push(rangeId);\n processedRangeMappings.push(value);\n } else {\n break; // No more ranges can fit, exit loop\n }\n }\n\n return { endIndex, processedRanges, processedRangeMappings, lastPartitionBeforeCutoff };\n }\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/PartitionRangeUtils.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Calculates offset/limit values after consuming each partition range sequentially\n * @param partitionKeyRangeMap - Map of range IDs to range mappings\n * @param initialOffset - Initial offset value\n * @param initialLimit - Initial limit value\n * @returns Updated partition key range map with calculated offset/limit values and updated itemCount\n * @hidden\n */\nexport function calculateOffsetLimitForPartitionRanges(\n partitionKeyRangeMap: Map<string, any>,\n initialOffset: number,\n initialLimit: number,\n): Map<string, any> {\n if (!partitionKeyRangeMap || partitionKeyRangeMap.size === 0) {\n return partitionKeyRangeMap;\n }\n\n const updatedMap = new Map<string, any>();\n let currentOffset = initialOffset;\n let currentLimit = initialLimit;\n\n for (const [rangeId, rangeMapping] of partitionKeyRangeMap) {\n const { itemCount } = rangeMapping;\n\n let offsetAfterThisRange = currentOffset;\n let limitAfterThisRange = currentLimit;\n let updatedItemCount = itemCount;\n\n if (itemCount > 0) {\n if (currentOffset > 0) {\n // Calculate how much offset this range consumes\n const offsetConsumption = Math.min(currentOffset, itemCount);\n offsetAfterThisRange = currentOffset - offsetConsumption;\n\n // Calculate remaining items after offset consumption\n const remainingItems = itemCount - offsetConsumption;\n\n if (remainingItems > 0 && currentLimit > 0) {\n // Apply limit to remaining items\n const limitConsumption = Math.min(currentLimit, remainingItems);\n limitAfterThisRange = currentLimit - limitConsumption;\n // Update item count to reflect actual items that will be returned from this range\n updatedItemCount = limitConsumption;\n } else {\n // No items left after offset, or no limit remaining\n updatedItemCount = 0;\n limitAfterThisRange = currentLimit;\n }\n } else if (currentLimit > 0) {\n // No offset, but limit applies\n const limitConsumption = Math.min(currentLimit, itemCount);\n limitAfterThisRange = currentLimit - limitConsumption;\n offsetAfterThisRange = 0;\n // Update item count to reflect actual items that will be returned from this range\n updatedItemCount = limitConsumption;\n } else {\n // No limit remaining - this range contributes 0 items\n updatedItemCount = 0;\n }\n\n // Update running totals for next iteration\n currentOffset = offsetAfterThisRange;\n currentLimit = limitAfterThisRange;\n } else {\n // Range has no items to begin with\n updatedItemCount = 0;\n }\n\n updatedMap.set(rangeId, {\n ...rangeMapping,\n offset: offsetAfterThisRange,\n limit: limitAfterThisRange,\n itemCount: updatedItemCount,\n });\n }\n\n return updatedMap;\n}\n\n/**\n * Processes distinct query logic and updates partition key range map with hashedLastResult\n * @param originalBuffer - Original buffer containing query results\n * @param partitionKeyRangeMap - Map of partition key ranges\n * @param hashFunction - Hash function for items\n * @returns Updated partition key range map with hashedLastResult for each range\n * @hidden\n */\nexport async function processDistinctQueryAndUpdateRangeMap(\n originalBuffer: any[],\n partitionKeyRangeMap: Map<string, any>,\n hashFunction: (item: any) => Promise<string>,\n): Promise<Map<string, any>> {\n if (!partitionKeyRangeMap || partitionKeyRangeMap.size === 0) {\n return partitionKeyRangeMap;\n }\n\n const updatedMap = new Map<string, any>();\n let bufferIndex = 0;\n\n for (const [rangeId, rangeMapping] of partitionKeyRangeMap) {\n const { itemCount } = rangeMapping;\n\n let lastHashForThisRange: string | undefined;\n if (itemCount > 0 && bufferIndex <= originalBuffer.length) {\n const rangeEndIndex = Math.min(bufferIndex + itemCount, originalBuffer.length);\n const lastItemIndex = rangeEndIndex - 1;\n\n const lastItem = originalBuffer[lastItemIndex];\n if (lastItem) {\n lastHashForThisRange = await hashFunction(lastItem);\n }\n bufferIndex = rangeEndIndex;\n }\n\n updatedMap.set(rangeId, {\n ...rangeMapping,\n hashedLastResult: lastHashForThisRange,\n });\n }\n\n return updatedMap;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWO,SAAS,uCACd,sBACA,eACA,cACkB;AAClB,MAAI,CAAC,wBAAwB,qBAAqB,SAAS,GAAG;AAC5D,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,oBAAI,IAAiB;AACxC,MAAI,gBAAgB;AACpB,MAAI,eAAe;AAEnB,aAAW,CAAC,SAAS,YAAY,KAAK,sBAAsB;AAC1D,UAAM,EAAE,UAAU,IAAI;AAEtB,QAAI,uBAAuB;AAC3B,QAAI,sBAAsB;AAC1B,QAAI,mBAAmB;AAEvB,QAAI,YAAY,GAAG;AACjB,UAAI,gBAAgB,GAAG;AAErB,cAAM,oBAAoB,KAAK,IAAI,eAAe,SAAS;AAC3D,+BAAuB,gBAAgB;AAGvC,cAAM,iBAAiB,YAAY;AAEnC,YAAI,iBAAiB,KAAK,eAAe,GAAG;AAE1C,gBAAM,mBAAmB,KAAK,IAAI,cAAc,cAAc;AAC9D,gCAAsB,eAAe;AAErC,6BAAmB;AAAA,QACrB,OAAO;AAEL,6BAAmB;AACnB,gCAAsB;AAAA,QACxB;AAAA,MACF,WAAW,eAAe,GAAG;AAE3B,cAAM,mBAAmB,KAAK,IAAI,cAAc,SAAS;AACzD,8BAAsB,eAAe;AACrC,+BAAuB;AAEvB,2BAAmB;AAAA,MACrB,OAAO;AAEL,2BAAmB;AAAA,MACrB;AAGA,sBAAgB;AAChB,qBAAe;AAAA,IACjB,OAAO;AAEL,yBAAmB;AAAA,IACrB;AAEA,eAAW,IAAI,SAAS;AAAA,MACtB,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,WAAW;AAAA,IACb,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAUA,eAAsB,sCACpB,gBACA,sBACA,cAC2B;AAC3B,MAAI,CAAC,wBAAwB,qBAAqB,SAAS,GAAG;AAC5D,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,oBAAI,IAAiB;AACxC,MAAI,cAAc;AAElB,aAAW,CAAC,SAAS,YAAY,KAAK,sBAAsB;AAC1D,UAAM,EAAE,UAAU,IAAI;AAEtB,QAAI;AACJ,QAAI,YAAY,KAAK,eAAe,eAAe,QAAQ;AACzD,YAAM,gBAAgB,KAAK,IAAI,cAAc,WAAW,eAAe,MAAM;AAC7E,YAAM,gBAAgB,gBAAgB;AAEtC,YAAM,WAAW,eAAe,aAAa;AAC7C,UAAI,UAAU;AACZ,+BAAuB,MAAM,aAAa,QAAQ;AAAA,MACpD;AACA,oBAAc;AAAA,IAChB;AAEA,eAAW,IAAI,SAAS;AAAA,MACtB,GAAG;AAAA,MACH,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
@@ -34,6 +34,8 @@ class QueryControlFetchImplementation {
|
|
|
34
34
|
isOrderByQuery
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
|
+
endpoint;
|
|
38
|
+
pageSize;
|
|
37
39
|
// Required fields for query control - not optional
|
|
38
40
|
continuationTokenManager;
|
|
39
41
|
querySupportsTokens;
|
|
@@ -116,3 +118,4 @@ class QueryControlFetchImplementation {
|
|
|
116
118
|
0 && (module.exports = {
|
|
117
119
|
QueryControlFetchImplementation
|
|
118
120
|
});
|
|
121
|
+
//# sourceMappingURL=QueryControlFetchImplementation.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/QueryControlFetchImplementation.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Response } from \"../request/index.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { mergeHeaders, getInitialHeader } from \"./headerUtils.js\";\nimport type { BaseContinuationTokenManager } from \"./ContinuationTokenManager/BaseContinuationTokenManager.js\";\nimport { ContinuationTokenManagerFactory } from \"./ContinuationTokenManager/ContinuationTokenManagerFactory.js\";\nimport { Constants } from \"../common/index.js\";\nimport type { ExecutionContext } from \"./ExecutionContext.js\";\n\n/**\n * Query control enabled fetch implementation with continuation token support\n * @hidden\n */\nexport class QueryControlFetchImplementation {\n // Required fields for query control - not optional\n private readonly continuationTokenManager: BaseContinuationTokenManager;\n private readonly querySupportsTokens: boolean;\n\n constructor(\n private endpoint: ExecutionContext,\n private pageSize: number,\n collectionLink: string,\n continuationToken: string | undefined,\n isOrderByQuery: boolean,\n querySupportsTokens: boolean,\n ) {\n this.querySupportsTokens = querySupportsTokens;\n\n // Initialize continuation token manager immediately for query control\n this.continuationTokenManager = ContinuationTokenManagerFactory.create(\n collectionLink,\n continuationToken,\n isOrderByQuery,\n );\n }\n\n async fetchMore(\n diagnosticNode: DiagnosticNodeInternal,\n fetchBuffer: any[],\n ): Promise<Response<any>> {\n // Initialize headers fresh for each fetchMore call\n const fetchMoreRespHeaders = getInitialHeader();\n\n // Use continuation token logic for supported queries when query control is enabled\n // Otherwise use simplified buffer-only logic\n if (this.querySupportsTokens) {\n return this._handleQueryFetch(diagnosticNode, fetchBuffer, fetchMoreRespHeaders);\n } else {\n return this._handleSimpleBufferFetch(diagnosticNode, fetchBuffer, fetchMoreRespHeaders);\n }\n }\n\n private async _handleSimpleBufferFetch(\n diagnosticNode: DiagnosticNodeInternal,\n fetchBuffer: any[],\n fetchMoreRespHeaders: Record<string, any>,\n ): Promise<Response<any>> {\n // Return buffered data if available\n if (fetchBuffer.length > 0) {\n const temp = fetchBuffer.slice(0, this.pageSize);\n fetchBuffer.splice(0, this.pageSize); // Remove items in place\n return { result: temp, headers: fetchMoreRespHeaders };\n }\n\n // Fetch new data from endpoint\n const response = await this.endpoint.fetchMore!(diagnosticNode);\n mergeHeaders(fetchMoreRespHeaders, response.headers);\n\n if (!response?.result?.buffer?.length) {\n return this._createEmptyResult(response?.headers);\n }\n\n // Buffer new data and return up to pageSize\n fetchBuffer.length = 0; // Clear existing items\n fetchBuffer.push(...response.result.buffer); // Add new items\n const temp = fetchBuffer.slice(0, this.pageSize);\n fetchBuffer.splice(0, this.pageSize); // Remove returned items in place\n\n return { result: temp, headers: fetchMoreRespHeaders };\n }\n\n private async _handleQueryFetch(\n diagnosticNode: DiagnosticNodeInternal,\n fetchBuffer: any[],\n fetchMoreRespHeaders: Record<string, any>,\n ): Promise<Response<any>> {\n if (fetchBuffer.length > 0) {\n const { endIndex, continuationToken } = this.continuationTokenManager.paginateResults(\n this.pageSize,\n false,\n );\n const temp = fetchBuffer.slice(0, endIndex);\n fetchBuffer.splice(0, endIndex); // Remove returned items in place\n this._setContinuationTokenInHeaders(continuationToken, fetchMoreRespHeaders);\n\n return { result: temp, headers: fetchMoreRespHeaders };\n }\n\n // Fetch new data from endpoint\n fetchBuffer.length = 0; // Clear existing items in place\n const response = await this.endpoint.fetchMore!(diagnosticNode);\n mergeHeaders(fetchMoreRespHeaders, response.headers);\n\n if (!response?.result?.buffer || response.result.buffer.length === 0) {\n const { continuationToken } = this.continuationTokenManager.paginateResults(\n this.pageSize,\n true, // isResponseEmpty = true\n response?.result, // Pass response data for processing\n );\n this._setContinuationTokenInHeaders(continuationToken, fetchMoreRespHeaders);\n return this._createEmptyResult(fetchMoreRespHeaders);\n }\n\n fetchBuffer.push(...response.result.buffer); // Add new items to existing buffer\n const { endIndex, continuationToken } = this.continuationTokenManager.paginateResults(\n this.pageSize,\n false, // isResponseEmpty = false\n response.result, // Pass response data for processing\n );\n\n const temp = fetchBuffer.slice(0, endIndex);\n fetchBuffer.splice(0, endIndex); // Remove returned items in place\n this._setContinuationTokenInHeaders(continuationToken, fetchMoreRespHeaders);\n\n return { result: temp, headers: fetchMoreRespHeaders };\n }\n\n private _setContinuationTokenInHeaders(\n continuationToken: string | undefined,\n fetchMoreRespHeaders: Record<string, any>,\n ): void {\n if (continuationToken) {\n Object.assign(fetchMoreRespHeaders, {\n [Constants.HttpHeaders.Continuation]: continuationToken,\n });\n }\n }\n\n private _createEmptyResult(headers?: any): Response<any> {\n const hdrs = headers || getInitialHeader();\n return { result: [], headers: hdrs };\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,yBAA+C;AAE/C,6CAAgD;AAChD,oBAA0B;AAOnB,MAAM,gCAAgC;AAAA,EAK3C,YACU,UACA,UACR,gBACA,mBACA,gBACA,qBACA;AANQ;AACA;AAMR,SAAK,sBAAsB;AAG3B,SAAK,2BAA2B,uEAAgC;AAAA,MAC9D;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA,
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["temp", "endIndex", "continuationToken"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/QueryValidationHelper.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { ErrorResponse } from \"../request/ErrorResponse.js\";\n\n/**\n * Represents a query type that doesn't support continuation tokens\n * @internal\n */\nexport interface UnsupportedQueryType {\n readonly name: string;\n readonly isPresent: boolean;\n readonly errorMessage: string;\n}\n\n/**\n * Rejects continuation token usage for unsupported query types\n * @param continuationToken - The continuation token if provided\n * @param unsupportedQueryTypes - Array of query types that don't support continuation tokens\n * @throws ErrorResponse if continuation token is provided for any unsupported query type\n * @hidden\n */\nexport function rejectContinuationTokenForUnsupportedQueries(\n continuationToken: string | undefined,\n unsupportedQueryTypes: UnsupportedQueryType[],\n): void {\n if (!continuationToken) {\n return;\n }\n\n // Find the first unsupported query type that is present\n const conflictingQueryType = unsupportedQueryTypes.find((queryType) => queryType.isPresent);\n\n if (conflictingQueryType) {\n throw new ErrorResponse(conflictingQueryType.errorMessage);\n }\n}\n\n/**\n * Factory functions for creating unsupported query type descriptors\n * @internal\n */\nexport const QueryTypes = {\n nonStreamingOrderBy: (isPresent: boolean): UnsupportedQueryType => ({\n name: \"NonStreamingOrderBy\",\n isPresent,\n errorMessage:\n \"Continuation tokens are not supported for non-streaming ORDER BY queries. \" +\n \"These queries must process all results to ensure correct ordering and cannot be resumed from an intermediate state. \" +\n \"Consider removing the continuation token and using fetchAll() instead for complete results.\",\n }),\n\n groupBy: (isPresent: boolean): UnsupportedQueryType => ({\n name: \"GroupBy\",\n isPresent,\n errorMessage:\n \"Continuation tokens are not supported for GROUP BY queries. \" +\n \"These queries must process all results to compute aggregations and cannot be resumed from an intermediate state. \" +\n \"Consider removing the continuation token and using fetchAll() instead for complete results.\",\n }),\n\n unorderedDistinct: (isPresent: boolean): UnsupportedQueryType => ({\n name: \"UnorderedDistinct\",\n isPresent,\n errorMessage:\n \"Continuation tokens are not supported for unordered DISTINCT queries. \" +\n \"These queries require tracking large amounts of duplicate data in continuation tokens which is not practical. \" +\n \"Consider removing the continuation token and using fetchAll() instead, or use ordered DISTINCT queries which are supported.\",\n }),\n\n hybridSearch: (isPresent: boolean): UnsupportedQueryType => ({\n name: \"HybridSearch\",\n isPresent,\n errorMessage:\n \"Continuation tokens are not supported for hybrid search queries. \" +\n \"Hybrid search queries require processing and ranking of all component query results \" +\n \"to compute accurate Reciprocal Rank Fusion (RRF) scores and cannot be resumed from an intermediate state. \" +\n \"Consider removing the continuation token and using fetchAll() instead for complete results.\",\n }),\n\n // Easy to add new unsupported query types here\n vectorSearch: (isPresent: boolean): UnsupportedQueryType => ({\n name: \"VectorSearch\",\n isPresent,\n errorMessage:\n \"Continuation tokens are not supported for vector search queries. \" +\n \"Vector search queries require processing similarity calculations across all data \" +\n \"and cannot be resumed from an intermediate state. \" +\n \"Consider removing the continuation token and using fetchAll() instead for complete results.\",\n }),\n} as const;\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAA8B;AAmBvB,SAAS,6CACd,mBACA,uBACM;AACN,MAAI,CAAC,mBAAmB;AACtB;AAAA,EACF;AAGA,QAAM,uBAAuB,sBAAsB,KAAK,CAAC,cAAc,UAAU,SAAS;AAE1F,MAAI,sBAAsB;AACxB,UAAM,IAAI,mCAAc,qBAAqB,YAAY;AAAA,EAC3D;AACF;AAMO,MAAM,aAAa;AAAA,EACxB,qBAAqB,CAAC,eAA8C;AAAA,IAClE,MAAM;AAAA,IACN;AAAA,IACA,cACE;AAAA,EAGJ;AAAA,EAEA,SAAS,CAAC,eAA8C;AAAA,IACtD,MAAM;AAAA,IACN;AAAA,IACA,cACE;AAAA,EAGJ;AAAA,EAEA,mBAAmB,CAAC,eAA8C;AAAA,IAChE,MAAM;AAAA,IACN;AAAA,IACA,cACE;AAAA,EAGJ;AAAA,EAEA,cAAc,CAAC,eAA8C;AAAA,IAC3D,MAAM;AAAA,IACN;AAAA,IACA,cACE;AAAA,EAIJ;AAAA;AAAA,EAGA,cAAc,CAAC,eAA8C;AAAA,IAC3D,MAAM;AAAA,IACN;AAAA,IACA,cACE;AAAA,EAIJ;AACF;",
|
|
6
6
|
"names": []
|
|
@@ -13,3 +13,4 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
13
13
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
14
14
|
var SqlQuerySpec_exports = {};
|
|
15
15
|
module.exports = __toCommonJS(SqlQuerySpec_exports);
|
|
16
|
+
//# sourceMappingURL=SqlQuerySpec.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/SqlQuerySpec.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Represents a SQL query in the Azure Cosmos DB service.\n *\n * Queries with inputs should be parameterized to protect against SQL injection.\n *\n * @example Parameterized SQL Query\n * ```ts snippet:SqlQuerySpecParameterizedSqlQuery\n * import { SqlQuerySpec } from \"@azure/cosmos\";\n *\n * const query: SqlQuerySpec = {\n * query: `SELECT * FROM Families f where f.lastName = @lastName`,\n * parameters: [{ name: \"@lastName\", value: \"Wakefield\" }],\n * };\n * ```\n */\nexport interface SqlQuerySpec {\n /** The text of the SQL query */\n query: string;\n /** The parameters you provide in the query */\n parameters?: SqlParameter[];\n}\n\n/**\n * Represents a parameter in a Parameterized SQL query, specified in {@link SqlQuerySpec}\n */\nexport interface SqlParameter {\n /** Name of the parameter. (i.e. `@lastName`) */\n name: string;\n /** Value of the parameter (this is safe to come from users, assuming they are authorized) */\n value: JSONValue;\n}\n\nexport type JSONValue = boolean | number | string | null | JSONArray | JSONObject | Date;\nexport interface JSONObject {\n [key: string]: JSONValue;\n}\nexport interface JSONArray extends ArrayLike<JSONValue> {}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/defaultQueryExecutionContext.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { AzureLogger } from \"@azure/logger\";\nimport { createClientLogger } from \"@azure/logger\";\nimport { Constants } from \"../common/index.js\";\nimport { ClientSideMetrics, QueryMetrics } from \"../queryMetrics/index.js\";\nimport type { FeedOptions, Response } from \"../request/index.js\";\nimport { getInitialHeader } from \"./headerUtils.js\";\nimport type { ExecutionContext } from \"./index.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { DiagnosticNodeType } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { addDiagnosticChild } from \"../utils/diagnostics.js\";\nimport { CosmosDbDiagnosticLevel } from \"../diagnostics/CosmosDbDiagnosticLevel.js\";\n\nconst logger: AzureLogger = createClientLogger(\"ClientContext\");\n/** @hidden */\nexport type FetchFunctionCallback = (\n diagnosticNode: DiagnosticNodeInternal,\n options: FeedOptions,\n correlatedActivityId: string,\n) => Promise<Response<any>>;\n\n/** @hidden */\nenum STATES {\n start = \"start\",\n inProgress = \"inProgress\",\n ended = \"ended\",\n}\n\n/** @hidden */\nexport class DefaultQueryExecutionContext implements ExecutionContext {\n private static readonly STATES = STATES;\n private resources: any[]; // TODO: any resources\n private currentIndex: number;\n private currentPartitionIndex: number;\n private fetchFunctions: FetchFunctionCallback[];\n private options: FeedOptions; // TODO: any options\n public continuationToken: string | undefined; // TODO: any continuation\n public get continuation(): string | undefined {\n return this.continuationToken;\n }\n private state: STATES;\n private nextFetchFunction: Promise<Response<any>>;\n private correlatedActivityId: string;\n /**\n * Provides the basic Query Execution Context.\n * This wraps the internal logic query execution using provided fetch functions\n *\n * @param clientContext - Is used to read the partitionKeyRanges for split proofing\n * @param query - A SQL query.\n * @param options - Represents the feed options.\n * @param fetchFunctions - A function to retrieve each page of data.\n * An array of functions may be used to query more than one partition.\n * @hidden\n */\n constructor(\n options: FeedOptions,\n fetchFunctions: FetchFunctionCallback | FetchFunctionCallback[],\n correlatedActivityId: string,\n ) {\n this.resources = [];\n this.currentIndex = 0;\n this.currentPartitionIndex = 0;\n this.fetchFunctions = Array.isArray(fetchFunctions) ? fetchFunctions : [fetchFunctions];\n this.options = options || {};\n this.continuationToken =\n this.options.continuationToken || this.options.continuation || undefined;\n this.state = DefaultQueryExecutionContext.STATES.start;\n this.correlatedActivityId = correlatedActivityId;\n }\n\n /**\n * Execute a provided callback on the next element in the execution context.\n */\n public async nextItem(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n ++this.currentIndex;\n const response = await this.current(diagnosticNode);\n return response;\n }\n\n /**\n * Retrieve the current element on the execution context.\n */\n public async current(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n if (this.currentIndex < this.resources.length) {\n return {\n result: this.resources[this.currentIndex],\n headers: getInitialHeader(),\n };\n }\n\n if (this._canFetchMore()) {\n const { result: resources, headers } = await this.fetchMore(diagnosticNode);\n this.resources = resources;\n if (this.resources.length === 0) {\n if (!this.continuationToken && this.currentPartitionIndex >= this.fetchFunctions.length) {\n this.state = DefaultQueryExecutionContext.STATES.ended;\n return { result: undefined, headers };\n } else {\n return this.current(diagnosticNode);\n }\n }\n return { result: this.resources[this.currentIndex], headers };\n } else {\n this.state = DefaultQueryExecutionContext.STATES.ended;\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n }\n\n /**\n * Determine if there are still remaining resources to processs based on\n * the value of the continuation token or the elements remaining on the current batch in the execution context.\n *\n * @returns true if there is other elements to process in the DefaultQueryExecutionContext.\n */\n public hasMoreResults(): boolean {\n return (\n this.state === DefaultQueryExecutionContext.STATES.start ||\n this.continuationToken !== undefined ||\n this.currentIndex < this.resources.length - 1 ||\n this.currentPartitionIndex < this.fetchFunctions.length\n );\n }\n\n /**\n * Fetches the next batch of the feed and pass them as an array to a callback\n */\n public async fetchMore(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n return addDiagnosticChild(\n async (childDiagnosticNode: DiagnosticNodeInternal) => {\n if (this.currentPartitionIndex >= this.fetchFunctions.length) {\n return {\n headers: getInitialHeader(),\n result: undefined,\n };\n }\n\n // Keep to the original continuation and to restore the value after fetchFunction call\n const originalContinuation = this.options.continuationToken || this.options.continuation;\n this.options.continuationToken = this.continuationToken;\n\n // Return undefined if there is no more results\n if (this.currentPartitionIndex >= this.fetchFunctions.length) {\n return {\n headers: getInitialHeader(),\n result: undefined,\n };\n }\n\n let resources;\n let responseHeaders;\n try {\n let p: Promise<Response<any>>;\n if (this.nextFetchFunction !== undefined) {\n logger.verbose(\"using prefetch\");\n p = this.nextFetchFunction;\n this.nextFetchFunction = undefined;\n } else {\n logger.verbose(\"using fresh fetch\");\n p = this.fetchFunctions[this.currentPartitionIndex](\n childDiagnosticNode,\n this.options,\n this.correlatedActivityId,\n );\n }\n const response = await p;\n resources = response.result;\n childDiagnosticNode.recordQueryResult(resources, CosmosDbDiagnosticLevel.debugUnsafe);\n responseHeaders = response.headers;\n this.continuationToken = responseHeaders[Constants.HttpHeaders.Continuation];\n if (!this.continuationToken) {\n ++this.currentPartitionIndex;\n }\n\n if (this.options && this.options.bufferItems === true) {\n const fetchFunction = this.fetchFunctions[this.currentPartitionIndex];\n this.nextFetchFunction = fetchFunction\n ? fetchFunction(\n childDiagnosticNode,\n {\n ...this.options,\n continuationToken: this.continuationToken,\n },\n this.correlatedActivityId,\n )\n : undefined;\n }\n } catch (err: any) {\n this.state = DefaultQueryExecutionContext.STATES.ended;\n // return callback(err, undefined, responseHeaders);\n // TODO: Error and data being returned is an antipattern, this might broken\n throw err;\n }\n\n this.state = DefaultQueryExecutionContext.STATES.inProgress;\n this.currentIndex = 0;\n this.options.continuationToken = originalContinuation;\n this.options.continuation = originalContinuation;\n\n // deserializing query metrics so that we aren't working with delimited strings in the rest of the code base\n if (Constants.HttpHeaders.QueryMetrics in responseHeaders) {\n const delimitedString = responseHeaders[Constants.HttpHeaders.QueryMetrics];\n let queryMetrics = QueryMetrics.createFromDelimitedString(delimitedString);\n\n // Add the request charge to the query metrics so that we can have per partition request charge.\n if (Constants.HttpHeaders.RequestCharge in responseHeaders) {\n const requestCharge = Number(responseHeaders[Constants.HttpHeaders.RequestCharge]) || 0;\n queryMetrics = new QueryMetrics(\n queryMetrics.retrievedDocumentCount,\n queryMetrics.retrievedDocumentSize,\n queryMetrics.outputDocumentCount,\n queryMetrics.outputDocumentSize,\n queryMetrics.indexHitDocumentCount,\n queryMetrics.totalQueryExecutionTime,\n queryMetrics.queryPreparationTimes,\n queryMetrics.indexLookupTime,\n queryMetrics.documentLoadTime,\n queryMetrics.vmExecutionTime,\n queryMetrics.runtimeExecutionTimes,\n queryMetrics.documentWriteTime,\n new ClientSideMetrics(requestCharge),\n );\n }\n\n // Wraping query metrics in a object where the key is '0' just so single partition\n // and partition queries have the same response schema\n responseHeaders[Constants.HttpHeaders.QueryMetrics] = {};\n responseHeaders[Constants.HttpHeaders.QueryMetrics][\"0\"] = queryMetrics;\n }\n\n return { result: resources, headers: responseHeaders };\n },\n diagnosticNode,\n DiagnosticNodeType.DEFAULT_QUERY_NODE,\n {\n queryMethodIdentifier: \"fetchMore\",\n },\n );\n }\n\n private _canFetchMore(): boolean {\n const res =\n this.state === DefaultQueryExecutionContext.STATES.start ||\n (this.continuationToken && this.state === DefaultQueryExecutionContext.STATES.inProgress) ||\n (this.currentPartitionIndex < this.fetchFunctions.length &&\n this.state === DefaultQueryExecutionContext.STATES.inProgress);\n return res;\n }\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["STATES"]
|
|
@@ -53,6 +53,7 @@ class DocumentProducer {
|
|
|
53
53
|
this.populateEpkRangeHeaders = populateEpkRangeHeaders;
|
|
54
54
|
this.filter = filter;
|
|
55
55
|
}
|
|
56
|
+
clientContext;
|
|
56
57
|
collectionLink;
|
|
57
58
|
query;
|
|
58
59
|
targetPartitionKeyRange;
|
|
@@ -300,3 +301,4 @@ class DocumentProducer {
|
|
|
300
301
|
0 && (module.exports = {
|
|
301
302
|
DocumentProducer
|
|
302
303
|
});
|
|
304
|
+
//# sourceMappingURL=documentProducer.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/documentProducer.ts"],
|
|
4
4
|
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { PartitionKeyRange, Resource } from \"../client/index.js\";\nimport type { ClientContext } from \"../ClientContext.js\";\nimport {\n Constants,\n getIdFromLink,\n getPathFromLink,\n ResourceType,\n StatusCodes,\n SubStatusCodes,\n} from \"../common/index.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type { FeedOptions } from \"../request/index.js\";\nimport type { Response } from \"../request/index.js\";\nimport { DefaultQueryExecutionContext } from \"./defaultQueryExecutionContext.js\";\nimport type { FetchFunctionCallback } from \"./defaultQueryExecutionContext.js\";\nimport { FetchResult, FetchResultType } from \"./FetchResult.js\";\nimport { getInitialHeader } from \"./headerUtils.js\";\nimport type { CosmosHeaders } from \"./headerUtils.js\";\nimport type { SqlQuerySpec, FilterStrategy } from \"./index.js\";\n\n/** @hidden */\nexport class DocumentProducer {\n private collectionLink: string;\n private query: string | SqlQuerySpec;\n public targetPartitionKeyRange: PartitionKeyRange;\n public fetchResults: FetchResult[];\n public allFetched: boolean;\n private err: Error;\n public previousContinuationToken: string;\n public continuationToken: string;\n public generation: number = 0;\n private internalExecutionContext: DefaultQueryExecutionContext;\n public startEpk: string;\n public endEpk: string;\n public populateEpkRangeHeaders: boolean;\n private filter?: FilterStrategy;\n private queryExecutionInfo?: { reverseRidEnabled: boolean; reverseIndexScan: boolean };\n\n /**\n * Provides the Target Partition Range Query Execution Context.\n * @param clientContext - The service endpoint to use to create the client.\n * @param collectionLink - Represents collection link\n * @param query - A SQL query.\n * @param targetPartitionKeyRange - Query Target Partition key Range\n * @hidden\n */\n constructor(\n private clientContext: ClientContext,\n collectionLink: string,\n query: SqlQuerySpec,\n targetPartitionKeyRange: PartitionKeyRange,\n options: FeedOptions,\n correlatedActivityId: string,\n startEpk?: string,\n endEpk?: string,\n populateEpkRangeHeaders: boolean = false,\n filter?: FilterStrategy,\n ) {\n // TODO: any options\n this.collectionLink = collectionLink;\n this.query = query;\n this.targetPartitionKeyRange = targetPartitionKeyRange;\n this.fetchResults = [];\n\n this.allFetched = false;\n this.err = undefined;\n\n this.previousContinuationToken = undefined;\n this.continuationToken = undefined;\n\n this.internalExecutionContext = new DefaultQueryExecutionContext(\n options,\n this.fetchFunction,\n correlatedActivityId,\n );\n this.startEpk = startEpk;\n this.endEpk = endEpk;\n this.populateEpkRangeHeaders = populateEpkRangeHeaders;\n this.filter = filter;\n }\n public peekBufferedItems(): any[] {\n const bufferedResults = [];\n for (let i = 0, done = false; i < this.fetchResults.length && !done; i++) {\n const fetchResult = this.fetchResults[i];\n switch (fetchResult.fetchResultType) {\n case FetchResultType.Done:\n done = true;\n break;\n case FetchResultType.Exception:\n done = true;\n break;\n case FetchResultType.Result:\n bufferedResults.push(fetchResult.feedResponse);\n break;\n }\n }\n return bufferedResults;\n }\n\n public fetchFunction: FetchFunctionCallback = async (\n diagnosticNode: DiagnosticNodeInternal,\n options: FeedOptions,\n correlatedActivityId: string,\n ): Promise<Response<Resource>> => {\n const path = getPathFromLink(this.collectionLink, ResourceType.item);\n diagnosticNode.addData({ partitionKeyRangeId: this.targetPartitionKeyRange.id });\n const id = getIdFromLink(this.collectionLink);\n const startEpk = this.populateEpkRangeHeaders ? this.startEpk : undefined;\n const endEpk = this.populateEpkRangeHeaders ? this.endEpk : undefined;\n\n return this.clientContext.queryFeed({\n path,\n resourceType: ResourceType.item,\n resourceId: id,\n resultFn: (result: any) => result.Documents,\n query: this.query,\n options,\n diagnosticNode,\n partitionKeyRangeId: this.targetPartitionKeyRange[\"id\"],\n correlatedActivityId: correlatedActivityId,\n startEpk: startEpk,\n endEpk: endEpk,\n });\n };\n\n public hasMoreResults(): boolean {\n return this.internalExecutionContext.hasMoreResults() || this.fetchResults.length !== 0;\n }\n\n public gotSplit(): boolean {\n if (this.fetchResults.length !== 0) {\n const fetchResult = this.fetchResults[0];\n if (fetchResult.fetchResultType === FetchResultType.Exception) {\n if (DocumentProducer._needPartitionKeyRangeCacheRefresh(fetchResult.error)) {\n return true;\n }\n }\n }\n return false;\n }\n\n private _updateStates(err: any, allFetched: boolean): void {\n if (err) {\n this.err = err;\n return;\n }\n if (allFetched) {\n this.allFetched = true;\n }\n if (this.internalExecutionContext.continuationToken === this.continuationToken) {\n // nothing changed\n return;\n }\n this.previousContinuationToken = this.continuationToken;\n this.continuationToken = this.internalExecutionContext.continuationToken;\n }\n\n private static _needPartitionKeyRangeCacheRefresh(error: any): boolean {\n // TODO: error\n return (\n error.code === StatusCodes.Gone &&\n \"substatus\" in error &&\n error[\"substatus\"] === SubStatusCodes.PartitionKeyRangeGone\n );\n }\n\n /**\n * Fetches and bufferes the next page of results in internal buffer\n */\n public async bufferMore(diagnosticNode: DiagnosticNodeInternal): Promise<CosmosHeaders> {\n if (this.err) {\n throw this.err;\n }\n\n try {\n const { result: resourcesResult, headers: headerResponse } =\n await this.internalExecutionContext.fetchMore(diagnosticNode);\n let resources = resourcesResult;\n ++this.generation;\n this._updateStates(undefined, resources === undefined);\n if (headerResponse && headerResponse[\"x-ms-cosmos-query-execution-info\"]) {\n this.queryExecutionInfo = JSON.parse(headerResponse[\"x-ms-cosmos-query-execution-info\"]);\n }\n\n if (this.filter && resources) {\n resources = this.filter.applyFilter(resources);\n }\n\n if (resources !== undefined) {\n // add fetched header to the 1st element in the buffer\n let addHeaderToFetchResult = true;\n resources.forEach((element: any) => {\n this.fetchResults.push(\n new FetchResult(\n element,\n undefined,\n addHeaderToFetchResult ? headerResponse : getInitialHeader(),\n ),\n );\n addHeaderToFetchResult = false;\n });\n }\n\n // need to modify the header response so that the query metrics are per partition\n if (headerResponse != null && Constants.HttpHeaders.QueryMetrics in headerResponse) {\n // \"0\" is the default partition before one is actually assigned.\n const queryMetrics = headerResponse[Constants.HttpHeaders.QueryMetrics][\"0\"];\n\n // Wraping query metrics in a object where the keys are the partition key range.\n headerResponse[Constants.HttpHeaders.QueryMetrics] = {};\n headerResponse[Constants.HttpHeaders.QueryMetrics][this.targetPartitionKeyRange.id] =\n queryMetrics;\n }\n return headerResponse;\n } catch (err: any) {\n if (DocumentProducer._needPartitionKeyRangeCacheRefresh(err)) {\n // Split just happend\n // Buffer the error so the execution context can still get the feedResponses in the itemBuffer\n const bufferedError = new FetchResult(undefined, err);\n this.fetchResults.push(bufferedError);\n return err.headers;\n } else {\n this._updateStates(err, err.resources === undefined);\n throw err;\n }\n }\n }\n\n public getTargetPartitionKeyRange(): PartitionKeyRange {\n return this.targetPartitionKeyRange;\n }\n /**\n * Peak the next item in the buffer\n */\n public peakNextItem(): any {\n if (this.err) {\n throw this.err;\n }\n if (this.allFetched || this.fetchResults.length === 0) {\n return undefined;\n }\n const fetchResult = this.fetchResults[0];\n\n switch (fetchResult.fetchResultType) {\n case FetchResultType.Done:\n return undefined;\n\n case FetchResultType.Exception: // do not throw this error\n return undefined;\n\n case FetchResultType.Result:\n return fetchResult.feedResponse;\n }\n }\n\n /**\n * Returns the first item in the buffered results if any, or [] otherwise.\n */\n public async fetchNextItem(): Promise<Response<any>> {\n if (this.err) {\n this._updateStates(this.err, undefined);\n throw this.err;\n }\n if (this.allFetched) {\n return { result: undefined, headers: getInitialHeader() };\n }\n try {\n const { result, headers } = this.current();\n this._updateStates(undefined, result === undefined);\n if (result === undefined || result.length === 0) {\n return { result: undefined, headers };\n }\n return { result, headers };\n } catch (err: any) {\n this._updateStates(err, err.item === undefined);\n throw err;\n }\n }\n /**\n * Fetches all the buffered results\n */\n public async fetchBufferedItems(): Promise<Response<any[]>> {\n if (this.err) {\n this._updateStates(this.err, undefined);\n throw this.err;\n }\n if (this.allFetched) {\n return { result: undefined, headers: getInitialHeader() };\n }\n const resources: any[] = [];\n try {\n while (this.fetchResults.length > 0) {\n const { result } = this.current();\n this._updateStates(undefined, result === undefined);\n if (result === undefined) {\n return {\n result: resources.length > 0 ? resources : undefined,\n headers: getInitialHeader(),\n };\n } else {\n resources.push(result);\n }\n }\n return { result: resources, headers: getInitialHeader() };\n } catch (err: any) {\n this._updateStates(err, err.item === undefined);\n throw err;\n }\n }\n\n /**\n * Retrieve the current element on the DocumentProducer.\n */\n private current(): Response<any> {\n // If something is buffered just give that\n if (this.fetchResults.length > 0) {\n const fetchResult = this.fetchResults.shift();\n // Need to unwrap fetch results\n switch (fetchResult.fetchResultType) {\n case FetchResultType.Done:\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n case FetchResultType.Exception:\n fetchResult.error.headers = getInitialHeader();\n throw fetchResult.error;\n case FetchResultType.Result:\n return {\n result: fetchResult.feedResponse,\n headers: getInitialHeader(),\n };\n }\n }\n\n // If there isn't anymore items left to fetch then let the user know.\n if (this.allFetched) {\n return {\n result: undefined,\n headers: getInitialHeader(),\n };\n }\n\n // If the internal buffer is empty, return empty result\n return { result: [], headers: getInitialHeader() };\n }\n\n public getQueryExecutionInfo():\n | { reverseRidEnabled: boolean; reverseIndexScan: boolean }\n | undefined {\n return this.queryExecutionInfo;\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,oBAOO;AAIP,0CAA6C;AAE7C,yBAA6C;AAC7C,yBAAiC;AAK1B,MAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyB5B,YACU,eACR,gBACA,OACA,yBACA,SACA,sBACA,UACA,QACA,0BAAmC,OACnC,QACA;AAVQ;AAYR,SAAK,iBAAiB;AACtB,SAAK,QAAQ;AACb,SAAK,0BAA0B;AAC/B,SAAK,eAAe,CAAC;AAErB,SAAK,aAAa;AAClB,SAAK,MAAM;AAEX,SAAK,4BAA4B;AACjC,SAAK,oBAAoB;AAEzB,SAAK,2BAA2B,IAAI;AAAA,MAClC;AAAA,MACA,KAAK;AAAA,MACL;AAAA,IACF;AACA,SAAK,WAAW;AAChB,SAAK,SAAS;AACd,SAAK,0BAA0B;AAC/B,SAAK,SAAS;AAAA,EAChB;AAAA,
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/queryExecutionContext/headerUtils.ts"],
|
|
4
4
|
"sourcesContent": ["\uFEFF// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Constants } from \"../common/index.js\";\nimport { QueryMetrics } from \"../queryMetrics/queryMetrics.js\";\n\nexport interface CosmosHeaders {\n [key: string]: any;\n}\n\n/** @hidden */\n// TODO: docs\nexport function getRequestChargeIfAny(headers: CosmosHeaders | number): number {\n if (typeof headers === \"number\") {\n return headers;\n } else if (typeof headers === \"string\") {\n return parseFloat(headers);\n }\n\n if (headers) {\n const rc = headers[Constants.HttpHeaders.RequestCharge];\n if (rc) {\n return parseFloat(rc as string);\n } else {\n return 0;\n }\n } else {\n return 0;\n }\n}\n\n/**\n * @hidden\n */\nexport function getInitialHeader(): CosmosHeaders {\n const headers: CosmosHeaders = {};\n headers[Constants.HttpHeaders.RequestCharge] = 0;\n headers[Constants.HttpHeaders.QueryMetrics] = {};\n return headers;\n}\n\n/**\n * @hidden\n */\n// TODO: The name of this method isn't very accurate to what it does\nexport function mergeHeaders(headers: CosmosHeaders, toBeMergedHeaders: CosmosHeaders): void {\n if (headers[Constants.HttpHeaders.RequestCharge] === undefined) {\n headers[Constants.HttpHeaders.RequestCharge] = 0;\n }\n\n if (headers[Constants.HttpHeaders.QueryMetrics] === undefined) {\n headers[Constants.HttpHeaders.QueryMetrics] = QueryMetrics.zero;\n }\n\n if (!toBeMergedHeaders) {\n return;\n }\n\n headers[Constants.HttpHeaders.RequestCharge] += getRequestChargeIfAny(toBeMergedHeaders);\n if (toBeMergedHeaders[Constants.HttpHeaders.IsRUPerMinuteUsed]) {\n headers[Constants.HttpHeaders.IsRUPerMinuteUsed] =\n toBeMergedHeaders[Constants.HttpHeaders.IsRUPerMinuteUsed];\n }\n\n if (Constants.HttpHeaders.QueryMetrics in toBeMergedHeaders) {\n const headerQueryMetrics = headers[Constants.HttpHeaders.QueryMetrics];\n const toBeMergedHeaderQueryMetrics = toBeMergedHeaders[Constants.HttpHeaders.QueryMetrics];\n\n for (const partitionId in toBeMergedHeaderQueryMetrics) {\n if (headerQueryMetrics[partitionId]) {\n const combinedQueryMetrics = headerQueryMetrics[partitionId].add([\n toBeMergedHeaderQueryMetrics[partitionId],\n ]);\n headerQueryMetrics[partitionId] = combinedQueryMetrics;\n } else {\n headerQueryMetrics[partitionId] = toBeMergedHeaderQueryMetrics[partitionId];\n }\n }\n }\n\n if (Constants.HttpHeaders.IndexUtilization in toBeMergedHeaders) {\n headers[Constants.HttpHeaders.IndexUtilization] =\n toBeMergedHeaders[Constants.HttpHeaders.IndexUtilization];\n }\n\n if (Constants.HttpHeaders.CorrelatedActivityId in toBeMergedHeaders) {\n headers[Constants.HttpHeaders.CorrelatedActivityId] =\n toBeMergedHeaders[Constants.HttpHeaders.CorrelatedActivityId];\n }\n}\n\n/** @hidden */\nexport function decodeAndParseJSONString(inputString: string): string {\n try {\n if (!inputString || inputString === \"\") {\n return \"{}\";\n }\n const decodedString = decodeURIComponent(inputString);\n const parsedString = JSON.parse(decodedString);\n const indexMetrics = JSON.stringify(parsedString);\n return indexMetrics;\n } catch (e) {\n console.error(\"Error parsing JSON file:\", e.message);\n }\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA0B;AAC1B,0BAA6B;AAQtB,SAAS,sBAAsB,SAAyC;AAC7E,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO;AAAA,EACT,WAAW,OAAO,YAAY,UAAU;AACtC,WAAO,WAAW,OAAO;AAAA,EAC3B;AAEA,MAAI,SAAS;AACX,UAAM,KAAK,QAAQ,wBAAU,YAAY,aAAa;AACtD,QAAI,IAAI;AACN,aAAO,WAAW,EAAY;AAAA,IAChC,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAKO,SAAS,mBAAkC;AAChD,QAAM,UAAyB,CAAC;AAChC,UAAQ,wBAAU,YAAY,aAAa,IAAI;AAC/C,UAAQ,wBAAU,YAAY,YAAY,IAAI,CAAC;AAC/C,SAAO;AACT;AAMO,SAAS,aAAa,SAAwB,mBAAwC;AAC3F,MAAI,QAAQ,wBAAU,YAAY,aAAa,MAAM,QAAW;AAC9D,YAAQ,wBAAU,YAAY,aAAa,IAAI;AAAA,EACjD;AAEA,MAAI,QAAQ,wBAAU,YAAY,YAAY,MAAM,QAAW;AAC7D,YAAQ,wBAAU,YAAY,YAAY,IAAI,iCAAa;AAAA,EAC7D;AAEA,MAAI,CAAC,mBAAmB;AACtB;AAAA,EACF;AAEA,UAAQ,wBAAU,YAAY,aAAa,KAAK,sBAAsB,iBAAiB;AACvF,MAAI,kBAAkB,wBAAU,YAAY,iBAAiB,GAAG;AAC9D,YAAQ,wBAAU,YAAY,iBAAiB,IAC7C,kBAAkB,wBAAU,YAAY,iBAAiB;AAAA,EAC7D;AAEA,MAAI,wBAAU,YAAY,gBAAgB,mBAAmB;AAC3D,UAAM,qBAAqB,QAAQ,wBAAU,YAAY,YAAY;AACrE,UAAM,+BAA+B,kBAAkB,wBAAU,YAAY,YAAY;AAEzF,eAAW,eAAe,8BAA8B;AACtD,UAAI,mBAAmB,WAAW,GAAG;AACnC,cAAM,uBAAuB,mBAAmB,WAAW,EAAE,IAAI;AAAA,UAC/D,6BAA6B,WAAW;AAAA,QAC1C,CAAC;AACD,2BAAmB,WAAW,IAAI;AAAA,MACpC,OAAO;AACL,2BAAmB,WAAW,IAAI,6BAA6B,WAAW;AAAA,MAC5E;AAAA,IACF;AAAA,EACF;AAEA,MAAI,wBAAU,YAAY,oBAAoB,mBAAmB;AAC/D,YAAQ,wBAAU,YAAY,gBAAgB,IAC5C,kBAAkB,wBAAU,YAAY,gBAAgB;AAAA,EAC5D;AAEA,MAAI,wBAAU,YAAY,wBAAwB,mBAAmB;AACnE,YAAQ,wBAAU,YAAY,oBAAoB,IAChD,kBAAkB,wBAAU,YAAY,oBAAoB;AAAA,EAChE;AACF;AAGO,SAAS,yBAAyB,aAA6B;AACpE,MAAI;AACF,QAAI,CAAC,eAAe,gBAAgB,IAAI;AACtC,aAAO;AAAA,IACT;AACA,UAAM,gBAAgB,mBAAmB,WAAW;AACpD,UAAM,eAAe,KAAK,MAAM,aAAa;AAC7C,UAAM,eAAe,KAAK,UAAU,YAAY;AAChD,WAAO;AAAA,EACT,SAAS,GAAG;AACV,YAAQ,MAAM,4BAA4B,EAAE,OAAO;AAAA,EACrD;AACF;",
|
|
6
6
|
"names": []
|
|
@@ -83,6 +83,13 @@ class HybridQueryExecutionContext {
|
|
|
83
83
|
this.state = "initialized" /* initialized */;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
+
clientContext;
|
|
87
|
+
collectionLink;
|
|
88
|
+
query;
|
|
89
|
+
options;
|
|
90
|
+
partitionedQueryExecutionInfo;
|
|
91
|
+
correlatedActivityId;
|
|
92
|
+
allPartitionsRanges;
|
|
86
93
|
globalStatisticsExecutionContext;
|
|
87
94
|
componentsExecutionContext = [];
|
|
88
95
|
pageSize;
|
|
@@ -517,3 +524,4 @@ class HybridQueryExecutionContext {
|
|
|
517
524
|
HybridQueryExecutionContext,
|
|
518
525
|
HybridQueryExecutionContextBaseStates
|
|
519
526
|
});
|
|
527
|
+
//# sourceMappingURL=hybridQueryExecutionContext.js.map
|