@azure/cosmos 4.8.0 → 4.9.0
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.d.ts.map +1 -1
- package/dist/browser/common/constants.js +16 -1
- package/dist/browser/common/constants.js.map +1 -1
- package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
- package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
- package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.js +84 -0
- package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
- package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
- package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
- package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.js +39 -0
- package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
- package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
- package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
- package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.js +4 -0
- package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +174 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +28 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +129 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +66 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenParser.js +23 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
- package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
- package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
- package/dist/browser/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/LegacyFetchImplementation.js +55 -0
- package/dist/browser/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
- package/dist/browser/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
- package/dist/browser/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/PartitionRangeManager.js +156 -0
- package/dist/browser/queryExecutionContext/PartitionRangeManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
- package/dist/browser/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/PartitionRangeUtils.js +105 -0
- package/dist/browser/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
- package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
- package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.js +93 -0
- package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
- package/dist/browser/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
- package/dist/browser/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/QueryValidationHelper.js +65 -0
- package/dist/browser/queryExecutionContext/QueryValidationHelper.js.map +1 -0
- package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
- package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
- package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/documentProducer.d.ts +9 -3
- package/dist/browser/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/documentProducer.js +17 -4
- package/dist/browser/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/index.d.ts +7 -0
- package/dist/browser/queryExecutionContext/index.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/index.js +4 -0
- package/dist/browser/queryExecutionContext/index.js.map +1 -1
- package/dist/browser/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
- package/dist/browser/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
- package/dist/browser/queryExecutionContext/orderByComparator.d.ts +11 -2
- package/dist/browser/queryExecutionContext/orderByComparator.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/orderByComparator.js +20 -3
- package/dist/browser/queryExecutionContext/orderByComparator.js.map +1 -1
- package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
- package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
- package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
- package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
- package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
- package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryResult.d.ts +35 -0
- package/dist/browser/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/parallelQueryResult.js +23 -0
- package/dist/browser/queryExecutionContext/parallelQueryResult.js.map +1 -0
- package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
- package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
- package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +4 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +310 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +102 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +180 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +93 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +4 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +53 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +34 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +4 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryRangeMapping.d.ts +22 -0
- package/dist/browser/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryRangeMapping.js +4 -0
- package/dist/browser/queryExecutionContext/queryRangeMapping.js.map +1 -0
- package/dist/browser/queryIterator.js.map +1 -1
- package/dist/browser/utils/offers.d.ts.map +1 -1
- package/dist/browser/utils/offers.js +0 -1
- package/dist/browser/utils/offers.js.map +1 -1
- package/dist/commonjs/common/constants.d.ts.map +1 -1
- package/dist/commonjs/common/constants.js +13 -2
- package/dist/commonjs/common/constants.js.map +1 -1
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js +93 -0
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js +44 -0
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js +5 -0
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +178 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +31 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +133 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +70 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js +26 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
- package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js +59 -0
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js +160 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js +109 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js +97 -0
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js +69 -0
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/documentProducer.d.ts +9 -3
- package/dist/commonjs/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/documentProducer.js +17 -4
- package/dist/commonjs/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/index.d.ts +7 -0
- package/dist/commonjs/queryExecutionContext/index.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/index.js +10 -0
- package/dist/commonjs/queryExecutionContext/index.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByComparator.d.ts +11 -2
- package/dist/commonjs/queryExecutionContext/orderByComparator.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByComparator.js +21 -3
- package/dist/commonjs/queryExecutionContext/orderByComparator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.d.ts +35 -0
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.js +26 -0
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +5 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +314 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +106 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +184 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +97 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +5 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +57 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +38 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +5 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.d.ts +22 -0
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.js +5 -0
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.js.map +1 -0
- package/dist/commonjs/queryIterator.js.map +1 -1
- package/dist/commonjs/utils/offers.d.ts.map +1 -1
- package/dist/commonjs/utils/offers.js +0 -1
- package/dist/commonjs/utils/offers.js.map +1 -1
- package/dist/esm/common/constants.d.ts.map +1 -1
- package/dist/esm/common/constants.js +16 -1
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
- package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
- package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.js +84 -0
- package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
- package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
- package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
- package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.js +39 -0
- package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
- package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
- package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
- package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.js +4 -0
- package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +174 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +28 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +129 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +66 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenParser.js +23 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
- package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
- package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
- package/dist/esm/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/LegacyFetchImplementation.js +55 -0
- package/dist/esm/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
- package/dist/esm/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
- package/dist/esm/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/PartitionRangeManager.js +156 -0
- package/dist/esm/queryExecutionContext/PartitionRangeManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
- package/dist/esm/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/PartitionRangeUtils.js +105 -0
- package/dist/esm/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
- package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
- package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.js +93 -0
- package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
- package/dist/esm/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
- package/dist/esm/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/QueryValidationHelper.js +65 -0
- package/dist/esm/queryExecutionContext/QueryValidationHelper.js.map +1 -0
- package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
- package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
- package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/documentProducer.d.ts +9 -3
- package/dist/esm/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/documentProducer.js +17 -4
- package/dist/esm/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/index.d.ts +7 -0
- package/dist/esm/queryExecutionContext/index.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/index.js +4 -0
- package/dist/esm/queryExecutionContext/index.js.map +1 -1
- package/dist/esm/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
- package/dist/esm/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
- package/dist/esm/queryExecutionContext/orderByComparator.d.ts +11 -2
- package/dist/esm/queryExecutionContext/orderByComparator.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/orderByComparator.js +20 -3
- package/dist/esm/queryExecutionContext/orderByComparator.js.map +1 -1
- package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
- package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
- package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
- package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
- package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
- package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryResult.d.ts +35 -0
- package/dist/esm/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/parallelQueryResult.js +23 -0
- package/dist/esm/queryExecutionContext/parallelQueryResult.js.map +1 -0
- package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
- package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
- package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +4 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +310 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +102 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +180 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +93 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +4 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +53 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +34 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +4 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryRangeMapping.d.ts +22 -0
- package/dist/esm/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryRangeMapping.js +4 -0
- package/dist/esm/queryExecutionContext/queryRangeMapping.js.map +1 -0
- package/dist/esm/queryIterator.js.map +1 -1
- package/dist/esm/utils/offers.d.ts.map +1 -1
- package/dist/esm/utils/offers.js +0 -1
- package/dist/esm/utils/offers.js.map +1 -1
- package/dist/react-native/common/constants.d.ts.map +1 -1
- package/dist/react-native/common/constants.js +16 -1
- package/dist/react-native/common/constants.js.map +1 -1
- package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
- package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
- package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.js +84 -0
- package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
- package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
- package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
- package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.js +39 -0
- package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
- package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
- package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
- package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.js +4 -0
- package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +174 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +28 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +129 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +66 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenParser.js +23 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
- package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
- package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
- package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.js +55 -0
- package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeManager.js +156 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeUtils.js +105 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
- package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
- package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.js +93 -0
- package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
- package/dist/react-native/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
- package/dist/react-native/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/QueryValidationHelper.js +65 -0
- package/dist/react-native/queryExecutionContext/QueryValidationHelper.js.map +1 -0
- package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
- package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
- package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/documentProducer.d.ts +9 -3
- package/dist/react-native/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/documentProducer.js +17 -4
- package/dist/react-native/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/index.d.ts +7 -0
- package/dist/react-native/queryExecutionContext/index.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/index.js +4 -0
- package/dist/react-native/queryExecutionContext/index.js.map +1 -1
- package/dist/react-native/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
- package/dist/react-native/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByComparator.d.ts +11 -2
- package/dist/react-native/queryExecutionContext/orderByComparator.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByComparator.js +20 -3
- package/dist/react-native/queryExecutionContext/orderByComparator.js.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
- package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
- package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
- package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
- package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryResult.d.ts +35 -0
- package/dist/react-native/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/parallelQueryResult.js +23 -0
- package/dist/react-native/queryExecutionContext/parallelQueryResult.js.map +1 -0
- package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
- package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
- package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +4 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +310 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +102 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +180 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +93 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +4 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +53 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +34 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +4 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryRangeMapping.d.ts +22 -0
- package/dist/react-native/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryRangeMapping.js +4 -0
- package/dist/react-native/queryExecutionContext/queryRangeMapping.js.map +1 -0
- package/dist/react-native/queryIterator.js.map +1 -1
- package/dist/react-native/utils/offers.d.ts.map +1 -1
- package/dist/react-native/utils/offers.js +0 -1
- package/dist/react-native/utils/offers.js.map +1 -1
- package/package.json +1 -1
package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js
ADDED
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
/**
|
|
4
|
+
* Strategy for filtering partition ranges in ORDER BY query execution context
|
|
5
|
+
* Supports resuming from continuation tokens with proper range-token pair management
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export class OrderByQueryRangeStrategy {
|
|
9
|
+
getStrategyType() {
|
|
10
|
+
return "OrderByQuery";
|
|
11
|
+
}
|
|
12
|
+
filterPartitionRanges(targetRanges, continuationRanges, queryInfo) {
|
|
13
|
+
if (!targetRanges ||
|
|
14
|
+
targetRanges.length === 0 ||
|
|
15
|
+
!continuationRanges ||
|
|
16
|
+
continuationRanges.length === 0) {
|
|
17
|
+
return {
|
|
18
|
+
rangeTokenPairs: [],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (!queryInfo?.orderByItems ||
|
|
22
|
+
!Array.isArray(queryInfo.orderByItems) ||
|
|
23
|
+
queryInfo.orderByItems.length === 0) {
|
|
24
|
+
throw new Error("Unable to resume ORDER BY query from continuation token. orderByItems is required for ORDER BY queries.");
|
|
25
|
+
}
|
|
26
|
+
const result = {
|
|
27
|
+
rangeTokenPairs: [],
|
|
28
|
+
};
|
|
29
|
+
let filteredRanges = [];
|
|
30
|
+
let resumeRangeFound = false;
|
|
31
|
+
if (continuationRanges && continuationRanges.length > 0) {
|
|
32
|
+
resumeRangeFound = true;
|
|
33
|
+
// Find the range to resume from based on the composite token
|
|
34
|
+
const targetRangeMapping = continuationRanges[continuationRanges.length - 1].range;
|
|
35
|
+
// It is assumed that range mapping array is going to contain only range
|
|
36
|
+
const targetRange = targetRangeMapping;
|
|
37
|
+
const targetContinuationToken = continuationRanges[continuationRanges.length - 1].continuationToken;
|
|
38
|
+
const leftRanges = targetRanges.filter((mapping) => this.isRangeBeforeAnother(mapping.maxExclusive, targetRangeMapping.minInclusive));
|
|
39
|
+
const orderByItems = queryInfo.orderByItems;
|
|
40
|
+
// Create filtering condition for left ranges based on ORDER BY items and sort orders
|
|
41
|
+
const leftFilter = this.createRangeFilterCondition(orderByItems, queryInfo, "left");
|
|
42
|
+
const rightRanges = targetRanges.filter((mapping) => this.isRangeAfterAnother(mapping.minInclusive, targetRangeMapping.maxExclusive));
|
|
43
|
+
// Create filtering condition for right ranges based on ORDER BY items and sort orders
|
|
44
|
+
const rightFilter = this.createRangeFilterCondition(orderByItems, queryInfo, "right");
|
|
45
|
+
// Apply filtering logic for left ranges
|
|
46
|
+
if (leftRanges.length > 0) {
|
|
47
|
+
leftRanges.forEach((range) => {
|
|
48
|
+
result.rangeTokenPairs.push({
|
|
49
|
+
range: range,
|
|
50
|
+
continuationToken: undefined,
|
|
51
|
+
filteringCondition: leftFilter,
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
result.rangeTokenPairs.push({
|
|
56
|
+
range: targetRange,
|
|
57
|
+
continuationToken: targetContinuationToken,
|
|
58
|
+
filteringCondition: rightFilter,
|
|
59
|
+
});
|
|
60
|
+
// Apply filtering logic for right ranges
|
|
61
|
+
if (rightRanges.length > 0) {
|
|
62
|
+
rightRanges.forEach((range) => {
|
|
63
|
+
result.rangeTokenPairs.push({
|
|
64
|
+
range: range,
|
|
65
|
+
continuationToken: undefined,
|
|
66
|
+
filteringCondition: rightFilter,
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// If we couldn't find a specific resume point, include all ranges
|
|
72
|
+
// This can happen with certain types of ORDER BY continuation tokens
|
|
73
|
+
if (!resumeRangeFound) {
|
|
74
|
+
filteredRanges = [...targetRanges];
|
|
75
|
+
filteredRanges.forEach((range) => {
|
|
76
|
+
result.rangeTokenPairs.push({
|
|
77
|
+
range: range,
|
|
78
|
+
continuationToken: undefined,
|
|
79
|
+
filteringCondition: undefined,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Creates a filter condition for ranges based on ORDER BY items and sort orders
|
|
87
|
+
* This filter ensures that ranges only return documents based on their position relative to the continuation point
|
|
88
|
+
* @param orderByItems - Array of order by items from the continuation token
|
|
89
|
+
* @param queryInfo - Query information containing sort orders and other metadata
|
|
90
|
+
* @param rangePosition - Whether this is for "left" or "right" ranges relative to continuation point
|
|
91
|
+
* @returns SQL filter condition string for the specified range position
|
|
92
|
+
*/
|
|
93
|
+
createRangeFilterCondition(orderByItems, queryInfo, rangePosition) {
|
|
94
|
+
// Extract sort orders from query info
|
|
95
|
+
let sortOrders;
|
|
96
|
+
try {
|
|
97
|
+
sortOrders = this.extractSortOrders(queryInfo);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
// If we can't extract sort orders, we cannot create reliable filter conditions
|
|
101
|
+
throw new Error(`Unable to resume ORDER BY query from continuation token. The ORDER BY sort direction configuration ` +
|
|
102
|
+
`in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. ` +
|
|
103
|
+
`Please retry the query without a continuation token. Original error: ${error}`);
|
|
104
|
+
}
|
|
105
|
+
// Extract orderByExpressions from nested structure
|
|
106
|
+
let orderByExpressions;
|
|
107
|
+
if (queryInfo &&
|
|
108
|
+
queryInfo.queryInfo &&
|
|
109
|
+
typeof queryInfo.queryInfo === "object" &&
|
|
110
|
+
queryInfo.queryInfo.queryInfo &&
|
|
111
|
+
queryInfo.queryInfo.queryInfo.orderByExpressions &&
|
|
112
|
+
Array.isArray(queryInfo.queryInfo.queryInfo.orderByExpressions)) {
|
|
113
|
+
orderByExpressions = queryInfo.queryInfo.queryInfo.orderByExpressions;
|
|
114
|
+
}
|
|
115
|
+
if (!orderByExpressions || !Array.isArray(orderByExpressions)) {
|
|
116
|
+
throw new Error("Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration " +
|
|
117
|
+
"in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. " +
|
|
118
|
+
"Please retry the query without a continuation token.");
|
|
119
|
+
}
|
|
120
|
+
const filterConditions = [];
|
|
121
|
+
// Process each order by item to create filter conditions
|
|
122
|
+
for (let i = 0; i < orderByItems.length && i < sortOrders.length; i++) {
|
|
123
|
+
const orderByItem = orderByItems[i];
|
|
124
|
+
const sortOrder = sortOrders[i];
|
|
125
|
+
if (!orderByItem || orderByItem.item === undefined) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
// Determine the field path from ORDER BY expressions in query plan
|
|
130
|
+
const fieldPath = this.extractFieldPath(queryInfo, i);
|
|
131
|
+
// Create the comparison condition based on sort order and range position
|
|
132
|
+
const condition = this.createComparisonCondition(fieldPath, orderByItem.item, sortOrder, rangePosition);
|
|
133
|
+
if (condition) {
|
|
134
|
+
filterConditions.push(condition);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
// If we can't extract field path for ORDER BY expressions, we cannot safely resume from continuation token
|
|
139
|
+
// This would lead to incorrect query results, so we must fail the entire request
|
|
140
|
+
throw new Error(`Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration ` +
|
|
141
|
+
`in the query plan is invalid or incompatible with the continuation token format. ` +
|
|
142
|
+
`This may indicate a client version mismatch or corrupted continuation token. ` +
|
|
143
|
+
`Please retry the query without a continuation token. Original error: ${error}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Combine multiple conditions with AND for multi-field ORDER BY
|
|
147
|
+
const combinedFilter = filterConditions.length > 0 ? `(${filterConditions.join(" AND ")})` : "";
|
|
148
|
+
return combinedFilter;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Extracts sort orders from query info
|
|
152
|
+
* @throws Error if sort order information is missing or invalid
|
|
153
|
+
*/
|
|
154
|
+
extractSortOrders(queryInfo) {
|
|
155
|
+
if (!queryInfo) {
|
|
156
|
+
throw new Error("Query information is required to determine ORDER BY sort directions");
|
|
157
|
+
}
|
|
158
|
+
// Extract orderBy from the nested structure: queryInfo.queryInfo.queryInfo.orderBy
|
|
159
|
+
let orderBy;
|
|
160
|
+
if (queryInfo.queryInfo &&
|
|
161
|
+
typeof queryInfo.queryInfo === "object" &&
|
|
162
|
+
queryInfo.queryInfo.queryInfo &&
|
|
163
|
+
typeof queryInfo.queryInfo.queryInfo === "object" &&
|
|
164
|
+
queryInfo.queryInfo.queryInfo.orderBy &&
|
|
165
|
+
Array.isArray(queryInfo.queryInfo.queryInfo.orderBy)) {
|
|
166
|
+
orderBy = queryInfo.queryInfo.queryInfo.orderBy;
|
|
167
|
+
}
|
|
168
|
+
if (!orderBy) {
|
|
169
|
+
throw new Error("ORDER BY sort direction information is missing from query plan");
|
|
170
|
+
}
|
|
171
|
+
return orderBy.map((order, index) => {
|
|
172
|
+
if (typeof order === "string") {
|
|
173
|
+
return order;
|
|
174
|
+
}
|
|
175
|
+
// Handle object format if needed
|
|
176
|
+
if (order && typeof order === "object") {
|
|
177
|
+
const sortOrder = order.direction || order.order || order.sortOrder;
|
|
178
|
+
if (sortOrder) {
|
|
179
|
+
return sortOrder;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
throw new Error(`ORDER BY sort direction at position ${index + 1} has an invalid format in the query plan`);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Extracts field path from ORDER BY expressions in query plan
|
|
187
|
+
* @throws Error if orderByExpressions are not found or index is out of bounds or expression format is invalid
|
|
188
|
+
*/
|
|
189
|
+
extractFieldPath(queryInfo, index) {
|
|
190
|
+
// Try multiple paths to find orderByExpressions due to nested structure
|
|
191
|
+
let orderByExpressions;
|
|
192
|
+
if (queryInfo) {
|
|
193
|
+
// Direct path
|
|
194
|
+
if (queryInfo.orderByExpressions && Array.isArray(queryInfo.orderByExpressions)) {
|
|
195
|
+
orderByExpressions = queryInfo.orderByExpressions;
|
|
196
|
+
}
|
|
197
|
+
// Nested path: queryInfo.queryInfo.queryInfo.orderByExpressions
|
|
198
|
+
else if (queryInfo.queryInfo &&
|
|
199
|
+
typeof queryInfo.queryInfo === "object" &&
|
|
200
|
+
queryInfo.queryInfo.queryInfo &&
|
|
201
|
+
queryInfo.queryInfo.queryInfo.orderByExpressions &&
|
|
202
|
+
Array.isArray(queryInfo.queryInfo.queryInfo.orderByExpressions)) {
|
|
203
|
+
orderByExpressions = queryInfo.queryInfo.queryInfo.orderByExpressions;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (!orderByExpressions) {
|
|
207
|
+
throw new Error("ORDER BY field information is missing from query plan");
|
|
208
|
+
}
|
|
209
|
+
if (index >= orderByExpressions.length) {
|
|
210
|
+
throw new Error(`ORDER BY field configuration mismatch: expected at least ${index + 1} fields but found ${orderByExpressions.length}`);
|
|
211
|
+
}
|
|
212
|
+
const expression = orderByExpressions[index];
|
|
213
|
+
// Handle different formats of ORDER BY expressions
|
|
214
|
+
if (typeof expression === "string") {
|
|
215
|
+
// Simple string expression like "c.id" or "_FullTextScore(...)"
|
|
216
|
+
return expression;
|
|
217
|
+
}
|
|
218
|
+
if (expression && typeof expression === "object") {
|
|
219
|
+
// Object format like { expression: "c.id", type: "PropertyRef" }
|
|
220
|
+
if (expression.expression) {
|
|
221
|
+
return expression.expression;
|
|
222
|
+
}
|
|
223
|
+
if (expression.path) {
|
|
224
|
+
return expression.path.replace(/^\//, ""); // Remove leading slash
|
|
225
|
+
}
|
|
226
|
+
if (expression.field) {
|
|
227
|
+
return expression.field;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
throw new Error(`ORDER BY field at position ${index + 1} has an unrecognized format in the query plan`);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Creates a comparison condition based on the field, value, sort order, and range position
|
|
234
|
+
*/
|
|
235
|
+
createComparisonCondition(fieldPath, value, sortOrder, rangePosition) {
|
|
236
|
+
const isDescending = sortOrder.toLowerCase() === "descending" || sortOrder.toLowerCase() === "desc";
|
|
237
|
+
// For left ranges (ranges that come before the target):
|
|
238
|
+
// - In ascending order: field > value (left ranges should seek for larger values)
|
|
239
|
+
// - In descending order: field < value (left ranges should seek for smaller values)
|
|
240
|
+
// For right ranges (ranges that come after the target):
|
|
241
|
+
// - In ascending order: field >= value (right ranges have larger values)
|
|
242
|
+
// - In descending order: field <= value (right ranges have smaller values in desc order)
|
|
243
|
+
let operator;
|
|
244
|
+
if (rangePosition === "left") {
|
|
245
|
+
operator = isDescending ? "<" : ">";
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
// right
|
|
249
|
+
operator = isDescending ? "<=" : ">=";
|
|
250
|
+
}
|
|
251
|
+
// Format the value based on its type
|
|
252
|
+
const formattedValue = this.formatValueForSQL(value);
|
|
253
|
+
// Create the condition with proper field reference
|
|
254
|
+
const condition = `${fieldPath} ${operator} ${formattedValue}`;
|
|
255
|
+
return condition;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Formats a value for use in SQL condition
|
|
259
|
+
*/
|
|
260
|
+
formatValueForSQL(value) {
|
|
261
|
+
if (value === null || value === undefined) {
|
|
262
|
+
return "null";
|
|
263
|
+
}
|
|
264
|
+
const valueType = typeof value;
|
|
265
|
+
switch (valueType) {
|
|
266
|
+
case "string":
|
|
267
|
+
// Escape single quotes and wrap in quotes
|
|
268
|
+
return `'${value.toString().replace(/'/g, "''")}'`;
|
|
269
|
+
case "number":
|
|
270
|
+
case "bigint":
|
|
271
|
+
return value.toString();
|
|
272
|
+
case "boolean":
|
|
273
|
+
return value ? "true" : "false";
|
|
274
|
+
default:
|
|
275
|
+
// For objects and arrays, convert to JSON string
|
|
276
|
+
if (typeof value === "object") {
|
|
277
|
+
return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
|
|
278
|
+
}
|
|
279
|
+
return `'${value.toString().replace(/'/g, "''")}'`;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Compares partition key range boundaries with proper handling for inclusive/exclusive semantics
|
|
284
|
+
* @param boundary1 - First boundary to compare
|
|
285
|
+
* @param boundary2 - Second boundary to compare
|
|
286
|
+
* @returns negative if boundary1 is less than boundary2, positive if boundary1 is greater than boundary2, 0 if equal
|
|
287
|
+
*/
|
|
288
|
+
comparePartitionKeyBoundaries(boundary1, boundary2) {
|
|
289
|
+
// Handle empty string cases (empty string represents the minimum boundary)
|
|
290
|
+
if (boundary1 === "" && boundary2 === "")
|
|
291
|
+
return 0;
|
|
292
|
+
if (boundary1 === "")
|
|
293
|
+
return -1; // "" < "AA"
|
|
294
|
+
if (boundary2 === "")
|
|
295
|
+
return 1; // "AA" > ""
|
|
296
|
+
// Use standard lexicographic comparison for non-empty boundaries
|
|
297
|
+
return boundary1.localeCompare(boundary2);
|
|
298
|
+
}
|
|
299
|
+
isRangeBeforeAnother(range1MaxExclusive, range2MinInclusive) {
|
|
300
|
+
// Since range1.maxExclusive is NOT part of range1, and range2.minInclusive IS part of range2,
|
|
301
|
+
// range1 comes before range2 if range1.maxExclusive <= range2.minInclusive
|
|
302
|
+
return this.comparePartitionKeyBoundaries(range1MaxExclusive, range2MinInclusive) <= 0;
|
|
303
|
+
}
|
|
304
|
+
isRangeAfterAnother(range1MinInclusive, range2MaxExclusive) {
|
|
305
|
+
// Since range2.maxExclusive is NOT part of range2, and range1.minInclusive IS part of range1,
|
|
306
|
+
// range1 comes after range2 if range1.minInclusive >= range2.maxExclusive
|
|
307
|
+
return this.comparePartitionKeyBoundaries(range1MinInclusive, range2MaxExclusive) >= 0;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=OrderByQueryRangeStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrderByQueryRangeStrategy.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AASlC;;;;GAIG;AACH,MAAM,OAAO,yBAAyB;IACpC,eAAe;QACb,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,qBAAqB,CACnB,YAAiC,EACjC,kBAA0D,EAC1D,SAAmC;QAEnC,IACE,CAAC,YAAY;YACb,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,kBAAkB;YACnB,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;YACD,OAAO;gBACL,eAAe,EAAE,EAAE;aACpB,CAAC;QACJ,CAAC;QAED,IACE,CAAC,SAAS,EAAE,YAAY;YACxB,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;YACtC,SAAS,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EACnC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAA+B;YACzC,eAAe,EAAE,EAAE;SACpB,CAAC;QACF,IAAI,cAAc,GAAwB,EAAE,CAAC;QAC7C,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,gBAAgB,GAAG,IAAI,CAAC;YACxB,6DAA6D;YAC7D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YACnF,wEAAwE;YACxE,MAAM,WAAW,GAAsB,kBAAkB,CAAC;YAE1D,MAAM,uBAAuB,GAC3B,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAEtE,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACjD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,YAAY,CAAC,CACjF,CAAC;YAEF,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;YAE5C,qFAAqF;YACrF,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAEpF,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAChF,CAAC;YAEF,sFAAsF;YACtF,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAEtF,wCAAwC;YACxC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC3B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;wBAC1B,KAAK,EAAE,KAAK;wBACZ,iBAAiB,EAAE,SAAS;wBAC5B,kBAAkB,EAAE,UAAU;qBAC/B,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE,WAAW;gBAClB,iBAAiB,EAAE,uBAAuB;gBAC1C,kBAAkB,EAAE,WAAW;aAChC,CAAC,CAAC;YAEH,yCAAyC;YACzC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;wBAC1B,KAAK,EAAE,KAAK;wBACZ,iBAAiB,EAAE,SAAS;wBAC5B,kBAAkB,EAAE,WAAW;qBAChC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,qEAAqE;QACrE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,cAAc,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;YACnC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,KAAK;oBACZ,iBAAiB,EAAE,SAAS;oBAC5B,kBAAkB,EAAE,SAAS;iBAC9B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACK,0BAA0B,CAChC,YAAmB,EACnB,SAA8C,EAC9C,aAA+B;QAE/B,sCAAsC;QACtC,IAAI,UAAoB,CAAC;QACzB,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+EAA+E;YAC/E,MAAM,IAAI,KAAK,CACb,qGAAqG;gBACnG,wHAAwH;gBACxH,wEAAwE,KAAK,EAAE,CAClF,CAAC;QACJ,CAAC;QAED,mDAAmD;QACnD,IAAI,kBAAqC,CAAC;QAC1C,IACE,SAAS;YACT,SAAS,CAAC,SAAS;YACnB,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;YACtC,SAAS,CAAC,SAAiB,CAAC,SAAS;YACrC,SAAS,CAAC,SAAiB,CAAC,SAAS,CAAC,kBAAkB;YACzD,KAAK,CAAC,OAAO,CAAE,SAAS,CAAC,SAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC,EACxE,CAAC;YACD,kBAAkB,GAAI,SAAS,CAAC,SAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CACb,4FAA4F;gBAC1F,wHAAwH;gBACxH,sDAAsD,CACzD,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,yDAAyD;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtE,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAEhC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACnD,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,mEAAmE;gBACnE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAEtD,yEAAyE;gBACzE,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAC9C,SAAS,EACT,WAAW,CAAC,IAAI,EAChB,SAAS,EACT,aAAa,CACd,CAAC;gBAEF,IAAI,SAAS,EAAE,CAAC;oBACd,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,2GAA2G;gBAC3G,iFAAiF;gBACjF,MAAM,IAAI,KAAK,CACb,4FAA4F;oBAC1F,mFAAmF;oBACnF,+EAA+E;oBAC/E,wEAAwE,KAAK,EAAE,CAClF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,SAAmC;QAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,mFAAmF;QACnF,IAAI,OAA0B,CAAC;QAE/B,IACE,SAAS,CAAC,SAAS;YACnB,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;YACtC,SAAS,CAAC,SAAiB,CAAC,SAAS;YACtC,OAAQ,SAAS,CAAC,SAAiB,CAAC,SAAS,KAAK,QAAQ;YACzD,SAAS,CAAC,SAAiB,CAAC,SAAS,CAAC,OAAO;YAC9C,KAAK,CAAC,OAAO,CAAE,SAAS,CAAC,SAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,EAC7D,CAAC;YACD,OAAO,GAAI,SAAS,CAAC,SAAiB,CAAC,SAAS,CAAC,OAAO,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,iCAAiC;YACjC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,SAAS,GACZ,KAAa,CAAC,SAAS,IAAK,KAAa,CAAC,KAAK,IAAK,KAAa,CAAC,SAAS,CAAC;gBAC/E,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CACb,uCAAuC,KAAK,GAAG,CAAC,0CAA0C,CAC3F,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,SAA8C,EAAE,KAAa;QACpF,wEAAwE;QACxE,IAAI,kBAAqC,CAAC;QAE1C,IAAI,SAAS,EAAE,CAAC;YACd,cAAc;YACd,IAAI,SAAS,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAChF,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;YACpD,CAAC;YACD,gEAAgE;iBAC3D,IACH,SAAS,CAAC,SAAS;gBACnB,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;gBACtC,SAAS,CAAC,SAAiB,CAAC,SAAS;gBACrC,SAAS,CAAC,SAAiB,CAAC,SAAS,CAAC,kBAAkB;gBACzD,KAAK,CAAC,OAAO,CAAE,SAAS,CAAC,SAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC,EACxE,CAAC;gBACD,kBAAkB,GAAI,SAAS,CAAC,SAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC;YACjF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,4DAA4D,KAAK,GAAG,CAAC,qBAAqB,kBAAkB,CAAC,MAAM,EAAE,CACtH,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE7C,mDAAmD;QACnD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,gEAAgE;YAChE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,iEAAiE;YACjE,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC1B,OAAO,UAAU,CAAC,UAAU,CAAC;YAC/B,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB;YACpE,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,UAAU,CAAC,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,GAAG,CAAC,+CAA+C,CACvF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,yBAAyB,CAC/B,SAAiB,EACjB,KAAU,EACV,SAAiB,EACjB,aAA+B;QAE/B,MAAM,YAAY,GAChB,SAAS,CAAC,WAAW,EAAE,KAAK,YAAY,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;QAEjF,wDAAwD;QACxD,kFAAkF;QAClF,oFAAoF;QAEpF,wDAAwD;QACxD,yEAAyE;QACzE,yFAAyF;QAEzF,IAAI,QAAgB,CAAC;QAErB,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC7B,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,QAAQ;YACR,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,CAAC;QAED,qCAAqC;QACrC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAErD,mDAAmD;QACnD,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,QAAQ,IAAI,cAAc,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,KAAU;QAClC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;QAE/B,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACX,0CAA0C;gBAC1C,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;YACrD,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,KAAK,SAAS;gBACZ,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAClC;gBACE,iDAAiD;gBACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;gBAC1D,CAAC;gBACD,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,6BAA6B,CAAC,SAAiB,EAAE,SAAiB;QACxE,2EAA2E;QAC3E,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,EAAE;YAAE,OAAO,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,EAAE;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY;QAC7C,IAAI,SAAS,KAAK,EAAE;YAAE,OAAO,CAAC,CAAC,CAAC,YAAY;QAE5C,iEAAiE;QACjE,OAAO,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEO,oBAAoB,CAAC,kBAA0B,EAAE,kBAA0B;QACjF,8FAA8F;QAC9F,2EAA2E;QAC3E,OAAO,IAAI,CAAC,6BAA6B,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzF,CAAC;IAEO,mBAAmB,CAAC,kBAA0B,EAAE,kBAA0B;QAChF,8FAA8F;QAC9F,0EAA0E;QAC1E,OAAO,IAAI,CAAC,6BAA6B,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzF,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../../index.js\";\nimport type {\n TargetPartitionRangeStrategy,\n PartitionRangeFilterResult,\n} from \"./TargetPartitionRangeStrategy.js\";\nimport type { PartitionRangeWithContinuationToken } from \"./TargetPartitionRangeManager.js\";\n\n/**\n * Strategy for filtering partition ranges in ORDER BY query execution context\n * Supports resuming from continuation tokens with proper range-token pair management\n * @hidden\n */\nexport class OrderByQueryRangeStrategy implements TargetPartitionRangeStrategy {\n getStrategyType(): string {\n return \"OrderByQuery\";\n }\n\n filterPartitionRanges(\n targetRanges: PartitionKeyRange[],\n continuationRanges?: PartitionRangeWithContinuationToken[],\n queryInfo?: Record<string, unknown>,\n ): PartitionRangeFilterResult {\n if (\n !targetRanges ||\n targetRanges.length === 0 ||\n !continuationRanges ||\n continuationRanges.length === 0\n ) {\n return {\n rangeTokenPairs: [],\n };\n }\n\n if (\n !queryInfo?.orderByItems ||\n !Array.isArray(queryInfo.orderByItems) ||\n queryInfo.orderByItems.length === 0\n ) {\n throw new Error(\n \"Unable to resume ORDER BY query from continuation token. orderByItems is required for ORDER BY queries.\",\n );\n }\n\n const result: PartitionRangeFilterResult = {\n rangeTokenPairs: [],\n };\n let filteredRanges: PartitionKeyRange[] = [];\n let resumeRangeFound = false;\n\n if (continuationRanges && continuationRanges.length > 0) {\n resumeRangeFound = true;\n // Find the range to resume from based on the composite token\n const targetRangeMapping = continuationRanges[continuationRanges.length - 1].range;\n // It is assumed that range mapping array is going to contain only range\n const targetRange: PartitionKeyRange = targetRangeMapping;\n\n const targetContinuationToken =\n continuationRanges[continuationRanges.length - 1].continuationToken;\n\n const leftRanges = targetRanges.filter((mapping) =>\n this.isRangeBeforeAnother(mapping.maxExclusive, targetRangeMapping.minInclusive),\n );\n\n const orderByItems = queryInfo.orderByItems;\n\n // Create filtering condition for left ranges based on ORDER BY items and sort orders\n const leftFilter = this.createRangeFilterCondition(orderByItems, queryInfo, \"left\");\n\n const rightRanges = targetRanges.filter((mapping) =>\n this.isRangeAfterAnother(mapping.minInclusive, targetRangeMapping.maxExclusive),\n );\n\n // Create filtering condition for right ranges based on ORDER BY items and sort orders\n const rightFilter = this.createRangeFilterCondition(orderByItems, queryInfo, \"right\");\n\n // Apply filtering logic for left ranges\n if (leftRanges.length > 0) {\n leftRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: leftFilter,\n });\n });\n }\n\n result.rangeTokenPairs.push({\n range: targetRange,\n continuationToken: targetContinuationToken,\n filteringCondition: rightFilter,\n });\n\n // Apply filtering logic for right ranges\n if (rightRanges.length > 0) {\n rightRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: rightFilter,\n });\n });\n }\n }\n\n // If we couldn't find a specific resume point, include all ranges\n // This can happen with certain types of ORDER BY continuation tokens\n if (!resumeRangeFound) {\n filteredRanges = [...targetRanges];\n filteredRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: undefined,\n });\n });\n }\n return result;\n }\n\n /**\n * Creates a filter condition for ranges based on ORDER BY items and sort orders\n * This filter ensures that ranges only return documents based on their position relative to the continuation point\n * @param orderByItems - Array of order by items from the continuation token\n * @param queryInfo - Query information containing sort orders and other metadata\n * @param rangePosition - Whether this is for \"left\" or \"right\" ranges relative to continuation point\n * @returns SQL filter condition string for the specified range position\n */\n private createRangeFilterCondition(\n orderByItems: any[],\n queryInfo: Record<string, unknown> | undefined,\n rangePosition: \"left\" | \"right\",\n ): string {\n // Extract sort orders from query info\n let sortOrders: string[];\n try {\n sortOrders = this.extractSortOrders(queryInfo);\n } catch (error) {\n // If we can't extract sort orders, we cannot create reliable filter conditions\n throw new Error(\n `Unable to resume ORDER BY query from continuation token. The ORDER BY sort direction configuration ` +\n `in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. ` +\n `Please retry the query without a continuation token. Original error: ${error}`,\n );\n }\n\n // Extract orderByExpressions from nested structure\n let orderByExpressions: any[] | undefined;\n if (\n queryInfo &&\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n (queryInfo.queryInfo as any).queryInfo.orderByExpressions &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderByExpressions)\n ) {\n orderByExpressions = (queryInfo.queryInfo as any).queryInfo.orderByExpressions;\n }\n\n if (!orderByExpressions || !Array.isArray(orderByExpressions)) {\n throw new Error(\n \"Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration \" +\n \"in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. \" +\n \"Please retry the query without a continuation token.\",\n );\n }\n\n const filterConditions: string[] = [];\n\n // Process each order by item to create filter conditions\n for (let i = 0; i < orderByItems.length && i < sortOrders.length; i++) {\n const orderByItem = orderByItems[i];\n const sortOrder = sortOrders[i];\n\n if (!orderByItem || orderByItem.item === undefined) {\n continue;\n }\n\n try {\n // Determine the field path from ORDER BY expressions in query plan\n const fieldPath = this.extractFieldPath(queryInfo, i);\n\n // Create the comparison condition based on sort order and range position\n const condition = this.createComparisonCondition(\n fieldPath,\n orderByItem.item,\n sortOrder,\n rangePosition,\n );\n\n if (condition) {\n filterConditions.push(condition);\n }\n } catch (error) {\n // If we can't extract field path for ORDER BY expressions, we cannot safely resume from continuation token\n // This would lead to incorrect query results, so we must fail the entire request\n throw new Error(\n `Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration ` +\n `in the query plan is invalid or incompatible with the continuation token format. ` +\n `This may indicate a client version mismatch or corrupted continuation token. ` +\n `Please retry the query without a continuation token. Original error: ${error}`,\n );\n }\n }\n\n // Combine multiple conditions with AND for multi-field ORDER BY\n const combinedFilter = filterConditions.length > 0 ? `(${filterConditions.join(\" AND \")})` : \"\";\n return combinedFilter;\n }\n\n /**\n * Extracts sort orders from query info\n * @throws Error if sort order information is missing or invalid\n */\n private extractSortOrders(queryInfo?: Record<string, unknown>): string[] {\n if (!queryInfo) {\n throw new Error(\"Query information is required to determine ORDER BY sort directions\");\n }\n\n // Extract orderBy from the nested structure: queryInfo.queryInfo.queryInfo.orderBy\n let orderBy: any[] | undefined;\n\n if (\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n typeof (queryInfo.queryInfo as any).queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo.orderBy &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderBy)\n ) {\n orderBy = (queryInfo.queryInfo as any).queryInfo.orderBy;\n }\n\n if (!orderBy) {\n throw new Error(\"ORDER BY sort direction information is missing from query plan\");\n }\n\n return orderBy.map((order, index) => {\n if (typeof order === \"string\") {\n return order;\n }\n // Handle object format if needed\n if (order && typeof order === \"object\") {\n const sortOrder =\n (order as any).direction || (order as any).order || (order as any).sortOrder;\n if (sortOrder) {\n return sortOrder;\n }\n }\n throw new Error(\n `ORDER BY sort direction at position ${index + 1} has an invalid format in the query plan`,\n );\n });\n }\n\n /**\n * Extracts field path from ORDER BY expressions in query plan\n * @throws Error if orderByExpressions are not found or index is out of bounds or expression format is invalid\n */\n private extractFieldPath(queryInfo: Record<string, unknown> | undefined, index: number): string {\n // Try multiple paths to find orderByExpressions due to nested structure\n let orderByExpressions: any[] | undefined;\n\n if (queryInfo) {\n // Direct path\n if (queryInfo.orderByExpressions && Array.isArray(queryInfo.orderByExpressions)) {\n orderByExpressions = queryInfo.orderByExpressions;\n }\n // Nested path: queryInfo.queryInfo.queryInfo.orderByExpressions\n else if (\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n (queryInfo.queryInfo as any).queryInfo.orderByExpressions &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderByExpressions)\n ) {\n orderByExpressions = (queryInfo.queryInfo as any).queryInfo.orderByExpressions;\n }\n }\n\n if (!orderByExpressions) {\n throw new Error(\"ORDER BY field information is missing from query plan\");\n }\n\n if (index >= orderByExpressions.length) {\n throw new Error(\n `ORDER BY field configuration mismatch: expected at least ${index + 1} fields but found ${orderByExpressions.length}`,\n );\n }\n\n const expression = orderByExpressions[index];\n\n // Handle different formats of ORDER BY expressions\n if (typeof expression === \"string\") {\n // Simple string expression like \"c.id\" or \"_FullTextScore(...)\"\n return expression;\n }\n\n if (expression && typeof expression === \"object\") {\n // Object format like { expression: \"c.id\", type: \"PropertyRef\" }\n if (expression.expression) {\n return expression.expression;\n }\n if (expression.path) {\n return expression.path.replace(/^\\//, \"\"); // Remove leading slash\n }\n if (expression.field) {\n return expression.field;\n }\n }\n\n throw new Error(\n `ORDER BY field at position ${index + 1} has an unrecognized format in the query plan`,\n );\n }\n\n /**\n * Creates a comparison condition based on the field, value, sort order, and range position\n */\n private createComparisonCondition(\n fieldPath: string,\n value: any,\n sortOrder: string,\n rangePosition: \"left\" | \"right\",\n ): string {\n const isDescending =\n sortOrder.toLowerCase() === \"descending\" || sortOrder.toLowerCase() === \"desc\";\n\n // For left ranges (ranges that come before the target):\n // - In ascending order: field > value (left ranges should seek for larger values)\n // - In descending order: field < value (left ranges should seek for smaller values)\n\n // For right ranges (ranges that come after the target):\n // - In ascending order: field >= value (right ranges have larger values)\n // - In descending order: field <= value (right ranges have smaller values in desc order)\n\n let operator: string;\n\n if (rangePosition === \"left\") {\n operator = isDescending ? \"<\" : \">\";\n } else {\n // right\n operator = isDescending ? \"<=\" : \">=\";\n }\n\n // Format the value based on its type\n const formattedValue = this.formatValueForSQL(value);\n\n // Create the condition with proper field reference\n const condition = `${fieldPath} ${operator} ${formattedValue}`;\n return condition;\n }\n\n /**\n * Formats a value for use in SQL condition\n */\n private formatValueForSQL(value: any): string {\n if (value === null || value === undefined) {\n return \"null\";\n }\n\n const valueType = typeof value;\n\n switch (valueType) {\n case \"string\":\n // Escape single quotes and wrap in quotes\n return `'${value.toString().replace(/'/g, \"''\")}'`;\n case \"number\":\n case \"bigint\":\n return value.toString();\n case \"boolean\":\n return value ? \"true\" : \"false\";\n default:\n // For objects and arrays, convert to JSON string\n if (typeof value === \"object\") {\n return `'${JSON.stringify(value).replace(/'/g, \"''\")}'`;\n }\n return `'${value.toString().replace(/'/g, \"''\")}'`;\n }\n }\n\n /**\n * Compares partition key range boundaries with proper handling for inclusive/exclusive semantics\n * @param boundary1 - First boundary to compare\n * @param boundary2 - Second boundary to compare\n * @returns negative if boundary1 is less than boundary2, positive if boundary1 is greater than boundary2, 0 if equal\n */\n private comparePartitionKeyBoundaries(boundary1: string, boundary2: string): number {\n // Handle empty string cases (empty string represents the minimum boundary)\n if (boundary1 === \"\" && boundary2 === \"\") return 0;\n if (boundary1 === \"\") return -1; // \"\" < \"AA\"\n if (boundary2 === \"\") return 1; // \"AA\" > \"\"\n\n // Use standard lexicographic comparison for non-empty boundaries\n return boundary1.localeCompare(boundary2);\n }\n\n private isRangeBeforeAnother(range1MaxExclusive: string, range2MinInclusive: string): boolean {\n // Since range1.maxExclusive is NOT part of range1, and range2.minInclusive IS part of range2,\n // range1 comes before range2 if range1.maxExclusive <= range2.minInclusive\n return this.comparePartitionKeyBoundaries(range1MaxExclusive, range2MinInclusive) <= 0;\n }\n\n private isRangeAfterAnother(range1MinInclusive: string, range2MaxExclusive: string): boolean {\n // Since range2.maxExclusive is NOT part of range2, and range1.minInclusive IS part of range1,\n // range1 comes after range2 if range1.minInclusive >= range2.maxExclusive\n return this.comparePartitionKeyBoundaries(range1MinInclusive, range2MaxExclusive) >= 0;\n }\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PartitionKeyRange } from "../../index.js";
|
|
2
|
+
import type { TargetPartitionRangeStrategy, PartitionRangeFilterResult } from "./TargetPartitionRangeStrategy.js";
|
|
3
|
+
import type { PartitionRangeWithContinuationToken } from "./TargetPartitionRangeManager.js";
|
|
4
|
+
/**
|
|
5
|
+
* Strategy for filtering partition ranges in parallel query execution context
|
|
6
|
+
* Supports resuming from composite continuation tokens with multi-range aggregation
|
|
7
|
+
* @hidden
|
|
8
|
+
*/
|
|
9
|
+
export declare class ParallelQueryRangeStrategy implements TargetPartitionRangeStrategy {
|
|
10
|
+
getStrategyType(): string;
|
|
11
|
+
validateContinuationToken(continuationToken: string): boolean;
|
|
12
|
+
filterPartitionRanges(targetRanges: PartitionKeyRange[], continuationRanges?: PartitionRangeWithContinuationToken[]): PartitionRangeFilterResult;
|
|
13
|
+
/**
|
|
14
|
+
* Checks if a partition is exhausted based on its continuation token
|
|
15
|
+
*/
|
|
16
|
+
private isPartitionExhausted;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ParallelQueryRangeStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParallelQueryRangeStrategy.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAC;AAE5F;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,4BAA4B;IAC7E,eAAe,IAAI,MAAM;IAIzB,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO;IA0B7D,qBAAqB,CACnB,YAAY,EAAE,iBAAiB,EAAE,EACjC,kBAAkB,CAAC,EAAE,mCAAmC,EAAE,GACzD,0BAA0B;IAgE7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAQ7B"}
|
package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
/**
|
|
4
|
+
* Strategy for filtering partition ranges in parallel query execution context
|
|
5
|
+
* Supports resuming from composite continuation tokens with multi-range aggregation
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export class ParallelQueryRangeStrategy {
|
|
9
|
+
getStrategyType() {
|
|
10
|
+
return "ParallelQuery";
|
|
11
|
+
}
|
|
12
|
+
validateContinuationToken(continuationToken) {
|
|
13
|
+
// Check for null, undefined, or empty string inputs
|
|
14
|
+
if (!continuationToken) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse(continuationToken);
|
|
19
|
+
// Check if it's a composite continuation token (has rangeMappings)
|
|
20
|
+
if (!parsed || !Array.isArray(parsed.rangeMappings)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
// Validate each range mapping has a non-null partitionKeyRange
|
|
24
|
+
for (const rangeMapping of parsed.rangeMappings) {
|
|
25
|
+
if (!rangeMapping || !rangeMapping.partitionKeyRange) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
filterPartitionRanges(targetRanges, continuationRanges) {
|
|
36
|
+
if (!targetRanges || targetRanges.length === 0) {
|
|
37
|
+
return { rangeTokenPairs: [] };
|
|
38
|
+
}
|
|
39
|
+
// If no continuation ranges, return all ranges as range-token pairs
|
|
40
|
+
if (!continuationRanges || continuationRanges.length === 0) {
|
|
41
|
+
const rangeTokenPairs = targetRanges.map((range) => ({
|
|
42
|
+
range,
|
|
43
|
+
continuationToken: undefined,
|
|
44
|
+
filteringCondition: undefined,
|
|
45
|
+
}));
|
|
46
|
+
return { rangeTokenPairs };
|
|
47
|
+
}
|
|
48
|
+
const rangeTokenPairs = [];
|
|
49
|
+
let lastProcessedRange = null;
|
|
50
|
+
// sort continuationRanges in ascending order using their minInclusive values
|
|
51
|
+
continuationRanges.sort((a, b) => {
|
|
52
|
+
return a.range.minInclusive.localeCompare(b.range.minInclusive);
|
|
53
|
+
});
|
|
54
|
+
for (const range of continuationRanges) {
|
|
55
|
+
// Always track the last processed range, even if it's exhausted
|
|
56
|
+
lastProcessedRange = range.range;
|
|
57
|
+
if (range && !this.isPartitionExhausted(range.continuationToken)) {
|
|
58
|
+
rangeTokenPairs.push({
|
|
59
|
+
range: range.range,
|
|
60
|
+
continuationToken: range.continuationToken,
|
|
61
|
+
filteringCondition: range.filteringCondition,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Add any new target ranges that come after the last processed range
|
|
66
|
+
if (lastProcessedRange) {
|
|
67
|
+
for (const targetRange of targetRanges) {
|
|
68
|
+
// Only include ranges whose minInclusive value is greater than or equal to maxExclusive of lastProcessedRange
|
|
69
|
+
if (targetRange.minInclusive >= lastProcessedRange.maxExclusive) {
|
|
70
|
+
rangeTokenPairs.push({
|
|
71
|
+
range: targetRange,
|
|
72
|
+
continuationToken: undefined,
|
|
73
|
+
filteringCondition: undefined,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// If no ranges were processed from continuation token, add all target ranges
|
|
80
|
+
for (const targetRange of targetRanges) {
|
|
81
|
+
rangeTokenPairs.push({
|
|
82
|
+
range: targetRange,
|
|
83
|
+
continuationToken: undefined,
|
|
84
|
+
filteringCondition: undefined,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
rangeTokenPairs,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Checks if a partition is exhausted based on its continuation token
|
|
94
|
+
*/
|
|
95
|
+
isPartitionExhausted(continuationToken) {
|
|
96
|
+
return (!continuationToken ||
|
|
97
|
+
continuationToken === "" ||
|
|
98
|
+
continuationToken === "null" ||
|
|
99
|
+
continuationToken.toLowerCase() === "null");
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=ParallelQueryRangeStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParallelQueryRangeStrategy.js","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AASlC;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IACrC,eAAe;QACb,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,yBAAyB,CAAC,iBAAyB;QACjD,oDAAoD;QACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC7C,mEAAmE;YACnE,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,+DAA+D;YAC/D,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBAChD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;oBACrD,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,qBAAqB,CACnB,YAAiC,EACjC,kBAA0D;QAE1D,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QACjC,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnD,KAAK;gBACL,iBAAiB,EAAE,SAA+B;gBAClD,kBAAkB,EAAE,SAA+B;aACpD,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,eAAe,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,eAAe,GAA0C,EAAE,CAAC;QAClE,IAAI,kBAAkB,GAA6B,IAAI,CAAC;QAExD,6EAA6E;QAC7E,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/B,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;YACvC,gEAAgE;YAChE,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC;YAEjC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACjE,eAAe,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;oBAC1C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;iBAC7C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,IAAI,kBAAkB,EAAE,CAAC;YACvB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,8GAA8G;gBAC9G,IAAI,WAAW,CAAC,YAAY,IAAI,kBAAkB,CAAC,YAAY,EAAE,CAAC;oBAChE,eAAe,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,WAAW;wBAClB,iBAAiB,EAAE,SAA+B;wBAClD,kBAAkB,EAAE,SAA+B;qBACpD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6EAA6E;YAC7E,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,eAAe,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,WAAW;oBAClB,iBAAiB,EAAE,SAA+B;oBAClD,kBAAkB,EAAE,SAA+B;iBACpD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,eAAe;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,iBAAqC;QAChE,OAAO,CACL,CAAC,iBAAiB;YAClB,iBAAiB,KAAK,EAAE;YACxB,iBAAiB,KAAK,MAAM;YAC5B,iBAAiB,CAAC,WAAW,EAAE,KAAK,MAAM,CAC3C,CAAC;IACJ,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../../index.js\";\nimport type {\n TargetPartitionRangeStrategy,\n PartitionRangeFilterResult,\n} from \"./TargetPartitionRangeStrategy.js\";\nimport type { PartitionRangeWithContinuationToken } from \"./TargetPartitionRangeManager.js\";\n\n/**\n * Strategy for filtering partition ranges in parallel query execution context\n * Supports resuming from composite continuation tokens with multi-range aggregation\n * @hidden\n */\nexport class ParallelQueryRangeStrategy implements TargetPartitionRangeStrategy {\n getStrategyType(): string {\n return \"ParallelQuery\";\n }\n\n validateContinuationToken(continuationToken: string): boolean {\n // Check for null, undefined, or empty string inputs\n if (!continuationToken) {\n return false;\n }\n\n try {\n const parsed = JSON.parse(continuationToken);\n // Check if it's a composite continuation token (has rangeMappings)\n if (!parsed || !Array.isArray(parsed.rangeMappings)) {\n return false;\n }\n\n // Validate each range mapping has a non-null partitionKeyRange\n for (const rangeMapping of parsed.rangeMappings) {\n if (!rangeMapping || !rangeMapping.partitionKeyRange) {\n return false;\n }\n }\n\n return true;\n } catch {\n return false;\n }\n }\n\n filterPartitionRanges(\n targetRanges: PartitionKeyRange[],\n continuationRanges?: PartitionRangeWithContinuationToken[],\n ): PartitionRangeFilterResult {\n if (!targetRanges || targetRanges.length === 0) {\n return { rangeTokenPairs: [] };\n }\n\n // If no continuation ranges, return all ranges as range-token pairs\n if (!continuationRanges || continuationRanges.length === 0) {\n const rangeTokenPairs = targetRanges.map((range) => ({\n range,\n continuationToken: undefined as string | undefined,\n filteringCondition: undefined as string | undefined,\n }));\n return { rangeTokenPairs };\n }\n\n const rangeTokenPairs: PartitionRangeWithContinuationToken[] = [];\n let lastProcessedRange: PartitionKeyRange | null = null;\n\n // sort continuationRanges in ascending order using their minInclusive values\n continuationRanges.sort((a, b) => {\n return a.range.minInclusive.localeCompare(b.range.minInclusive);\n });\n\n for (const range of continuationRanges) {\n // Always track the last processed range, even if it's exhausted\n lastProcessedRange = range.range;\n\n if (range && !this.isPartitionExhausted(range.continuationToken)) {\n rangeTokenPairs.push({\n range: range.range,\n continuationToken: range.continuationToken,\n filteringCondition: range.filteringCondition,\n });\n }\n }\n\n // Add any new target ranges that come after the last processed range\n if (lastProcessedRange) {\n for (const targetRange of targetRanges) {\n // Only include ranges whose minInclusive value is greater than or equal to maxExclusive of lastProcessedRange\n if (targetRange.minInclusive >= lastProcessedRange.maxExclusive) {\n rangeTokenPairs.push({\n range: targetRange,\n continuationToken: undefined as string | undefined,\n filteringCondition: undefined as string | undefined,\n });\n }\n }\n } else {\n // If no ranges were processed from continuation token, add all target ranges\n for (const targetRange of targetRanges) {\n rangeTokenPairs.push({\n range: targetRange,\n continuationToken: undefined as string | undefined,\n filteringCondition: undefined as string | undefined,\n });\n }\n }\n\n return {\n rangeTokenPairs,\n };\n }\n\n /**\n * Checks if a partition is exhausted based on its continuation token\n */\n private isPartitionExhausted(continuationToken: string | undefined): boolean {\n return (\n !continuationToken ||\n continuationToken === \"\" ||\n continuationToken === \"null\" ||\n continuationToken.toLowerCase() === \"null\"\n );\n }\n}\n"]}
|
package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { FilterContext, FilterStrategy } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Implements post-fetch filtering for ORDER BY queries to handle continuation tokens correctly.
|
|
4
|
+
* This logic is applied only to the target partition from which a query is resumed.
|
|
5
|
+
* It filters out documents that have already been emitted in previous pages by comparing
|
|
6
|
+
* ORDER BY item values first, then document _rid, and finally using skip count for tie-breaking.
|
|
7
|
+
*
|
|
8
|
+
* Follows the .NET SDK FilterNextAsync logic:
|
|
9
|
+
* 1. Compare OrderBy values with continuation token values
|
|
10
|
+
* 2. Skip documents that come before continuation point
|
|
11
|
+
* 3. For exact OrderBy matches, use RID comparison
|
|
12
|
+
* 4. For exact RID matches, apply skip count logic
|
|
13
|
+
*/
|
|
14
|
+
export declare class RidSkipCountFilter implements FilterStrategy {
|
|
15
|
+
private readonly filterContext;
|
|
16
|
+
private remainingSkipCount;
|
|
17
|
+
/**
|
|
18
|
+
* @param filterContext - The context containing values from the continuation token.
|
|
19
|
+
*/
|
|
20
|
+
constructor(filterContext: FilterContext);
|
|
21
|
+
/**
|
|
22
|
+
* Applies the comprehensive OrderBy + RID + SkipCount filtering logic.
|
|
23
|
+
* @param documents - The documents fetched from the target partition.
|
|
24
|
+
* @returns A new array containing only the documents that should be processed.
|
|
25
|
+
*/
|
|
26
|
+
applyFilter(documents: any[]): any[];
|
|
27
|
+
/**
|
|
28
|
+
* Determines if a document should be included based on OrderBy values, RID, and skip count.
|
|
29
|
+
* Implements the .NET SDK's FilterNextAsync logic with robust OrderBy comparison.
|
|
30
|
+
*/
|
|
31
|
+
private shouldIncludeDocument;
|
|
32
|
+
/**
|
|
33
|
+
* Convert RID to BigInt for accurate comparison.
|
|
34
|
+
* Decodes base64 RID and extracts the Document ID portion (8 bytes at offset 8) as BigInt.
|
|
35
|
+
*
|
|
36
|
+
* RID Structure (from Java SDK ResourceId.java):
|
|
37
|
+
* - Bytes 0-3: Database ID (4 bytes)
|
|
38
|
+
* - Bytes 4-7: Collection ID (4 bytes)
|
|
39
|
+
* - Bytes 8-15: Document ID (8 bytes, stored in Big Endian but compared in Little Endian)
|
|
40
|
+
* - Bytes 16-19: Attachment ID (4 bytes, optional)
|
|
41
|
+
*/
|
|
42
|
+
private ridToBigInt;
|
|
43
|
+
/**
|
|
44
|
+
* Compares the OrderBy items of a document with the continuation token's OrderBy items.
|
|
45
|
+
* Uses the exported compareOrderByItems utility function from orderByItemComparator.
|
|
46
|
+
* @param doc - The document to compare
|
|
47
|
+
* @returns negative if doc comes before continuation, 0 if same, positive if doc comes after
|
|
48
|
+
*/
|
|
49
|
+
private compareOrderByItems;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=RidSkipCountFilter.d.ts.map
|
package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RidSkipCountFilter.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGjE;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IAM3C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAL1C,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;OAEG;gBAC0B,aAAa,EAAE,aAAa;IAIzD;;;;OAIG;IACI,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IAc3C;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAwF7B;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IAoCnB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CAS5B"}
|