@azure/event-hubs 5.13.0-beta.2 → 6.0.0-alpha.20250129.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -31
- package/dist/browser/batchingPartitionChannel.d.ts +94 -0
- package/dist/browser/batchingPartitionChannel.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/batchingPartitionChannel.js +4 -4
- package/dist/browser/batchingPartitionChannel.js.map +1 -0
- package/dist/browser/connectionContext.d.ts +108 -0
- package/dist/browser/connectionContext.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/connectionContext.js +9 -11
- package/dist/browser/connectionContext.js.map +1 -0
- package/dist/browser/dataTransformer.d.ts +53 -0
- package/dist/browser/dataTransformer.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/dataTransformer.js +2 -2
- package/dist/browser/dataTransformer.js.map +1 -0
- package/dist/browser/diagnostics/instrumentEventData.d.ts +28 -0
- package/dist/browser/diagnostics/instrumentEventData.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/diagnostics/instrumentEventData.js +3 -3
- package/dist/browser/diagnostics/instrumentEventData.js.map +1 -0
- package/dist/browser/diagnostics/tracing.d.ts +19 -0
- package/dist/browser/diagnostics/tracing.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/diagnostics/tracing.js +2 -2
- package/dist/browser/diagnostics/tracing.js.map +1 -0
- package/dist/browser/eventData.d.ts +295 -0
- package/dist/browser/eventData.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventData.js +39 -5
- package/dist/browser/eventData.js.map +1 -0
- package/dist/browser/eventDataAdapter.d.ts +69 -0
- package/dist/browser/eventDataAdapter.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventDataAdapter.js +1 -1
- package/dist/browser/eventDataAdapter.js.map +1 -0
- package/dist/browser/eventDataBatch.d.ts +225 -0
- package/dist/browser/eventDataBatch.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventDataBatch.js +7 -4
- package/dist/browser/eventDataBatch.js.map +1 -0
- package/dist/browser/eventHubBufferedProducerClient.d.ts +323 -0
- package/dist/browser/eventHubBufferedProducerClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventHubBufferedProducerClient.js +10 -9
- package/dist/browser/eventHubBufferedProducerClient.js.map +1 -0
- package/dist/browser/eventHubConsumerClient.d.ts +277 -0
- package/dist/browser/eventHubConsumerClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventHubConsumerClient.js +12 -12
- package/dist/browser/eventHubConsumerClient.js.map +1 -0
- package/dist/browser/eventHubConsumerClientModels.d.ts +218 -0
- package/dist/browser/eventHubConsumerClientModels.d.ts.map +1 -0
- package/dist/browser/eventHubConsumerClientModels.js +4 -0
- package/dist/browser/eventHubConsumerClientModels.js.map +1 -0
- package/dist/browser/eventHubProducerClient.d.ts +266 -0
- package/dist/browser/eventHubProducerClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventHubProducerClient.js +12 -10
- package/dist/browser/eventHubProducerClient.js.map +1 -0
- package/dist/browser/eventHubSender.d.ts +227 -0
- package/dist/browser/eventHubSender.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventHubSender.js +12 -12
- package/dist/browser/eventHubSender.js.map +1 -0
- package/dist/browser/eventPosition.d.ts +73 -0
- package/dist/browser/eventPosition.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventPosition.js +2 -2
- package/dist/browser/eventPosition.js.map +1 -0
- package/dist/browser/eventProcessor.d.ts +232 -0
- package/dist/browser/eventProcessor.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventProcessor.js +18 -18
- package/dist/browser/eventProcessor.js.map +1 -0
- package/dist/browser/eventhubConnectionConfig.d.ts +96 -0
- package/dist/browser/eventhubConnectionConfig.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/eventhubConnectionConfig.js +2 -2
- package/dist/browser/eventhubConnectionConfig.js.map +1 -0
- package/dist/browser/impl/awaitableQueue.d.ts +25 -0
- package/dist/browser/impl/awaitableQueue.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/impl/awaitableQueue.js +1 -1
- package/dist/browser/impl/awaitableQueue.js.map +1 -0
- package/dist/browser/impl/partitionAssigner.d.ts +29 -0
- package/dist/browser/impl/partitionAssigner.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/impl/partitionAssigner.js +2 -2
- package/dist/browser/impl/partitionAssigner.js.map +1 -0
- package/dist/browser/impl/partitionGate.d.ts +27 -0
- package/dist/browser/impl/partitionGate.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/impl/partitionGate.js +1 -1
- package/{dist-esm/src → dist/browser}/impl/partitionGate.js.map +1 -1
- package/dist/browser/impl/partitionKeyToIdMapper.d.ts +6 -0
- package/dist/browser/impl/partitionKeyToIdMapper.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/impl/partitionKeyToIdMapper.js +1 -1
- package/{dist-esm/src → dist/browser}/impl/partitionKeyToIdMapper.js.map +1 -1
- package/dist/browser/inMemoryCheckpointStore.d.ts +44 -0
- package/dist/browser/inMemoryCheckpointStore.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/inMemoryCheckpointStore.js +3 -3
- package/dist/browser/inMemoryCheckpointStore.js.map +1 -0
- package/dist/browser/index.d.ts +21 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/index.js +9 -9
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/loadBalancerStrategies/balancedStrategy.d.ts +30 -0
- package/dist/browser/loadBalancerStrategies/balancedStrategy.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/loadBalancerStrategies/balancedStrategy.js +2 -2
- package/dist/browser/loadBalancerStrategies/balancedStrategy.js.map +1 -0
- package/dist/browser/loadBalancerStrategies/greedyStrategy.d.ts +24 -0
- package/dist/browser/loadBalancerStrategies/greedyStrategy.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/loadBalancerStrategies/greedyStrategy.js +2 -2
- package/dist/browser/loadBalancerStrategies/greedyStrategy.js.map +1 -0
- package/dist/browser/loadBalancerStrategies/loadBalancingStrategy.d.ts +28 -0
- package/dist/browser/loadBalancerStrategies/loadBalancingStrategy.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/loadBalancerStrategies/loadBalancingStrategy.js +2 -2
- package/dist/browser/loadBalancerStrategies/loadBalancingStrategy.js.map +1 -0
- package/dist/browser/loadBalancerStrategies/unbalancedStrategy.d.ts +20 -0
- package/dist/browser/loadBalancerStrategies/unbalancedStrategy.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/loadBalancerStrategies/unbalancedStrategy.js +1 -1
- package/dist/browser/loadBalancerStrategies/unbalancedStrategy.js.map +1 -0
- package/dist/browser/logger.d.ts +37 -0
- package/dist/browser/logger.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/logger.js +1 -1
- package/dist/browser/logger.js.map +1 -0
- package/dist/browser/managementClient.d.ts +145 -0
- package/dist/browser/managementClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/managementClient.js +8 -8
- package/dist/browser/managementClient.js.map +1 -0
- package/dist/browser/models/private.d.ts +185 -0
- package/dist/browser/models/private.d.ts.map +1 -0
- package/dist/browser/models/private.js +4 -0
- package/dist/browser/models/private.js.map +1 -0
- package/dist/browser/models/public.d.ts +240 -0
- package/dist/browser/models/public.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/models/public.js +1 -1
- package/dist/browser/models/public.js.map +1 -0
- package/dist/browser/package.json +3 -0
- package/dist/browser/partitionProcessor.d.ts +134 -0
- package/dist/browser/partitionProcessor.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/partitionProcessor.js +2 -2
- package/dist/browser/partitionProcessor.js.map +1 -0
- package/dist/browser/partitionPump.d.ts +38 -0
- package/dist/browser/partitionPump.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/partitionPump.js +6 -7
- package/dist/browser/partitionPump.js.map +1 -0
- package/dist/browser/partitionReceiver.d.ts +82 -0
- package/dist/browser/partitionReceiver.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/partitionReceiver.js +14 -12
- package/dist/browser/partitionReceiver.js.map +1 -0
- package/dist/browser/pumpManager.d.ts +72 -0
- package/dist/browser/pumpManager.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/pumpManager.js +4 -4
- package/dist/browser/pumpManager.js.map +1 -0
- package/dist/browser/util/connectionStringUtils.d.ts +52 -0
- package/dist/browser/util/connectionStringUtils.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/connectionStringUtils.js +1 -1
- package/{dist-esm/src → dist/browser}/util/connectionStringUtils.js.map +1 -1
- package/dist/browser/util/constants.d.ts +25 -0
- package/dist/browser/util/constants.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/constants.js +4 -2
- package/dist/browser/util/constants.js.map +1 -0
- package/dist/browser/util/delayWithoutThrow.d.ts +8 -0
- package/dist/browser/util/delayWithoutThrow.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/delayWithoutThrow.js +1 -1
- package/dist/browser/util/delayWithoutThrow.js.map +1 -0
- package/dist/browser/util/error.d.ts +39 -0
- package/dist/browser/util/error.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/error.js +2 -2
- package/dist/browser/util/error.js.map +1 -0
- package/dist/browser/util/getPromiseParts.d.ts +10 -0
- package/dist/browser/util/getPromiseParts.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/getPromiseParts.js +1 -1
- package/{dist-esm/src → dist/browser}/util/getPromiseParts.js.map +1 -1
- package/dist/browser/util/operationOptions.d.ts +16 -0
- package/dist/browser/util/operationOptions.d.ts.map +1 -0
- package/dist/browser/util/operationOptions.js +4 -0
- package/dist/browser/util/operationOptions.js.map +1 -0
- package/dist/browser/util/parseEndpoint.d.ts +11 -0
- package/dist/browser/util/parseEndpoint.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/parseEndpoint.js +1 -1
- package/{dist-esm/src → dist/browser}/util/parseEndpoint.js.map +1 -1
- package/dist/browser/util/retries.d.ts +6 -0
- package/dist/browser/util/retries.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/retries.js +1 -1
- package/dist/browser/util/retries.js.map +1 -0
- package/dist/browser/util/runtimeInfo-browser.d.mts.map +1 -0
- package/dist/browser/util/runtimeInfo-browser.mjs.map +1 -0
- package/dist/browser/util/runtimeInfo.d.ts +6 -0
- package/{dist-esm/src/util/runtimeInfo.browser.js → dist/browser/util/runtimeInfo.js} +2 -2
- package/dist/browser/util/timerLoop.d.ts +26 -0
- package/dist/browser/util/timerLoop.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/timerLoop.js +1 -1
- package/{dist-esm/src → dist/browser}/util/timerLoop.js.map +1 -1
- package/dist/browser/util/typeGuards.d.ts +8 -0
- package/dist/browser/util/typeGuards.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/typeGuards.js +2 -2
- package/dist/browser/util/typeGuards.js.map +1 -0
- package/dist/browser/util/utils.d.ts +7 -0
- package/dist/browser/util/utils.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/utils.js +1 -1
- package/{dist-esm/src → dist/browser}/util/utils.js.map +1 -1
- package/dist/browser/withAuth.d.ts +25 -0
- package/dist/browser/withAuth.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/withAuth.js +4 -4
- package/dist/browser/withAuth.js.map +1 -0
- package/dist/commonjs/batchingPartitionChannel.d.ts +94 -0
- package/dist/commonjs/batchingPartitionChannel.d.ts.map +1 -0
- package/dist/commonjs/batchingPartitionChannel.js +252 -0
- package/dist/commonjs/batchingPartitionChannel.js.map +1 -0
- package/dist/commonjs/connectionContext.d.ts +108 -0
- package/dist/commonjs/connectionContext.d.ts.map +1 -0
- package/dist/commonjs/connectionContext.js +322 -0
- package/dist/commonjs/connectionContext.js.map +1 -0
- package/dist/commonjs/dataTransformer.d.ts +53 -0
- package/dist/commonjs/dataTransformer.d.ts.map +1 -0
- package/dist/commonjs/dataTransformer.js +138 -0
- package/dist/commonjs/dataTransformer.js.map +1 -0
- package/dist/commonjs/diagnostics/instrumentEventData.d.ts +28 -0
- package/dist/commonjs/diagnostics/instrumentEventData.d.ts.map +1 -0
- package/dist/commonjs/diagnostics/instrumentEventData.js +73 -0
- package/dist/commonjs/diagnostics/instrumentEventData.js.map +1 -0
- package/dist/commonjs/diagnostics/tracing.d.ts +19 -0
- package/dist/commonjs/diagnostics/tracing.d.ts.map +1 -0
- package/dist/commonjs/diagnostics/tracing.js +44 -0
- package/dist/commonjs/diagnostics/tracing.js.map +1 -0
- package/dist/commonjs/eventData.d.ts +295 -0
- package/dist/commonjs/eventData.d.ts.map +1 -0
- package/dist/commonjs/eventData.js +253 -0
- package/dist/commonjs/eventData.js.map +1 -0
- package/dist/commonjs/eventDataAdapter.d.ts +69 -0
- package/dist/commonjs/eventDataAdapter.d.ts.map +1 -0
- package/dist/commonjs/eventDataAdapter.js +38 -0
- package/dist/commonjs/eventDataAdapter.js.map +1 -0
- package/dist/commonjs/eventDataBatch.d.ts +225 -0
- package/dist/commonjs/eventDataBatch.d.ts.map +1 -0
- package/dist/commonjs/eventDataBatch.js +254 -0
- package/dist/commonjs/eventDataBatch.js.map +1 -0
- package/dist/commonjs/eventHubBufferedProducerClient.d.ts +323 -0
- package/dist/commonjs/eventHubBufferedProducerClient.d.ts.map +1 -0
- package/dist/commonjs/eventHubBufferedProducerClient.js +289 -0
- package/dist/commonjs/eventHubBufferedProducerClient.js.map +1 -0
- package/dist/commonjs/eventHubConsumerClient.d.ts +277 -0
- package/dist/commonjs/eventHubConsumerClient.d.ts.map +1 -0
- package/dist/commonjs/eventHubConsumerClient.js +298 -0
- package/dist/commonjs/eventHubConsumerClient.js.map +1 -0
- package/dist/commonjs/eventHubConsumerClientModels.d.ts +218 -0
- package/dist/commonjs/eventHubConsumerClientModels.d.ts.map +1 -0
- package/dist/commonjs/eventHubConsumerClientModels.js +5 -0
- package/dist/commonjs/eventHubConsumerClientModels.js.map +1 -0
- package/dist/commonjs/eventHubProducerClient.d.ts +266 -0
- package/dist/commonjs/eventHubProducerClient.d.ts.map +1 -0
- package/dist/commonjs/eventHubProducerClient.js +319 -0
- package/dist/commonjs/eventHubProducerClient.js.map +1 -0
- package/dist/commonjs/eventHubSender.d.ts +227 -0
- package/dist/commonjs/eventHubSender.d.ts.map +1 -0
- package/dist/commonjs/eventHubSender.js +547 -0
- package/dist/commonjs/eventHubSender.js.map +1 -0
- package/dist/commonjs/eventPosition.d.ts +73 -0
- package/dist/commonjs/eventPosition.d.ts.map +1 -0
- package/dist/commonjs/eventPosition.js +128 -0
- package/dist/commonjs/eventPosition.js.map +1 -0
- package/dist/commonjs/eventProcessor.d.ts +232 -0
- package/dist/commonjs/eventProcessor.d.ts.map +1 -0
- package/dist/commonjs/eventProcessor.js +371 -0
- package/dist/commonjs/eventProcessor.js.map +1 -0
- package/dist/commonjs/eventhubConnectionConfig.d.ts +96 -0
- package/dist/commonjs/eventhubConnectionConfig.d.ts.map +1 -0
- package/dist/commonjs/eventhubConnectionConfig.js +101 -0
- package/dist/commonjs/eventhubConnectionConfig.js.map +1 -0
- package/dist/commonjs/impl/awaitableQueue.d.ts +25 -0
- package/dist/commonjs/impl/awaitableQueue.d.ts.map +1 -0
- package/dist/commonjs/impl/awaitableQueue.js +51 -0
- package/dist/commonjs/impl/awaitableQueue.js.map +1 -0
- package/dist/commonjs/impl/partitionAssigner.d.ts +29 -0
- package/dist/commonjs/impl/partitionAssigner.d.ts.map +1 -0
- package/dist/commonjs/impl/partitionAssigner.js +58 -0
- package/dist/commonjs/impl/partitionAssigner.js.map +1 -0
- package/dist/commonjs/impl/partitionGate.d.ts +27 -0
- package/dist/commonjs/impl/partitionGate.d.ts.map +1 -0
- package/dist/commonjs/impl/partitionGate.js +44 -0
- package/dist/commonjs/impl/partitionGate.js.map +1 -0
- package/dist/commonjs/impl/partitionKeyToIdMapper.d.ts +6 -0
- package/dist/commonjs/impl/partitionKeyToIdMapper.d.ts.map +1 -0
- package/dist/commonjs/impl/partitionKeyToIdMapper.js +115 -0
- package/dist/commonjs/impl/partitionKeyToIdMapper.js.map +1 -0
- package/dist/commonjs/inMemoryCheckpointStore.d.ts +44 -0
- package/dist/commonjs/inMemoryCheckpointStore.d.ts.map +1 -0
- package/dist/commonjs/inMemoryCheckpointStore.js +96 -0
- package/dist/commonjs/inMemoryCheckpointStore.js.map +1 -0
- package/dist/commonjs/index.d.ts +21 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +26 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/loadBalancerStrategies/balancedStrategy.d.ts +30 -0
- package/dist/commonjs/loadBalancerStrategies/balancedStrategy.d.ts.map +1 -0
- package/dist/commonjs/loadBalancerStrategies/balancedStrategy.js +43 -0
- package/dist/commonjs/loadBalancerStrategies/balancedStrategy.js.map +1 -0
- package/dist/commonjs/loadBalancerStrategies/greedyStrategy.d.ts +24 -0
- package/dist/commonjs/loadBalancerStrategies/greedyStrategy.d.ts.map +1 -0
- package/dist/commonjs/loadBalancerStrategies/greedyStrategy.js +32 -0
- package/dist/commonjs/loadBalancerStrategies/greedyStrategy.js.map +1 -0
- package/dist/commonjs/loadBalancerStrategies/loadBalancingStrategy.d.ts +28 -0
- package/dist/commonjs/loadBalancerStrategies/loadBalancingStrategy.d.ts.map +1 -0
- package/dist/commonjs/loadBalancerStrategies/loadBalancingStrategy.js +248 -0
- package/dist/commonjs/loadBalancerStrategies/loadBalancingStrategy.js.map +1 -0
- package/dist/commonjs/loadBalancerStrategies/unbalancedStrategy.d.ts +20 -0
- package/dist/commonjs/loadBalancerStrategies/unbalancedStrategy.d.ts.map +1 -0
- package/dist/commonjs/loadBalancerStrategies/unbalancedStrategy.js +26 -0
- package/dist/commonjs/loadBalancerStrategies/unbalancedStrategy.js.map +1 -0
- package/dist/commonjs/logger.d.ts +37 -0
- package/dist/commonjs/logger.d.ts.map +1 -0
- package/dist/commonjs/logger.js +65 -0
- package/dist/commonjs/logger.js.map +1 -0
- package/dist/commonjs/managementClient.d.ts +145 -0
- package/dist/commonjs/managementClient.d.ts.map +1 -0
- package/dist/commonjs/managementClient.js +275 -0
- package/dist/commonjs/managementClient.js.map +1 -0
- package/dist/commonjs/models/private.d.ts +185 -0
- package/dist/commonjs/models/private.d.ts.map +1 -0
- package/dist/commonjs/models/private.js +5 -0
- package/dist/commonjs/models/private.js.map +1 -0
- package/dist/commonjs/models/public.d.ts +240 -0
- package/dist/commonjs/models/public.d.ts.map +1 -0
- package/dist/commonjs/models/public.js +21 -0
- package/dist/commonjs/models/public.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/partitionProcessor.d.ts +134 -0
- package/dist/commonjs/partitionProcessor.d.ts.map +1 -0
- package/dist/commonjs/partitionProcessor.js +138 -0
- package/dist/commonjs/partitionProcessor.js.map +1 -0
- package/dist/commonjs/partitionPump.d.ts +38 -0
- package/dist/commonjs/partitionPump.d.ts.map +1 -0
- package/dist/commonjs/partitionPump.js +171 -0
- package/dist/commonjs/partitionPump.js.map +1 -0
- package/dist/commonjs/partitionReceiver.d.ts +82 -0
- package/dist/commonjs/partitionReceiver.d.ts.map +1 -0
- package/dist/commonjs/partitionReceiver.js +335 -0
- package/dist/commonjs/partitionReceiver.js.map +1 -0
- package/dist/commonjs/pumpManager.d.ts +72 -0
- package/dist/commonjs/pumpManager.d.ts.map +1 -0
- package/dist/commonjs/pumpManager.js +122 -0
- package/dist/commonjs/pumpManager.js.map +1 -0
- package/{types/latest → dist/commonjs}/tsdoc-metadata.json +1 -1
- package/dist/commonjs/util/connectionStringUtils.d.ts +52 -0
- package/dist/commonjs/util/connectionStringUtils.d.ts.map +1 -0
- package/dist/commonjs/util/connectionStringUtils.js +51 -0
- package/dist/commonjs/util/connectionStringUtils.js.map +1 -0
- package/dist/commonjs/util/constants.d.ts +25 -0
- package/dist/commonjs/util/constants.d.ts.map +1 -0
- package/dist/commonjs/util/constants.js +30 -0
- package/dist/commonjs/util/constants.js.map +1 -0
- package/dist/commonjs/util/delayWithoutThrow.d.ts +8 -0
- package/dist/commonjs/util/delayWithoutThrow.d.ts.map +1 -0
- package/dist/commonjs/util/delayWithoutThrow.js +20 -0
- package/dist/commonjs/util/delayWithoutThrow.js.map +1 -0
- package/dist/commonjs/util/error.d.ts +39 -0
- package/dist/commonjs/util/error.d.ts.map +1 -0
- package/dist/commonjs/util/error.js +110 -0
- package/dist/commonjs/util/error.js.map +1 -0
- package/dist/commonjs/util/getPromiseParts.d.ts +10 -0
- package/dist/commonjs/util/getPromiseParts.d.ts.map +1 -0
- package/dist/commonjs/util/getPromiseParts.js +23 -0
- package/dist/commonjs/util/getPromiseParts.js.map +1 -0
- package/dist/commonjs/util/operationOptions.d.ts +16 -0
- package/dist/commonjs/util/operationOptions.d.ts.map +1 -0
- package/dist/commonjs/util/operationOptions.js +5 -0
- package/dist/commonjs/util/operationOptions.js.map +1 -0
- package/dist/commonjs/util/parseEndpoint.d.ts +11 -0
- package/dist/commonjs/util/parseEndpoint.d.ts.map +1 -0
- package/dist/commonjs/util/parseEndpoint.js +20 -0
- package/dist/commonjs/util/parseEndpoint.js.map +1 -0
- package/dist/commonjs/util/retries.d.ts +6 -0
- package/dist/commonjs/util/retries.d.ts.map +1 -0
- package/dist/commonjs/util/retries.js +16 -0
- package/dist/commonjs/util/retries.js.map +1 -0
- package/dist/commonjs/util/runtimeInfo.d.ts +6 -0
- package/dist/commonjs/util/runtimeInfo.d.ts.map +1 -0
- package/dist/commonjs/util/runtimeInfo.js +15 -0
- package/dist/commonjs/util/runtimeInfo.js.map +1 -0
- package/dist/commonjs/util/timerLoop.d.ts +26 -0
- package/dist/commonjs/util/timerLoop.d.ts.map +1 -0
- package/dist/commonjs/util/timerLoop.js +30 -0
- package/dist/commonjs/util/timerLoop.js.map +1 -0
- package/dist/commonjs/util/typeGuards.d.ts +8 -0
- package/dist/commonjs/util/typeGuards.d.ts.map +1 -0
- package/dist/commonjs/util/typeGuards.js +15 -0
- package/dist/commonjs/util/typeGuards.js.map +1 -0
- package/dist/commonjs/util/utils.d.ts +7 -0
- package/dist/commonjs/util/utils.d.ts.map +1 -0
- package/dist/commonjs/util/utils.js +16 -0
- package/dist/commonjs/util/utils.js.map +1 -0
- package/dist/commonjs/withAuth.d.ts +25 -0
- package/dist/commonjs/withAuth.d.ts.map +1 -0
- package/dist/commonjs/withAuth.js +88 -0
- package/dist/commonjs/withAuth.js.map +1 -0
- package/dist/esm/batchingPartitionChannel.d.ts +94 -0
- package/dist/esm/batchingPartitionChannel.d.ts.map +1 -0
- package/dist/esm/batchingPartitionChannel.js +248 -0
- package/dist/esm/batchingPartitionChannel.js.map +1 -0
- package/dist/esm/connectionContext.d.ts +108 -0
- package/dist/esm/connectionContext.d.ts.map +1 -0
- package/dist/esm/connectionContext.js +318 -0
- package/dist/esm/connectionContext.js.map +1 -0
- package/dist/esm/dataTransformer.d.ts +53 -0
- package/dist/esm/dataTransformer.d.ts.map +1 -0
- package/dist/esm/dataTransformer.js +133 -0
- package/dist/esm/dataTransformer.js.map +1 -0
- package/dist/esm/diagnostics/instrumentEventData.d.ts +28 -0
- package/dist/esm/diagnostics/instrumentEventData.d.ts.map +1 -0
- package/dist/esm/diagnostics/instrumentEventData.js +68 -0
- package/dist/esm/diagnostics/instrumentEventData.js.map +1 -0
- package/dist/esm/diagnostics/tracing.d.ts +19 -0
- package/dist/esm/diagnostics/tracing.d.ts.map +1 -0
- package/dist/esm/diagnostics/tracing.js +40 -0
- package/dist/esm/diagnostics/tracing.js.map +1 -0
- package/dist/esm/eventData.d.ts +295 -0
- package/dist/esm/eventData.d.ts.map +1 -0
- package/dist/esm/eventData.js +245 -0
- package/dist/esm/eventData.js.map +1 -0
- package/dist/esm/eventDataAdapter.d.ts +69 -0
- package/dist/esm/eventDataAdapter.d.ts.map +1 -0
- package/dist/esm/eventDataAdapter.js +35 -0
- package/dist/esm/eventDataAdapter.js.map +1 -0
- package/dist/esm/eventDataBatch.d.ts +225 -0
- package/dist/esm/eventDataBatch.d.ts.map +1 -0
- package/dist/esm/eventDataBatch.js +249 -0
- package/dist/esm/eventDataBatch.js.map +1 -0
- package/dist/esm/eventHubBufferedProducerClient.d.ts +323 -0
- package/dist/esm/eventHubBufferedProducerClient.d.ts.map +1 -0
- package/dist/esm/eventHubBufferedProducerClient.js +285 -0
- package/dist/esm/eventHubBufferedProducerClient.js.map +1 -0
- package/dist/esm/eventHubConsumerClient.d.ts +277 -0
- package/dist/esm/eventHubConsumerClient.d.ts.map +1 -0
- package/dist/esm/eventHubConsumerClient.js +293 -0
- package/dist/esm/eventHubConsumerClient.js.map +1 -0
- package/dist/esm/eventHubConsumerClientModels.d.ts +218 -0
- package/dist/esm/eventHubConsumerClientModels.d.ts.map +1 -0
- package/dist/esm/eventHubConsumerClientModels.js +4 -0
- package/dist/esm/eventHubConsumerClientModels.js.map +1 -0
- package/dist/esm/eventHubProducerClient.d.ts +266 -0
- package/dist/esm/eventHubProducerClient.d.ts.map +1 -0
- package/dist/esm/eventHubProducerClient.js +315 -0
- package/dist/esm/eventHubProducerClient.js.map +1 -0
- package/dist/esm/eventHubSender.d.ts +227 -0
- package/dist/esm/eventHubSender.d.ts.map +1 -0
- package/dist/esm/eventHubSender.js +541 -0
- package/dist/esm/eventHubSender.js.map +1 -0
- package/dist/esm/eventPosition.d.ts +73 -0
- package/dist/esm/eventPosition.d.ts.map +1 -0
- package/dist/esm/eventPosition.js +121 -0
- package/dist/esm/eventPosition.js.map +1 -0
- package/dist/esm/eventProcessor.d.ts +232 -0
- package/dist/esm/eventProcessor.d.ts.map +1 -0
- package/dist/esm/eventProcessor.js +367 -0
- package/dist/esm/eventProcessor.js.map +1 -0
- package/dist/esm/eventhubConnectionConfig.d.ts +96 -0
- package/dist/esm/eventhubConnectionConfig.d.ts.map +1 -0
- package/dist/esm/eventhubConnectionConfig.js +98 -0
- package/dist/esm/eventhubConnectionConfig.js.map +1 -0
- package/dist/esm/impl/awaitableQueue.d.ts +25 -0
- package/dist/esm/impl/awaitableQueue.d.ts.map +1 -0
- package/dist/esm/impl/awaitableQueue.js +47 -0
- package/dist/esm/impl/awaitableQueue.js.map +1 -0
- package/dist/esm/impl/partitionAssigner.d.ts +29 -0
- package/dist/esm/impl/partitionAssigner.d.ts.map +1 -0
- package/dist/esm/impl/partitionAssigner.js +54 -0
- package/dist/esm/impl/partitionAssigner.js.map +1 -0
- package/dist/esm/impl/partitionGate.d.ts +27 -0
- package/dist/esm/impl/partitionGate.d.ts.map +1 -0
- package/dist/esm/impl/partitionGate.js +40 -0
- package/dist/esm/impl/partitionGate.js.map +1 -0
- package/dist/esm/impl/partitionKeyToIdMapper.d.ts +6 -0
- package/dist/esm/impl/partitionKeyToIdMapper.d.ts.map +1 -0
- package/dist/esm/impl/partitionKeyToIdMapper.js +111 -0
- package/dist/esm/impl/partitionKeyToIdMapper.js.map +1 -0
- package/dist/esm/inMemoryCheckpointStore.d.ts +44 -0
- package/dist/esm/inMemoryCheckpointStore.d.ts.map +1 -0
- package/dist/esm/inMemoryCheckpointStore.js +92 -0
- package/dist/esm/inMemoryCheckpointStore.js.map +1 -0
- package/dist/esm/index.d.ts +21 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loadBalancerStrategies/balancedStrategy.d.ts +30 -0
- package/dist/esm/loadBalancerStrategies/balancedStrategy.d.ts.map +1 -0
- package/dist/esm/loadBalancerStrategies/balancedStrategy.js +39 -0
- package/dist/esm/loadBalancerStrategies/balancedStrategy.js.map +1 -0
- package/dist/esm/loadBalancerStrategies/greedyStrategy.d.ts +24 -0
- package/dist/esm/loadBalancerStrategies/greedyStrategy.d.ts.map +1 -0
- package/dist/esm/loadBalancerStrategies/greedyStrategy.js +28 -0
- package/dist/esm/loadBalancerStrategies/greedyStrategy.js.map +1 -0
- package/dist/esm/loadBalancerStrategies/loadBalancingStrategy.d.ts +28 -0
- package/dist/esm/loadBalancerStrategies/loadBalancingStrategy.d.ts.map +1 -0
- package/dist/esm/loadBalancerStrategies/loadBalancingStrategy.js +245 -0
- package/dist/esm/loadBalancerStrategies/loadBalancingStrategy.js.map +1 -0
- package/dist/esm/loadBalancerStrategies/unbalancedStrategy.d.ts +20 -0
- package/dist/esm/loadBalancerStrategies/unbalancedStrategy.d.ts.map +1 -0
- package/dist/esm/loadBalancerStrategies/unbalancedStrategy.js +22 -0
- package/dist/esm/loadBalancerStrategies/unbalancedStrategy.js.map +1 -0
- package/dist/esm/logger.d.ts +37 -0
- package/dist/esm/logger.d.ts.map +1 -0
- package/dist/esm/logger.js +56 -0
- package/dist/esm/logger.js.map +1 -0
- package/dist/esm/managementClient.d.ts +145 -0
- package/dist/esm/managementClient.d.ts.map +1 -0
- package/dist/esm/managementClient.js +271 -0
- package/dist/esm/managementClient.js.map +1 -0
- package/dist/esm/models/private.d.ts +185 -0
- package/dist/esm/models/private.d.ts.map +1 -0
- package/dist/esm/models/private.js +4 -0
- package/dist/esm/models/private.js.map +1 -0
- package/dist/esm/models/public.d.ts +240 -0
- package/dist/esm/models/public.d.ts.map +1 -0
- package/dist/esm/models/public.js +18 -0
- package/dist/esm/models/public.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/partitionProcessor.d.ts +134 -0
- package/dist/esm/partitionProcessor.d.ts.map +1 -0
- package/dist/esm/partitionProcessor.js +134 -0
- package/dist/esm/partitionProcessor.js.map +1 -0
- package/dist/esm/partitionPump.d.ts +38 -0
- package/dist/esm/partitionPump.d.ts.map +1 -0
- package/dist/esm/partitionPump.js +166 -0
- package/dist/esm/partitionPump.js.map +1 -0
- package/dist/esm/partitionReceiver.d.ts +82 -0
- package/dist/esm/partitionReceiver.d.ts.map +1 -0
- package/dist/esm/partitionReceiver.js +330 -0
- package/dist/esm/partitionReceiver.js.map +1 -0
- package/dist/esm/pumpManager.d.ts +72 -0
- package/dist/esm/pumpManager.d.ts.map +1 -0
- package/dist/esm/pumpManager.js +118 -0
- package/dist/esm/pumpManager.js.map +1 -0
- package/dist/esm/util/connectionStringUtils.d.ts +52 -0
- package/dist/esm/util/connectionStringUtils.d.ts.map +1 -0
- package/dist/esm/util/connectionStringUtils.js +48 -0
- package/dist/esm/util/connectionStringUtils.js.map +1 -0
- package/dist/esm/util/constants.d.ts +25 -0
- package/dist/esm/util/constants.d.ts.map +1 -0
- package/dist/esm/util/constants.js +27 -0
- package/dist/esm/util/constants.js.map +1 -0
- package/dist/esm/util/delayWithoutThrow.d.ts +8 -0
- package/dist/esm/util/delayWithoutThrow.d.ts.map +1 -0
- package/dist/esm/util/delayWithoutThrow.js +17 -0
- package/dist/esm/util/delayWithoutThrow.js.map +1 -0
- package/dist/esm/util/error.d.ts +39 -0
- package/dist/esm/util/error.d.ts.map +1 -0
- package/dist/esm/util/error.js +103 -0
- package/dist/esm/util/error.js.map +1 -0
- package/dist/esm/util/getPromiseParts.d.ts +10 -0
- package/dist/esm/util/getPromiseParts.d.ts.map +1 -0
- package/dist/esm/util/getPromiseParts.js +20 -0
- package/dist/esm/util/getPromiseParts.js.map +1 -0
- package/dist/esm/util/operationOptions.d.ts +16 -0
- package/dist/esm/util/operationOptions.d.ts.map +1 -0
- package/dist/esm/util/operationOptions.js +4 -0
- package/dist/esm/util/operationOptions.js.map +1 -0
- package/dist/esm/util/parseEndpoint.d.ts +11 -0
- package/dist/esm/util/parseEndpoint.d.ts.map +1 -0
- package/dist/esm/util/parseEndpoint.js +17 -0
- package/dist/esm/util/parseEndpoint.js.map +1 -0
- package/dist/esm/util/retries.d.ts +6 -0
- package/dist/esm/util/retries.d.ts.map +1 -0
- package/dist/esm/util/retries.js +13 -0
- package/dist/esm/util/retries.js.map +1 -0
- package/dist/esm/util/runtimeInfo.d.ts +6 -0
- package/dist/esm/util/runtimeInfo.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/util/runtimeInfo.js +1 -1
- package/{dist-esm/src → dist/esm}/util/runtimeInfo.js.map +1 -1
- package/dist/esm/util/timerLoop.d.ts +26 -0
- package/dist/esm/util/timerLoop.d.ts.map +1 -0
- package/dist/esm/util/timerLoop.js +27 -0
- package/dist/esm/util/timerLoop.js.map +1 -0
- package/dist/esm/util/typeGuards.d.ts +8 -0
- package/dist/esm/util/typeGuards.d.ts.map +1 -0
- package/dist/esm/util/typeGuards.js +12 -0
- package/dist/esm/util/typeGuards.js.map +1 -0
- package/dist/esm/util/utils.d.ts +7 -0
- package/dist/esm/util/utils.d.ts.map +1 -0
- package/dist/esm/util/utils.js +13 -0
- package/dist/esm/util/utils.js.map +1 -0
- package/dist/esm/withAuth.d.ts +25 -0
- package/dist/esm/withAuth.d.ts.map +1 -0
- package/dist/esm/withAuth.js +84 -0
- package/dist/esm/withAuth.js.map +1 -0
- package/package.json +85 -80
- package/dist/index.js +0 -5372
- package/dist/index.js.map +0 -1
- package/dist-esm/src/batchingPartitionChannel.js.map +0 -1
- package/dist-esm/src/connectionContext.js.map +0 -1
- package/dist-esm/src/dataTransformer.js.map +0 -1
- package/dist-esm/src/diagnostics/instrumentEventData.js.map +0 -1
- package/dist-esm/src/diagnostics/tracing.js.map +0 -1
- package/dist-esm/src/eventData.js.map +0 -1
- package/dist-esm/src/eventDataAdapter.js.map +0 -1
- package/dist-esm/src/eventDataBatch.js.map +0 -1
- package/dist-esm/src/eventHubBufferedProducerClient.js.map +0 -1
- package/dist-esm/src/eventHubConsumerClient.js.map +0 -1
- package/dist-esm/src/eventHubConsumerClientModels.js +0 -4
- package/dist-esm/src/eventHubConsumerClientModels.js.map +0 -1
- package/dist-esm/src/eventHubProducerClient.js.map +0 -1
- package/dist-esm/src/eventHubSender.js.map +0 -1
- package/dist-esm/src/eventPosition.js.map +0 -1
- package/dist-esm/src/eventProcessor.js.map +0 -1
- package/dist-esm/src/eventhubConnectionConfig.js.map +0 -1
- package/dist-esm/src/impl/awaitableQueue.js.map +0 -1
- package/dist-esm/src/impl/partitionAssigner.js.map +0 -1
- package/dist-esm/src/inMemoryCheckpointStore.js.map +0 -1
- package/dist-esm/src/index.js.map +0 -1
- package/dist-esm/src/loadBalancerStrategies/balancedStrategy.js.map +0 -1
- package/dist-esm/src/loadBalancerStrategies/greedyStrategy.js.map +0 -1
- package/dist-esm/src/loadBalancerStrategies/loadBalancingStrategy.js.map +0 -1
- package/dist-esm/src/loadBalancerStrategies/unbalancedStrategy.js.map +0 -1
- package/dist-esm/src/logger.js.map +0 -1
- package/dist-esm/src/managementClient.js.map +0 -1
- package/dist-esm/src/models/private.js +0 -4
- package/dist-esm/src/models/private.js.map +0 -1
- package/dist-esm/src/models/public.js.map +0 -1
- package/dist-esm/src/partitionProcessor.js.map +0 -1
- package/dist-esm/src/partitionPump.js.map +0 -1
- package/dist-esm/src/partitionReceiver.js.map +0 -1
- package/dist-esm/src/pumpManager.js.map +0 -1
- package/dist-esm/src/util/constants.js.map +0 -1
- package/dist-esm/src/util/delayWithoutThrow.js.map +0 -1
- package/dist-esm/src/util/error.js.map +0 -1
- package/dist-esm/src/util/operationOptions.js +0 -4
- package/dist-esm/src/util/operationOptions.js.map +0 -1
- package/dist-esm/src/util/retries.js.map +0 -1
- package/dist-esm/src/util/runtimeInfo.browser.js.map +0 -1
- package/dist-esm/src/util/typeGuards.js.map +0 -1
- package/dist-esm/src/withAuth.js.map +0 -1
- package/types/latest/event-hubs.d.ts +0 -1877
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { logger } from "./logger.js";
|
|
4
|
+
/**
|
|
5
|
+
* The `PartitionProcessor` is responsible for processing events received from Event Hubs when using `EventProcessor`
|
|
6
|
+
*
|
|
7
|
+
* The EventProcessor creates a new instance of the PartitionProcessor for each partition of the event hub it starts processing. When you extend the `PartitionProcessor` in order to customize it as you see fit,
|
|
8
|
+
* - Override the `processEvents()` method to add the code to process the received events. This is also a good place to update the checkpoints using the `updateCheckpoint()` method
|
|
9
|
+
* - Optionally override the `processError()` method to handle any error that might have occurred when processing the events.
|
|
10
|
+
* - Optionally override the `initialize()` method to implement any set up related tasks you would want to carry out before starting to receive events from the partition
|
|
11
|
+
* - Optionally override the `close()` method to implement any tear down or clean up tasks you would want to carry out.
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export class PartitionProcessor {
|
|
15
|
+
constructor(_eventHandlers, _checkpointStore, _context) {
|
|
16
|
+
this._eventHandlers = _eventHandlers;
|
|
17
|
+
this._checkpointStore = _checkpointStore;
|
|
18
|
+
this._context = _context;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Information on the last enqueued event in the partition that is being processed.
|
|
22
|
+
* This property is updated by the `EventProcessor` if the `trackLastEnqueuedEventProperties` option is set to true
|
|
23
|
+
* when creating an instance of EventProcessor
|
|
24
|
+
* @readonly
|
|
25
|
+
*/
|
|
26
|
+
get lastEnqueuedEventProperties() {
|
|
27
|
+
return this._lastEnqueuedEventProperties;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Information on the last enqueued event in the partition that is being processed.
|
|
31
|
+
* This property is updated by the `EventProcessor` if the `trackLastEnqueuedEventProperties` option is set to true
|
|
32
|
+
* when creating an instance of EventProcessor
|
|
33
|
+
*/
|
|
34
|
+
set lastEnqueuedEventProperties(properties) {
|
|
35
|
+
this._lastEnqueuedEventProperties = properties;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The fully qualified namespace from where the current partition is being processed. It is set by the `EventProcessor`
|
|
39
|
+
* @readonly
|
|
40
|
+
*/
|
|
41
|
+
get fullyQualifiedNamespace() {
|
|
42
|
+
return this._context.fullyQualifiedNamespace;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The name of the consumer group from where the current partition is being processed. It is set by the `EventProcessor`
|
|
46
|
+
* @readonly
|
|
47
|
+
*/
|
|
48
|
+
get consumerGroup() {
|
|
49
|
+
return this._context.consumerGroup;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The name of the event hub to which the current partition belongs. It is set by the `EventProcessor`
|
|
53
|
+
* @readonly
|
|
54
|
+
*/
|
|
55
|
+
get eventHubName() {
|
|
56
|
+
return this._context.eventHubName;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The identifier of the Event Hub partition that is being processed. It is set by the `EventProcessor`
|
|
60
|
+
* @readonly
|
|
61
|
+
*/
|
|
62
|
+
get partitionId() {
|
|
63
|
+
return this._context.partitionId;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The unique identifier of the `EventProcessor` that has spawned the current instance of `PartitionProcessor`. This is set by the `EventProcessor`
|
|
67
|
+
*/
|
|
68
|
+
get eventProcessorId() {
|
|
69
|
+
return this._context.eventProcessorId;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* This method is called when the `EventProcessor` takes ownership of a new partition and before any
|
|
73
|
+
* events are received.
|
|
74
|
+
*/
|
|
75
|
+
async initialize() {
|
|
76
|
+
var _a, _b;
|
|
77
|
+
return (_b = (_a = this._eventHandlers).processInitialize) === null || _b === void 0 ? void 0 : _b.call(_a, this);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* This method is called before the partition processor is closed by the EventProcessor.
|
|
81
|
+
*
|
|
82
|
+
* @param reason - The reason for closing this partition processor.
|
|
83
|
+
*/
|
|
84
|
+
async close(reason) {
|
|
85
|
+
if (this._eventHandlers.processClose) {
|
|
86
|
+
await this._eventHandlers.processClose(reason, this);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* This method is called when new events are received.
|
|
91
|
+
*
|
|
92
|
+
* This is also a good place to update checkpoints as appropriate.
|
|
93
|
+
*
|
|
94
|
+
* @param event - The received events to be processed.
|
|
95
|
+
*/
|
|
96
|
+
async processEvents(events) {
|
|
97
|
+
await this._eventHandlers.processEvents(events, this);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* This method is called when an error occurs while receiving events from Event Hubs.
|
|
101
|
+
*
|
|
102
|
+
* @param error - The error to be processed.
|
|
103
|
+
*/
|
|
104
|
+
async processError(error) {
|
|
105
|
+
if (this._eventHandlers.processError) {
|
|
106
|
+
try {
|
|
107
|
+
await this._eventHandlers.processError(error, this);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
logger.verbose(`Error thrown from user's processError handler : ${err}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Updates the checkpoint using the event data.
|
|
116
|
+
*
|
|
117
|
+
* A checkpoint is meant to represent the last successfully processed event by the user from a particular
|
|
118
|
+
* partition of a consumer group in an Event Hub instance.
|
|
119
|
+
*
|
|
120
|
+
* @param eventData - The event that you want to update the checkpoint with.
|
|
121
|
+
*/
|
|
122
|
+
async updateCheckpoint(eventData) {
|
|
123
|
+
const checkpoint = {
|
|
124
|
+
fullyQualifiedNamespace: this._context.fullyQualifiedNamespace,
|
|
125
|
+
eventHubName: this._context.eventHubName,
|
|
126
|
+
consumerGroup: this._context.consumerGroup,
|
|
127
|
+
partitionId: this._context.partitionId,
|
|
128
|
+
sequenceNumber: eventData.sequenceNumber,
|
|
129
|
+
offset: eventData.offset,
|
|
130
|
+
};
|
|
131
|
+
await this._checkpointStore.updateCheckpoint(checkpoint);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=partitionProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partitionProcessor.js","sourceRoot":"","sources":["../../src/partitionProcessor.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAWlC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAyCrC;;;;;;;;;GASG;AACH,MAAM,OAAO,kBAAkB;IAG7B,YACU,cAAyC,EACzC,gBAAiC,EACjC,QAEP;QAJO,mBAAc,GAAd,cAAc,CAA2B;QACzC,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,aAAQ,GAAR,QAAQ,CAEf;IACA,CAAC;IAEJ;;;;;OAKG;IACH,IAAW,2BAA2B;QACpC,OAAO,IAAI,CAAC,4BAA6B,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,IAAW,2BAA2B,CAAC,UAAuC;QAC5E,IAAI,CAAC,4BAA4B,GAAG,UAAU,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,IAAW,uBAAuB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAc,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;;QACd,OAAO,MAAA,MAAA,IAAI,CAAC,cAAc,EAAC,iBAAiB,mDAAG,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,KAAY;QAC7B,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,OAAO,CAAC,mDAAmD,GAAG,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,gBAAgB,CAAC,SAA4B;QACxD,MAAM,UAAU,GAAe;YAC7B,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB;YAC9D,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;YACxC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;YAC1C,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;YACtC,cAAc,EAAE,SAAS,CAAC,cAAc;YACxC,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAiB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n BasicPartitionProperties,\n PartitionContext,\n SubscriptionEventHandlers,\n} from \"./eventHubConsumerClientModels.js\";\nimport type { CheckpointStore } from \"./eventProcessor.js\";\nimport type { CloseReason } from \"./models/public.js\";\nimport type { LastEnqueuedEventProperties } from \"./partitionReceiver.js\";\nimport type { ReceivedEventData } from \"./eventData.js\";\nimport { logger } from \"./logger.js\";\n\n/**\n * A checkpoint is meant to represent the last successfully processed event by the user from a particular\n * partition of a consumer group in an Event Hub instance.\n *\n * When the `updateCheckpoint()` method on the `PartitionProcessor` class is called by the user, a\n * `Checkpoint` is created internally. It is then stored in the storage solution implemented by the\n * `CheckpointManager` chosen by the user when creating an `EventProcessor`.\n *\n * Users are never expected to interact with `Checkpoint` directly. This interface exists to support the\n * internal workings of `EventProcessor` and `CheckpointManager`.\n **/\nexport interface Checkpoint {\n /**\n * The fully qualified Event Hubs namespace. This is likely to be similar to\n * <yournamespace>.servicebus.windows.net\n */\n fullyQualifiedNamespace: string;\n /**\n * The event hub name\n */\n eventHubName: string;\n /**\n * The consumer group name\n */\n consumerGroup: string;\n /**\n * The identifier of the Event Hub partition\n */\n partitionId: string;\n /**\n * The sequence number of the event\n */\n sequenceNumber: number;\n /**\n * The offset of the event.\n */\n offset: string;\n}\n\n/**\n * The `PartitionProcessor` is responsible for processing events received from Event Hubs when using `EventProcessor`\n *\n * The EventProcessor creates a new instance of the PartitionProcessor for each partition of the event hub it starts processing. When you extend the `PartitionProcessor` in order to customize it as you see fit,\n * - Override the `processEvents()` method to add the code to process the received events. This is also a good place to update the checkpoints using the `updateCheckpoint()` method\n * - Optionally override the `processError()` method to handle any error that might have occurred when processing the events.\n * - Optionally override the `initialize()` method to implement any set up related tasks you would want to carry out before starting to receive events from the partition\n * - Optionally override the `close()` method to implement any tear down or clean up tasks you would want to carry out.\n * @internal\n */\nexport class PartitionProcessor implements PartitionContext {\n private _lastEnqueuedEventProperties?: LastEnqueuedEventProperties;\n\n constructor(\n private _eventHandlers: SubscriptionEventHandlers,\n private _checkpointStore: CheckpointStore,\n private _context: BasicPartitionProperties & {\n eventProcessorId: string;\n },\n ) {}\n\n /**\n * Information on the last enqueued event in the partition that is being processed.\n * This property is updated by the `EventProcessor` if the `trackLastEnqueuedEventProperties` option is set to true\n * when creating an instance of EventProcessor\n * @readonly\n */\n public get lastEnqueuedEventProperties(): LastEnqueuedEventProperties {\n return this._lastEnqueuedEventProperties!;\n }\n\n /**\n * Information on the last enqueued event in the partition that is being processed.\n * This property is updated by the `EventProcessor` if the `trackLastEnqueuedEventProperties` option is set to true\n * when creating an instance of EventProcessor\n */\n public set lastEnqueuedEventProperties(properties: LastEnqueuedEventProperties) {\n this._lastEnqueuedEventProperties = properties;\n }\n\n /**\n * The fully qualified namespace from where the current partition is being processed. It is set by the `EventProcessor`\n * @readonly\n */\n public get fullyQualifiedNamespace(): string {\n return this._context.fullyQualifiedNamespace;\n }\n\n /**\n * The name of the consumer group from where the current partition is being processed. It is set by the `EventProcessor`\n * @readonly\n */\n public get consumerGroup(): string {\n return this._context.consumerGroup!;\n }\n\n /**\n * The name of the event hub to which the current partition belongs. It is set by the `EventProcessor`\n * @readonly\n */\n public get eventHubName(): string {\n return this._context.eventHubName;\n }\n\n /**\n * The identifier of the Event Hub partition that is being processed. It is set by the `EventProcessor`\n * @readonly\n */\n public get partitionId(): string {\n return this._context.partitionId;\n }\n\n /**\n * The unique identifier of the `EventProcessor` that has spawned the current instance of `PartitionProcessor`. This is set by the `EventProcessor`\n */\n public get eventProcessorId(): string {\n return this._context.eventProcessorId;\n }\n\n /**\n * This method is called when the `EventProcessor` takes ownership of a new partition and before any\n * events are received.\n */\n async initialize(): Promise<void> {\n return this._eventHandlers.processInitialize?.(this);\n }\n\n /**\n * This method is called before the partition processor is closed by the EventProcessor.\n *\n * @param reason - The reason for closing this partition processor.\n */\n async close(reason: CloseReason): Promise<void> {\n if (this._eventHandlers.processClose) {\n await this._eventHandlers.processClose(reason, this);\n }\n }\n\n /**\n * This method is called when new events are received.\n *\n * This is also a good place to update checkpoints as appropriate.\n *\n * @param event - The received events to be processed.\n */\n async processEvents(events: ReceivedEventData[]): Promise<void> {\n await this._eventHandlers.processEvents(events, this);\n }\n\n /**\n * This method is called when an error occurs while receiving events from Event Hubs.\n *\n * @param error - The error to be processed.\n */\n async processError(error: Error): Promise<void> {\n if (this._eventHandlers.processError) {\n try {\n await this._eventHandlers.processError(error, this);\n } catch (err: any) {\n logger.verbose(`Error thrown from user's processError handler : ${err}`);\n }\n }\n }\n\n /**\n * Updates the checkpoint using the event data.\n *\n * A checkpoint is meant to represent the last successfully processed event by the user from a particular\n * partition of a consumer group in an Event Hub instance.\n *\n * @param eventData - The event that you want to update the checkpoint with.\n */\n public async updateCheckpoint(eventData: ReceivedEventData): Promise<void> {\n const checkpoint: Checkpoint = {\n fullyQualifiedNamespace: this._context.fullyQualifiedNamespace,\n eventHubName: this._context.eventHubName,\n consumerGroup: this._context.consumerGroup,\n partitionId: this._context.partitionId,\n sequenceNumber: eventData.sequenceNumber,\n offset: eventData.offset,\n };\n\n await this._checkpointStore!.updateCheckpoint(checkpoint);\n }\n}\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { TracingSpanOptions } from "@azure/core-tracing";
|
|
2
|
+
import { CloseReason } from "./models/public.js";
|
|
3
|
+
import type { CommonEventProcessorOptions } from "./models/private.js";
|
|
4
|
+
import type { ConnectionContext } from "./connectionContext.js";
|
|
5
|
+
import type { EventHubConnectionConfig } from "./eventhubConnectionConfig.js";
|
|
6
|
+
import type { EventPosition } from "./eventPosition.js";
|
|
7
|
+
import type { PartitionProcessor } from "./partitionProcessor.js";
|
|
8
|
+
import type { ReceivedEventData } from "./eventData.js";
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare class PartitionPump {
|
|
13
|
+
private _context;
|
|
14
|
+
private readonly _startPosition;
|
|
15
|
+
private _partitionProcessor;
|
|
16
|
+
private _processorOptions;
|
|
17
|
+
private _receiver;
|
|
18
|
+
private _isReceiving;
|
|
19
|
+
private _isStopped;
|
|
20
|
+
private _abortController;
|
|
21
|
+
constructor(_context: ConnectionContext, partitionProcessor: PartitionProcessor, _startPosition: EventPosition, options: CommonEventProcessorOptions);
|
|
22
|
+
get isReceiving(): boolean;
|
|
23
|
+
start(): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Creates a new `PartitionReceiver` and replaces any existing receiver.
|
|
26
|
+
* @param partitionId - The partition the receiver should read messages from.
|
|
27
|
+
* @param lastSeenSequenceNumber - The sequence number to begin receiving messages from (exclusive).
|
|
28
|
+
* If `-1`, then the PartitionPump's startPosition will be used instead.
|
|
29
|
+
*/
|
|
30
|
+
private _setOrReplaceReceiver;
|
|
31
|
+
private _receiveEvents;
|
|
32
|
+
stop(reason: CloseReason): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
export declare function toProcessingSpanOptions(receivedEvents: ReceivedEventData[], eventHubProperties: Pick<EventHubConnectionConfig, "entityPath" | "host">): TracingSpanOptions;
|
|
38
|
+
//# sourceMappingURL=partitionPump.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partitionPump.d.ts","sourceRoot":"","sources":["../../src/partitionPump.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAG9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD;;GAEG;AACH,qBAAa,aAAa;IAQtB,OAAO,CAAC,QAAQ;IAEhB,OAAO,CAAC,QAAQ,CAAC,cAAc;IATjC,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,gBAAgB,CAAkB;gBAEhC,QAAQ,EAAE,iBAAiB,EACnC,kBAAkB,EAAE,kBAAkB,EACrB,cAAc,EAAE,aAAa,EAC9C,OAAO,EAAE,2BAA2B;IAOtC,IAAW,WAAW,IAAI,OAAO,CAEhC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;YAmCf,cAAc;IAiFtB,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAoB/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,iBAAiB,EAAE,EACnC,kBAAkB,EAAE,IAAI,CAAC,wBAAwB,EAAE,YAAY,GAAG,MAAM,CAAC,GACxE,kBAAkB,CAkBpB"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { logErrorStackTrace, logger } from "./logger.js";
|
|
4
|
+
import { CloseReason } from "./models/public.js";
|
|
5
|
+
import { createReceiver } from "./partitionReceiver.js";
|
|
6
|
+
import { toSpanOptions, tracingClient } from "./diagnostics/tracing.js";
|
|
7
|
+
import { extractSpanContextFromEventData } from "./diagnostics/instrumentEventData.js";
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export class PartitionPump {
|
|
12
|
+
constructor(_context, partitionProcessor, _startPosition, options) {
|
|
13
|
+
this._context = _context;
|
|
14
|
+
this._startPosition = _startPosition;
|
|
15
|
+
this._isReceiving = false;
|
|
16
|
+
this._isStopped = false;
|
|
17
|
+
this._partitionProcessor = partitionProcessor;
|
|
18
|
+
this._processorOptions = options;
|
|
19
|
+
this._abortController = new AbortController();
|
|
20
|
+
}
|
|
21
|
+
get isReceiving() {
|
|
22
|
+
return this._isReceiving;
|
|
23
|
+
}
|
|
24
|
+
async start() {
|
|
25
|
+
this._isReceiving = true;
|
|
26
|
+
try {
|
|
27
|
+
await this._partitionProcessor.initialize();
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
// swallow the error from the user-defined code
|
|
31
|
+
this._partitionProcessor.processError(err);
|
|
32
|
+
}
|
|
33
|
+
// this is intentionally not await'd - the _receiveEvents loop will continue to
|
|
34
|
+
// execute and can be stopped by calling .stop()
|
|
35
|
+
this._receiveEvents(this._partitionProcessor.partitionId);
|
|
36
|
+
logger.info(`Successfully started the receiver for partition "${this._partitionProcessor.partitionId}".`);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Creates a new `PartitionReceiver` and replaces any existing receiver.
|
|
40
|
+
* @param partitionId - The partition the receiver should read messages from.
|
|
41
|
+
* @param lastSeenSequenceNumber - The sequence number to begin receiving messages from (exclusive).
|
|
42
|
+
* If `-1`, then the PartitionPump's startPosition will be used instead.
|
|
43
|
+
*/
|
|
44
|
+
_setOrReplaceReceiver(partitionId, lastSeenSequenceNumber) {
|
|
45
|
+
// Determine what the new EventPosition should be.
|
|
46
|
+
// If this PartitionPump has received events, we'll start from the last
|
|
47
|
+
// seen sequenceNumber (exclusive).
|
|
48
|
+
// Otherwise, use the `_startPosition`.
|
|
49
|
+
const currentEventPosition = lastSeenSequenceNumber >= 0
|
|
50
|
+
? {
|
|
51
|
+
sequenceNumber: lastSeenSequenceNumber,
|
|
52
|
+
isInclusive: false,
|
|
53
|
+
}
|
|
54
|
+
: this._startPosition;
|
|
55
|
+
// Set or replace the PartitionPump's receiver.
|
|
56
|
+
this._receiver = createReceiver(this._context, this._partitionProcessor.consumerGroup, this._partitionProcessor.eventProcessorId, partitionId, currentEventPosition, {
|
|
57
|
+
ownerLevel: this._processorOptions.ownerLevel,
|
|
58
|
+
trackLastEnqueuedEventProperties: this._processorOptions.trackLastEnqueuedEventProperties,
|
|
59
|
+
retryOptions: this._processorOptions.retryOptions,
|
|
60
|
+
skipParsingBodyAsJson: this._processorOptions.skipParsingBodyAsJson,
|
|
61
|
+
prefetchCount: this._processorOptions.prefetchCount,
|
|
62
|
+
});
|
|
63
|
+
return this._receiver;
|
|
64
|
+
}
|
|
65
|
+
async _receiveEvents(partitionId) {
|
|
66
|
+
let lastSeenSequenceNumber = -1;
|
|
67
|
+
let receiver = this._setOrReplaceReceiver(partitionId, lastSeenSequenceNumber);
|
|
68
|
+
while (this._isReceiving) {
|
|
69
|
+
try {
|
|
70
|
+
// Check if the receiver was closed so we can recreate it.
|
|
71
|
+
if (receiver.isClosed) {
|
|
72
|
+
receiver = this._setOrReplaceReceiver(partitionId, lastSeenSequenceNumber);
|
|
73
|
+
}
|
|
74
|
+
const receivedEvents = await receiver.receiveBatch(this._processorOptions.maxBatchSize, this._processorOptions.maxWaitTimeInSeconds, this._abortController.signal);
|
|
75
|
+
if (this._processorOptions.trackLastEnqueuedEventProperties &&
|
|
76
|
+
receiver.lastEnqueuedEventProperties) {
|
|
77
|
+
this._partitionProcessor.lastEnqueuedEventProperties =
|
|
78
|
+
receiver.lastEnqueuedEventProperties;
|
|
79
|
+
}
|
|
80
|
+
// avoid calling user's processEvents handler if the pump was stopped while receiving events
|
|
81
|
+
if (!this._isReceiving) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (receivedEvents.length) {
|
|
85
|
+
lastSeenSequenceNumber = receivedEvents[receivedEvents.length - 1].sequenceNumber;
|
|
86
|
+
}
|
|
87
|
+
await tracingClient.withSpan("PartitionPump.process", {}, () => this._partitionProcessor.processEvents(receivedEvents), toProcessingSpanOptions(receivedEvents, this._context.config));
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
// check if this pump is still receiving
|
|
91
|
+
// it may not be if the EventProcessor was stopped during processEvents
|
|
92
|
+
if (!this._isReceiving) {
|
|
93
|
+
// no longer receiving, so close was called from somewhere else
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
logger.warning(`An error was thrown while receiving or processing events on partition "${this._partitionProcessor.partitionId}"`);
|
|
97
|
+
logErrorStackTrace(err);
|
|
98
|
+
// forward error to user's processError and swallow errors they may throw
|
|
99
|
+
try {
|
|
100
|
+
await this._partitionProcessor.processError(err);
|
|
101
|
+
}
|
|
102
|
+
catch (errorFromUser) {
|
|
103
|
+
// Using verbose over warning because this error is swallowed.
|
|
104
|
+
logger.verbose("An error was thrown by user's processError method: ", errorFromUser);
|
|
105
|
+
}
|
|
106
|
+
// close the partition processor if a non-retryable error was encountered
|
|
107
|
+
if (typeof err !== "object" || !err.retryable) {
|
|
108
|
+
try {
|
|
109
|
+
// If the exception indicates that the partition was stolen (i.e some other consumer with same ownerlevel
|
|
110
|
+
// started consuming the partition), update the closeReason
|
|
111
|
+
if (err.code === "ReceiverDisconnectedError") {
|
|
112
|
+
return await this.stop(CloseReason.OwnershipLost);
|
|
113
|
+
}
|
|
114
|
+
// this will close the pump and will break us out of the while loop
|
|
115
|
+
return await this.stop(CloseReason.Shutdown);
|
|
116
|
+
}
|
|
117
|
+
catch (errorFromStop) {
|
|
118
|
+
// Using verbose over warning because this error is swallowed.
|
|
119
|
+
logger.verbose(`An error occurred while closing the receiver with reason ${CloseReason.Shutdown}: `, errorFromStop);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async stop(reason) {
|
|
126
|
+
var _a;
|
|
127
|
+
if (this._isStopped) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
this._isStopped = true;
|
|
131
|
+
this._isReceiving = false;
|
|
132
|
+
try {
|
|
133
|
+
// Trigger the cancellation before closing the receiver,
|
|
134
|
+
// otherwise the receiver will remove the listener on the abortSignal
|
|
135
|
+
// before it has a chance to be emitted.
|
|
136
|
+
this._abortController.abort();
|
|
137
|
+
await ((_a = this._receiver) === null || _a === void 0 ? void 0 : _a.close());
|
|
138
|
+
await this._partitionProcessor.close(reason);
|
|
139
|
+
}
|
|
140
|
+
catch (err) {
|
|
141
|
+
logger.warning(`An error occurred while closing the receiver: ${err === null || err === void 0 ? void 0 : err.name}: ${err === null || err === void 0 ? void 0 : err.message}`);
|
|
142
|
+
logErrorStackTrace(err);
|
|
143
|
+
this._partitionProcessor.processError(err);
|
|
144
|
+
throw err;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* @internal
|
|
150
|
+
*/
|
|
151
|
+
export function toProcessingSpanOptions(receivedEvents, eventHubProperties) {
|
|
152
|
+
const spanLinks = [];
|
|
153
|
+
for (const receivedEvent of receivedEvents) {
|
|
154
|
+
const tracingContext = extractSpanContextFromEventData(receivedEvent);
|
|
155
|
+
if (tracingContext) {
|
|
156
|
+
spanLinks.push({
|
|
157
|
+
tracingContext,
|
|
158
|
+
attributes: {
|
|
159
|
+
enqueuedTime: receivedEvent.enqueuedTimeUtc.getTime(),
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return Object.assign({ spanLinks, spanKind: "consumer" }, toSpanOptions(eventHubProperties, "process"));
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=partitionPump.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partitionPump.js","sourceRoot":"","sources":["../../src/partitionPump.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TracingSpanOptions, TracingSpanLink } from \"@azure/core-tracing\";\nimport { logErrorStackTrace, logger } from \"./logger.js\";\nimport { CloseReason } from \"./models/public.js\";\nimport type { CommonEventProcessorOptions } from \"./models/private.js\";\nimport type { ConnectionContext } from \"./connectionContext.js\";\nimport type { EventHubConnectionConfig } from \"./eventhubConnectionConfig.js\";\nimport type { PartitionReceiver } from \"./partitionReceiver.js\";\nimport { createReceiver } from \"./partitionReceiver.js\";\nimport type { EventPosition } from \"./eventPosition.js\";\nimport type { MessagingError } from \"@azure/core-amqp\";\nimport type { PartitionProcessor } from \"./partitionProcessor.js\";\nimport type { ReceivedEventData } from \"./eventData.js\";\nimport { toSpanOptions, tracingClient } from \"./diagnostics/tracing.js\";\nimport { extractSpanContextFromEventData } from \"./diagnostics/instrumentEventData.js\";\n\n/**\n * @internal\n */\nexport class PartitionPump {\n private _partitionProcessor: PartitionProcessor;\n private _processorOptions: CommonEventProcessorOptions;\n private _receiver: PartitionReceiver | undefined;\n private _isReceiving: boolean = false;\n private _isStopped: boolean = false;\n private _abortController: AbortController;\n constructor(\n private _context: ConnectionContext,\n partitionProcessor: PartitionProcessor,\n private readonly _startPosition: EventPosition,\n options: CommonEventProcessorOptions,\n ) {\n this._partitionProcessor = partitionProcessor;\n this._processorOptions = options;\n this._abortController = new AbortController();\n }\n\n public get isReceiving(): boolean {\n return this._isReceiving;\n }\n\n async start(): Promise<void> {\n this._isReceiving = true;\n try {\n await this._partitionProcessor.initialize();\n } catch (err) {\n // swallow the error from the user-defined code\n this._partitionProcessor.processError(err as Error);\n }\n\n // this is intentionally not await'd - the _receiveEvents loop will continue to\n // execute and can be stopped by calling .stop()\n this._receiveEvents(this._partitionProcessor.partitionId);\n logger.info(\n `Successfully started the receiver for partition \"${this._partitionProcessor.partitionId}\".`,\n );\n }\n\n /**\n * Creates a new `PartitionReceiver` and replaces any existing receiver.\n * @param partitionId - The partition the receiver should read messages from.\n * @param lastSeenSequenceNumber - The sequence number to begin receiving messages from (exclusive).\n * If `-1`, then the PartitionPump's startPosition will be used instead.\n */\n private _setOrReplaceReceiver(\n partitionId: string,\n lastSeenSequenceNumber: number,\n ): PartitionReceiver {\n // Determine what the new EventPosition should be.\n // If this PartitionPump has received events, we'll start from the last\n // seen sequenceNumber (exclusive).\n // Otherwise, use the `_startPosition`.\n const currentEventPosition: EventPosition =\n lastSeenSequenceNumber >= 0\n ? {\n sequenceNumber: lastSeenSequenceNumber,\n isInclusive: false,\n }\n : this._startPosition;\n\n // Set or replace the PartitionPump's receiver.\n this._receiver = createReceiver(\n this._context,\n this._partitionProcessor.consumerGroup,\n this._partitionProcessor.eventProcessorId,\n partitionId,\n currentEventPosition,\n {\n ownerLevel: this._processorOptions.ownerLevel,\n trackLastEnqueuedEventProperties: this._processorOptions.trackLastEnqueuedEventProperties,\n retryOptions: this._processorOptions.retryOptions,\n skipParsingBodyAsJson: this._processorOptions.skipParsingBodyAsJson,\n prefetchCount: this._processorOptions.prefetchCount,\n },\n );\n\n return this._receiver;\n }\n\n private async _receiveEvents(partitionId: string): Promise<void> {\n let lastSeenSequenceNumber = -1;\n let receiver = this._setOrReplaceReceiver(partitionId, lastSeenSequenceNumber);\n\n while (this._isReceiving) {\n try {\n // Check if the receiver was closed so we can recreate it.\n if (receiver.isClosed) {\n receiver = this._setOrReplaceReceiver(partitionId, lastSeenSequenceNumber);\n }\n\n const receivedEvents = await receiver.receiveBatch(\n this._processorOptions.maxBatchSize,\n this._processorOptions.maxWaitTimeInSeconds,\n this._abortController.signal,\n );\n\n if (\n this._processorOptions.trackLastEnqueuedEventProperties &&\n receiver.lastEnqueuedEventProperties\n ) {\n this._partitionProcessor.lastEnqueuedEventProperties =\n receiver.lastEnqueuedEventProperties;\n }\n // avoid calling user's processEvents handler if the pump was stopped while receiving events\n if (!this._isReceiving) {\n return;\n }\n\n if (receivedEvents.length) {\n lastSeenSequenceNumber = receivedEvents[receivedEvents.length - 1].sequenceNumber;\n }\n\n await tracingClient.withSpan(\n \"PartitionPump.process\",\n {},\n () => this._partitionProcessor.processEvents(receivedEvents),\n toProcessingSpanOptions(receivedEvents, this._context.config),\n );\n } catch (err: any) {\n // check if this pump is still receiving\n // it may not be if the EventProcessor was stopped during processEvents\n if (!this._isReceiving) {\n // no longer receiving, so close was called from somewhere else\n return;\n }\n\n logger.warning(\n `An error was thrown while receiving or processing events on partition \"${this._partitionProcessor.partitionId}\"`,\n );\n logErrorStackTrace(err);\n // forward error to user's processError and swallow errors they may throw\n try {\n await this._partitionProcessor.processError(err as Error);\n } catch (errorFromUser) {\n // Using verbose over warning because this error is swallowed.\n logger.verbose(\"An error was thrown by user's processError method: \", errorFromUser);\n }\n\n // close the partition processor if a non-retryable error was encountered\n if (typeof err !== \"object\" || !(err as MessagingError).retryable) {\n try {\n // If the exception indicates that the partition was stolen (i.e some other consumer with same ownerlevel\n // started consuming the partition), update the closeReason\n if (err.code === \"ReceiverDisconnectedError\") {\n return await this.stop(CloseReason.OwnershipLost);\n }\n // this will close the pump and will break us out of the while loop\n return await this.stop(CloseReason.Shutdown);\n } catch (errorFromStop) {\n // Using verbose over warning because this error is swallowed.\n logger.verbose(\n `An error occurred while closing the receiver with reason ${CloseReason.Shutdown}: `,\n errorFromStop,\n );\n }\n }\n }\n }\n }\n\n async stop(reason: CloseReason): Promise<void> {\n if (this._isStopped) {\n return;\n }\n this._isStopped = true;\n this._isReceiving = false;\n try {\n // Trigger the cancellation before closing the receiver,\n // otherwise the receiver will remove the listener on the abortSignal\n // before it has a chance to be emitted.\n this._abortController.abort();\n await this._receiver?.close();\n await this._partitionProcessor.close(reason);\n } catch (err: any) {\n logger.warning(`An error occurred while closing the receiver: ${err?.name}: ${err?.message}`);\n logErrorStackTrace(err);\n this._partitionProcessor.processError(err);\n throw err;\n }\n }\n}\n\n/**\n * @internal\n */\nexport function toProcessingSpanOptions(\n receivedEvents: ReceivedEventData[],\n eventHubProperties: Pick<EventHubConnectionConfig, \"entityPath\" | \"host\">,\n): TracingSpanOptions {\n const spanLinks: TracingSpanLink[] = [];\n for (const receivedEvent of receivedEvents) {\n const tracingContext = extractSpanContextFromEventData(receivedEvent);\n if (tracingContext) {\n spanLinks.push({\n tracingContext,\n attributes: {\n enqueuedTime: receivedEvent.enqueuedTimeUtc.getTime(),\n },\n });\n }\n }\n return {\n spanLinks,\n spanKind: \"consumer\",\n ...toSpanOptions(eventHubProperties, \"process\"),\n };\n}\n"]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { AbortSignalLike } from "@azure/abort-controller";
|
|
2
|
+
import type { MessagingError } from "@azure/core-amqp";
|
|
3
|
+
import type { ReceivedEventData } from "./eventData.js";
|
|
4
|
+
import type { EventPosition } from "./eventPosition.js";
|
|
5
|
+
import type { ConnectionContext } from "./connectionContext.js";
|
|
6
|
+
import type { PartitionReceiverOptions } from "./models/private.js";
|
|
7
|
+
type Writable<T> = {
|
|
8
|
+
-readonly [P in keyof T]: T[P];
|
|
9
|
+
};
|
|
10
|
+
/** @internal */
|
|
11
|
+
export type WritableReceiver = Writable<PartitionReceiver>;
|
|
12
|
+
/**
|
|
13
|
+
* A set of information about the last enqueued event of a partition, as observed by the consumer as
|
|
14
|
+
* events are received from the Event Hubs service
|
|
15
|
+
*/
|
|
16
|
+
export interface LastEnqueuedEventProperties {
|
|
17
|
+
/**
|
|
18
|
+
* The sequence number of the event that was last enqueued into the Event Hub partition from which
|
|
19
|
+
* this event was received.
|
|
20
|
+
*/
|
|
21
|
+
sequenceNumber?: number;
|
|
22
|
+
/**
|
|
23
|
+
* The date and time, in UTC, that the last event was enqueued into the Event Hub partition from
|
|
24
|
+
* which this event was received.
|
|
25
|
+
*/
|
|
26
|
+
enqueuedOn?: Date;
|
|
27
|
+
/**
|
|
28
|
+
* The offset of the event that was last enqueued into the Event Hub partition from which
|
|
29
|
+
* this event was received.
|
|
30
|
+
*/
|
|
31
|
+
offset?: string;
|
|
32
|
+
/**
|
|
33
|
+
* The date and time, in UTC, that the last event was retrieved from the Event Hub partition.
|
|
34
|
+
*/
|
|
35
|
+
retrievedOn?: Date;
|
|
36
|
+
}
|
|
37
|
+
/** @internal */
|
|
38
|
+
export interface PartitionReceiver {
|
|
39
|
+
readonly checkpoint: number;
|
|
40
|
+
readonly lastEnqueuedEventProperties: LastEnqueuedEventProperties;
|
|
41
|
+
readonly isClosed: boolean;
|
|
42
|
+
readonly close: () => Promise<void>;
|
|
43
|
+
readonly abort: () => Promise<void>;
|
|
44
|
+
readonly isOpen: () => boolean;
|
|
45
|
+
readonly receiveBatch: (maxMessageCount: number, maxWaitTimeInSeconds?: number, abortSignal?: AbortSignalLike) => Promise<ReceivedEventData[]>;
|
|
46
|
+
/** Needed for tests only */
|
|
47
|
+
readonly _onError?: (error: MessagingError | Error) => void;
|
|
48
|
+
readonly connect: (options: ConnectOptions) => Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
interface ConnectOptions {
|
|
51
|
+
abortSignal: AbortSignalLike | undefined;
|
|
52
|
+
timeoutInMs: number;
|
|
53
|
+
}
|
|
54
|
+
/** @internal */
|
|
55
|
+
export declare function createReceiver(ctx: ConnectionContext, consumerGroup: string, consumerId: string, partitionId: string, eventPosition: EventPosition, options?: PartitionReceiverOptions): PartitionReceiver;
|
|
56
|
+
/**
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
export declare function checkOnInterval(waitTimeInMs: number, check: () => boolean, options?: {
|
|
60
|
+
abortSignal?: AbortSignalLike;
|
|
61
|
+
cleanupBeforeAbort?: () => void;
|
|
62
|
+
abortErrorMsg?: string;
|
|
63
|
+
}): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Returns a promise that will resolve when it is time to read from the queue
|
|
66
|
+
* @param maxEventCount - The maximum number of events to receive.
|
|
67
|
+
* @param maxWaitTimeInMs - The maximum time to wait in ms for the queue to contain any events.
|
|
68
|
+
* @param readIntervalWaitTimeInMs - The time interval to wait in ms before checking the queue.
|
|
69
|
+
* @param queue - The queue to read from.
|
|
70
|
+
* @param options - The options bag.
|
|
71
|
+
* @returns a promise that will resolve when it is time to read from the queue
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
export declare function waitForEvents(maxEventCount: number, maxWaitTimeInMs: number, readIntervalWaitTimeInMs: number, queue: unknown[], options?: {
|
|
75
|
+
abortSignal?: AbortSignalLike;
|
|
76
|
+
cleanupBeforeAbort?: () => void;
|
|
77
|
+
receivedAfterWait?: () => void;
|
|
78
|
+
receivedAlready?: () => void;
|
|
79
|
+
receivedNone?: () => void;
|
|
80
|
+
}): Promise<void>;
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=partitionReceiver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partitionReceiver.d.ts","sourceRoot":"","sources":["../../src/partitionReceiver.ts"],"names":[],"mappings":"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"}
|