@azure/service-bus 7.10.0-beta.1 → 7.10.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +114 -57
- package/dist/browser/connectionContext.d.ts +109 -0
- package/dist/browser/connectionContext.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/connectionContext.js +9 -9
- package/dist/browser/connectionContext.js.map +1 -0
- package/dist/browser/constructorHelpers.d.ts +79 -0
- package/dist/browser/constructorHelpers.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/constructorHelpers.js +5 -5
- package/dist/browser/constructorHelpers.js.map +1 -0
- package/dist/browser/core/autoLockRenewer.d.ts +58 -0
- package/dist/browser/core/autoLockRenewer.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/core/autoLockRenewer.js +12 -8
- package/dist/browser/core/autoLockRenewer.js.map +1 -0
- package/dist/browser/core/batchingReceiver.d.ts +120 -0
- package/dist/browser/core/batchingReceiver.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/core/batchingReceiver.js +23 -13
- package/dist/browser/core/batchingReceiver.js.map +1 -0
- package/dist/browser/core/linkEntity.d.ts +192 -0
- package/dist/browser/core/linkEntity.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/core/linkEntity.js +77 -14
- package/dist/browser/core/linkEntity.js.map +1 -0
- package/dist/browser/core/managementClient.d.ts +312 -0
- package/dist/browser/core/managementClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/core/managementClient.js +37 -33
- package/dist/browser/core/managementClient.js.map +1 -0
- package/dist/browser/core/messageReceiver.d.ts +147 -0
- package/dist/browser/core/messageReceiver.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/core/messageReceiver.js +36 -14
- package/dist/browser/core/messageReceiver.js.map +1 -0
- package/dist/browser/core/messageSender.d.ts +93 -0
- package/dist/browser/core/messageSender.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/core/messageSender.js +36 -12
- package/dist/browser/core/messageSender.js.map +1 -0
- package/dist/browser/core/receiverHelper.d.ts +45 -0
- package/dist/browser/core/receiverHelper.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/core/receiverHelper.js +6 -5
- package/dist/browser/core/receiverHelper.js.map +1 -0
- package/dist/browser/core/shared.d.ts +34 -0
- package/dist/browser/core/shared.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/core/shared.js +3 -3
- package/dist/browser/core/shared.js.map +1 -0
- package/dist/browser/core/streamingReceiver.d.ts +142 -0
- package/dist/browser/core/streamingReceiver.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/core/streamingReceiver.js +73 -36
- package/dist/browser/core/streamingReceiver.js.map +1 -0
- package/dist/browser/dataTransformer.d.ts +77 -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/instrumentServiceBusMessage.d.ts +50 -0
- package/dist/browser/diagnostics/instrumentServiceBusMessage.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/diagnostics/instrumentServiceBusMessage.js +2 -2
- package/dist/browser/diagnostics/instrumentServiceBusMessage.js.map +1 -0
- package/dist/browser/diagnostics/tracing.d.ts +21 -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/experimental/index.d.ts +10 -0
- package/dist/browser/experimental/index.d.ts.map +1 -0
- package/dist/browser/experimental/index.js +4 -0
- package/dist/browser/experimental/index.js.map +1 -0
- package/dist/browser/index.d.ts +26 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/index.js +5 -5
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/log.d.ts +70 -0
- package/dist/browser/log.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/log.js +1 -1
- package/dist/browser/log.js.map +1 -0
- package/dist/browser/models.d.ts +328 -0
- package/dist/browser/models.d.ts.map +1 -0
- package/dist/browser/models.js +4 -0
- package/dist/browser/models.js.map +1 -0
- package/dist/browser/modelsToBeSharedWithEventHubs.d.ts +18 -0
- package/dist/browser/modelsToBeSharedWithEventHubs.d.ts.map +1 -0
- package/dist/browser/modelsToBeSharedWithEventHubs.js +4 -0
- package/dist/browser/modelsToBeSharedWithEventHubs.js.map +1 -0
- package/dist/browser/package.json +3 -0
- package/dist/browser/receivers/receiver.d.ts +299 -0
- package/dist/browser/receivers/receiver.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/receivers/receiver.js +40 -22
- package/dist/browser/receivers/receiver.js.map +1 -0
- package/dist/browser/receivers/receiverCommon.d.ts +81 -0
- package/dist/browser/receivers/receiverCommon.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/receivers/receiverCommon.js +7 -8
- package/dist/browser/receivers/receiverCommon.js.map +1 -0
- package/dist/browser/receivers/sessionReceiver.d.ts +189 -0
- package/dist/browser/receivers/sessionReceiver.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/receivers/sessionReceiver.js +32 -24
- package/dist/browser/receivers/sessionReceiver.js.map +1 -0
- package/dist/browser/sender.d.ts +125 -0
- package/dist/browser/sender.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/sender.js +19 -13
- package/dist/browser/sender.js.map +1 -0
- package/dist/browser/serializers/namespaceResourceSerializer.d.ts +46 -0
- package/dist/browser/serializers/namespaceResourceSerializer.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serializers/namespaceResourceSerializer.js +3 -3
- package/dist/browser/serializers/namespaceResourceSerializer.js.map +1 -0
- package/dist/browser/serializers/queueResourceSerializer.d.ts +461 -0
- package/dist/browser/serializers/queueResourceSerializer.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serializers/queueResourceSerializer.js +4 -4
- package/dist/browser/serializers/queueResourceSerializer.js.map +1 -0
- package/dist/browser/serializers/ruleResourceSerializer.d.ts +135 -0
- package/dist/browser/serializers/ruleResourceSerializer.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serializers/ruleResourceSerializer.js +4 -4
- package/dist/browser/serializers/ruleResourceSerializer.js.map +1 -0
- package/dist/browser/serializers/subscriptionResourceSerializer.d.ts +396 -0
- package/dist/browser/serializers/subscriptionResourceSerializer.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serializers/subscriptionResourceSerializer.js +5 -5
- package/dist/browser/serializers/subscriptionResourceSerializer.js.map +1 -0
- package/dist/browser/serializers/topicResourceSerializer.d.ts +335 -0
- package/dist/browser/serializers/topicResourceSerializer.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serializers/topicResourceSerializer.js +4 -4
- package/dist/browser/serializers/topicResourceSerializer.js.map +1 -0
- package/dist/browser/serviceBusAtomManagementClient.d.ts +652 -0
- package/dist/browser/serviceBusAtomManagementClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serviceBusAtomManagementClient.js +78 -109
- package/dist/browser/serviceBusAtomManagementClient.js.map +1 -0
- package/dist/browser/serviceBusClient.d.ts +231 -0
- package/dist/browser/serviceBusClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serviceBusClient.js +24 -11
- package/dist/browser/serviceBusClient.js.map +1 -0
- package/dist/browser/serviceBusError.d.ts +119 -0
- package/dist/browser/serviceBusError.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serviceBusError.js +21 -1
- package/dist/browser/serviceBusError.js.map +1 -0
- package/dist/browser/serviceBusMessage.d.ts +529 -0
- package/dist/browser/serviceBusMessage.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serviceBusMessage.js +193 -5
- package/dist/browser/serviceBusMessage.js.map +1 -0
- package/dist/browser/serviceBusMessageBatch.d.ts +153 -0
- package/dist/browser/serviceBusMessageBatch.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serviceBusMessageBatch.js +37 -13
- package/dist/browser/serviceBusMessageBatch.js.map +1 -0
- package/dist/browser/serviceBusRuleManager.d.ts +103 -0
- package/dist/browser/serviceBusRuleManager.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/serviceBusRuleManager.js +16 -13
- package/dist/browser/serviceBusRuleManager.js.map +1 -0
- package/dist/browser/session/messageSession.d.ts +236 -0
- package/dist/browser/session/messageSession.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/session/messageSession.js +145 -30
- package/dist/browser/session/messageSession.js.map +1 -0
- package/dist/browser/util/atomXmlHelper.d.ts +56 -0
- package/dist/browser/util/atomXmlHelper.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/atomXmlHelper.js +7 -7
- package/dist/browser/util/atomXmlHelper.js.map +1 -0
- package/dist/browser/util/compat/compatibility.d.ts +109 -0
- package/dist/browser/util/compat/compatibility.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/compat/compatibility.js +2 -2
- package/dist/browser/util/compat/compatibility.js.map +1 -0
- package/dist/browser/util/compat/httpHeaders.d.ts +136 -0
- package/dist/browser/util/compat/httpHeaders.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/compat/httpHeaders.js +2 -1
- package/dist/browser/util/compat/httpHeaders.js.map +1 -0
- package/dist/browser/util/compat/index.d.ts +3 -0
- package/dist/browser/util/compat/index.d.ts.map +1 -0
- package/dist/browser/util/compat/index.js +5 -0
- package/dist/browser/util/compat/index.js.map +1 -0
- package/dist/browser/util/connectionStringUtils.d.ts +53 -0
- package/dist/browser/util/connectionStringUtils.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/connectionStringUtils.js +8 -2
- package/dist/browser/util/connectionStringUtils.js.map +1 -0
- package/dist/browser/util/constants.d.ts +322 -0
- package/dist/browser/util/constants.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/constants.js +3 -3
- package/{dist-esm/src → dist/browser}/util/constants.js.map +1 -1
- package/dist/browser/util/crypto-browser.d.mts.map +1 -0
- package/dist/browser/util/crypto-browser.mjs.map +1 -0
- package/dist/browser/util/crypto.d.ts +5 -0
- package/{dist-esm/src/util/crypto.browser.js → dist/browser/util/crypto.js} +2 -4
- package/dist/browser/util/errors.d.ts +130 -0
- package/dist/browser/util/errors.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/errors.js +4 -4
- package/dist/browser/util/errors.js.map +1 -0
- package/dist/browser/util/parseUrl-browser.d.mts.map +1 -0
- package/dist/browser/util/parseUrl-browser.mjs.map +1 -0
- package/dist/browser/util/parseUrl.d.ts +5 -0
- package/{dist-esm/src/util/parseUrl.browser.js → dist/browser/util/parseUrl.js} +1 -3
- 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 +7 -0
- package/{dist-esm/src/util/runtimeInfo.browser.js → dist/browser/util/runtimeInfo.js} +2 -2
- package/dist/browser/util/sasServiceClientCredentials.d.ts +31 -0
- package/dist/browser/util/sasServiceClientCredentials.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/sasServiceClientCredentials.js +9 -3
- package/dist/browser/util/sasServiceClientCredentials.js.map +1 -0
- package/dist/browser/util/semaphore.d.ts +38 -0
- package/dist/browser/util/semaphore.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/semaphore.js +7 -3
- package/dist/browser/util/semaphore.js.map +1 -0
- 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 +247 -0
- package/dist/browser/util/utils.d.ts.map +1 -0
- package/{dist-esm/src → dist/browser}/util/utils.js +5 -7
- package/dist/browser/util/utils.js.map +1 -0
- package/dist/commonjs/connectionContext.d.ts +109 -0
- package/dist/commonjs/connectionContext.d.ts.map +1 -0
- package/dist/commonjs/connectionContext.js +358 -0
- package/dist/commonjs/connectionContext.js.map +1 -0
- package/dist/commonjs/constructorHelpers.d.ts +79 -0
- package/dist/commonjs/constructorHelpers.d.ts.map +1 -0
- package/dist/commonjs/constructorHelpers.js +103 -0
- package/dist/commonjs/constructorHelpers.js.map +1 -0
- package/dist/commonjs/core/autoLockRenewer.d.ts +58 -0
- package/dist/commonjs/core/autoLockRenewer.d.ts.map +1 -0
- package/dist/commonjs/core/autoLockRenewer.js +178 -0
- package/dist/commonjs/core/autoLockRenewer.js.map +1 -0
- package/dist/commonjs/core/batchingReceiver.d.ts +120 -0
- package/dist/commonjs/core/batchingReceiver.d.ts.map +1 -0
- package/dist/commonjs/core/batchingReceiver.js +405 -0
- package/dist/commonjs/core/batchingReceiver.js.map +1 -0
- package/dist/commonjs/core/linkEntity.d.ts +192 -0
- package/dist/commonjs/core/linkEntity.d.ts.map +1 -0
- package/dist/commonjs/core/linkEntity.js +344 -0
- package/dist/commonjs/core/linkEntity.js.map +1 -0
- package/dist/commonjs/core/managementClient.d.ts +312 -0
- package/dist/commonjs/core/managementClient.d.ts.map +1 -0
- package/dist/commonjs/core/managementClient.js +1078 -0
- package/dist/commonjs/core/managementClient.js.map +1 -0
- package/dist/commonjs/core/messageReceiver.d.ts +147 -0
- package/dist/commonjs/core/messageReceiver.d.ts.map +1 -0
- package/dist/commonjs/core/messageReceiver.js +169 -0
- package/dist/commonjs/core/messageReceiver.js.map +1 -0
- package/dist/commonjs/core/messageSender.d.ts +93 -0
- package/dist/commonjs/core/messageSender.d.ts.map +1 -0
- package/dist/commonjs/core/messageSender.js +307 -0
- package/dist/commonjs/core/messageSender.js.map +1 -0
- package/dist/commonjs/core/receiverHelper.d.ts +45 -0
- package/dist/commonjs/core/receiverHelper.d.ts.map +1 -0
- package/dist/commonjs/core/receiverHelper.js +123 -0
- package/dist/commonjs/core/receiverHelper.js.map +1 -0
- package/dist/commonjs/core/shared.d.ts +34 -0
- package/dist/commonjs/core/shared.d.ts.map +1 -0
- package/dist/commonjs/core/shared.js +70 -0
- package/dist/commonjs/core/shared.js.map +1 -0
- package/dist/commonjs/core/streamingReceiver.d.ts +142 -0
- package/dist/commonjs/core/streamingReceiver.d.ts.map +1 -0
- package/dist/commonjs/core/streamingReceiver.js +526 -0
- package/dist/commonjs/core/streamingReceiver.js.map +1 -0
- package/dist/commonjs/dataTransformer.d.ts +77 -0
- package/dist/commonjs/dataTransformer.d.ts.map +1 -0
- package/dist/commonjs/dataTransformer.js +169 -0
- package/dist/commonjs/dataTransformer.js.map +1 -0
- package/dist/commonjs/diagnostics/instrumentServiceBusMessage.d.ts +50 -0
- package/dist/commonjs/diagnostics/instrumentServiceBusMessage.d.ts.map +1 -0
- package/dist/commonjs/diagnostics/instrumentServiceBusMessage.js +107 -0
- package/dist/commonjs/diagnostics/instrumentServiceBusMessage.js.map +1 -0
- package/dist/commonjs/diagnostics/tracing.d.ts +21 -0
- package/dist/commonjs/diagnostics/tracing.d.ts.map +1 -0
- package/dist/commonjs/diagnostics/tracing.js +41 -0
- package/dist/commonjs/diagnostics/tracing.js.map +1 -0
- package/dist/commonjs/experimental/index.d.ts +10 -0
- package/dist/commonjs/experimental/index.d.ts.map +1 -0
- package/dist/commonjs/experimental/index.js +5 -0
- package/dist/commonjs/experimental/index.js.map +1 -0
- package/dist/commonjs/index.d.ts +26 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +22 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/log.d.ts +70 -0
- package/dist/commonjs/log.d.ts.map +1 -0
- package/dist/commonjs/log.js +94 -0
- package/dist/commonjs/log.js.map +1 -0
- package/dist/commonjs/models.d.ts +328 -0
- package/dist/commonjs/models.d.ts.map +1 -0
- package/dist/commonjs/models.js +5 -0
- package/dist/commonjs/models.js.map +1 -0
- package/dist/commonjs/modelsToBeSharedWithEventHubs.d.ts +18 -0
- package/dist/commonjs/modelsToBeSharedWithEventHubs.d.ts.map +1 -0
- package/dist/commonjs/modelsToBeSharedWithEventHubs.js +5 -0
- package/dist/commonjs/modelsToBeSharedWithEventHubs.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/receivers/receiver.d.ts +299 -0
- package/dist/commonjs/receivers/receiver.d.ts.map +1 -0
- package/dist/commonjs/receivers/receiver.js +383 -0
- package/dist/commonjs/receivers/receiver.js.map +1 -0
- package/dist/commonjs/receivers/receiverCommon.d.ts +81 -0
- package/dist/commonjs/receivers/receiverCommon.d.ts.map +1 -0
- package/dist/commonjs/receivers/receiverCommon.js +269 -0
- package/dist/commonjs/receivers/receiverCommon.js.map +1 -0
- package/dist/commonjs/receivers/sessionReceiver.d.ts +189 -0
- package/dist/commonjs/receivers/sessionReceiver.d.ts.map +1 -0
- package/dist/commonjs/receivers/sessionReceiver.js +432 -0
- package/dist/commonjs/receivers/sessionReceiver.js.map +1 -0
- package/dist/commonjs/sender.d.ts +125 -0
- package/dist/commonjs/sender.d.ts.map +1 -0
- package/dist/commonjs/sender.js +191 -0
- package/dist/commonjs/sender.js.map +1 -0
- package/dist/commonjs/serializers/namespaceResourceSerializer.d.ts +46 -0
- package/dist/commonjs/serializers/namespaceResourceSerializer.d.ts.map +1 -0
- package/dist/commonjs/serializers/namespaceResourceSerializer.js +39 -0
- package/dist/commonjs/serializers/namespaceResourceSerializer.js.map +1 -0
- package/dist/commonjs/serializers/queueResourceSerializer.d.ts +461 -0
- package/dist/commonjs/serializers/queueResourceSerializer.d.ts.map +1 -0
- package/dist/commonjs/serializers/queueResourceSerializer.js +107 -0
- package/dist/commonjs/serializers/queueResourceSerializer.js.map +1 -0
- package/dist/commonjs/serializers/ruleResourceSerializer.d.ts +135 -0
- package/dist/commonjs/serializers/ruleResourceSerializer.d.ts.map +1 -0
- package/dist/commonjs/serializers/ruleResourceSerializer.js +287 -0
- package/dist/commonjs/serializers/ruleResourceSerializer.js.map +1 -0
- package/dist/commonjs/serializers/subscriptionResourceSerializer.d.ts +396 -0
- package/dist/commonjs/serializers/subscriptionResourceSerializer.d.ts.map +1 -0
- package/dist/commonjs/serializers/subscriptionResourceSerializer.js +103 -0
- package/dist/commonjs/serializers/subscriptionResourceSerializer.js.map +1 -0
- package/dist/commonjs/serializers/topicResourceSerializer.d.ts +335 -0
- package/dist/commonjs/serializers/topicResourceSerializer.d.ts.map +1 -0
- package/dist/commonjs/serializers/topicResourceSerializer.js +97 -0
- package/dist/commonjs/serializers/topicResourceSerializer.js.map +1 -0
- package/dist/commonjs/serviceBusAtomManagementClient.d.ts +652 -0
- package/dist/commonjs/serviceBusAtomManagementClient.d.ts.map +1 -0
- package/dist/commonjs/serviceBusAtomManagementClient.js +1648 -0
- package/dist/commonjs/serviceBusAtomManagementClient.js.map +1 -0
- package/dist/commonjs/serviceBusClient.d.ts +231 -0
- package/dist/commonjs/serviceBusClient.d.ts.map +1 -0
- package/dist/commonjs/serviceBusClient.js +221 -0
- package/dist/commonjs/serviceBusClient.js.map +1 -0
- package/dist/commonjs/serviceBusError.d.ts +119 -0
- package/dist/commonjs/serviceBusError.d.ts.map +1 -0
- package/dist/commonjs/serviceBusError.js +109 -0
- package/dist/commonjs/serviceBusError.js.map +1 -0
- package/dist/commonjs/serviceBusMessage.d.ts +529 -0
- package/dist/commonjs/serviceBusMessage.d.ts.map +1 -0
- package/dist/commonjs/serviceBusMessage.js +611 -0
- package/dist/commonjs/serviceBusMessage.js.map +1 -0
- package/dist/commonjs/serviceBusMessageBatch.d.ts +153 -0
- package/dist/commonjs/serviceBusMessageBatch.d.ts.map +1 -0
- package/dist/commonjs/serviceBusMessageBatch.js +196 -0
- package/dist/commonjs/serviceBusMessageBatch.js.map +1 -0
- package/dist/commonjs/serviceBusRuleManager.d.ts +103 -0
- package/dist/commonjs/serviceBusRuleManager.d.ts.map +1 -0
- package/dist/commonjs/serviceBusRuleManager.js +153 -0
- package/dist/commonjs/serviceBusRuleManager.js.map +1 -0
- package/dist/commonjs/session/messageSession.d.ts +236 -0
- package/dist/commonjs/session/messageSession.d.ts.map +1 -0
- package/dist/commonjs/session/messageSession.js +759 -0
- package/dist/commonjs/session/messageSession.js.map +1 -0
- package/dist/commonjs/tsdoc-metadata.json +11 -0
- package/dist/commonjs/util/atomXmlHelper.d.ts +56 -0
- package/dist/commonjs/util/atomXmlHelper.d.ts.map +1 -0
- package/dist/commonjs/util/atomXmlHelper.js +386 -0
- package/dist/commonjs/util/atomXmlHelper.js.map +1 -0
- package/dist/commonjs/util/compat/compatibility.d.ts +109 -0
- package/dist/commonjs/util/compat/compatibility.d.ts.map +1 -0
- package/dist/commonjs/util/compat/compatibility.js +30 -0
- package/dist/commonjs/util/compat/compatibility.js.map +1 -0
- package/dist/commonjs/util/compat/httpHeaders.d.ts +136 -0
- package/dist/commonjs/util/compat/httpHeaders.d.ts.map +1 -0
- package/dist/commonjs/util/compat/httpHeaders.js +157 -0
- package/dist/commonjs/util/compat/httpHeaders.js.map +1 -0
- package/dist/commonjs/util/compat/index.d.ts +3 -0
- package/dist/commonjs/util/compat/index.d.ts.map +1 -0
- package/dist/commonjs/util/compat/index.js +8 -0
- package/dist/commonjs/util/compat/index.js.map +1 -0
- package/dist/commonjs/util/connectionStringUtils.d.ts +53 -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 +322 -0
- package/dist/commonjs/util/constants.d.ts.map +1 -0
- package/dist/commonjs/util/constants.js +327 -0
- package/dist/commonjs/util/constants.js.map +1 -0
- package/dist/commonjs/util/crypto.d.ts +5 -0
- package/dist/commonjs/util/crypto.d.ts.map +1 -0
- package/dist/commonjs/util/crypto.js +15 -0
- package/dist/commonjs/util/crypto.js.map +1 -0
- package/dist/commonjs/util/errors.d.ts +130 -0
- package/dist/commonjs/util/errors.d.ts.map +1 -0
- package/dist/commonjs/util/errors.js +236 -0
- package/dist/commonjs/util/errors.js.map +1 -0
- package/dist/commonjs/util/parseUrl.d.ts +5 -0
- package/dist/commonjs/util/parseUrl.d.ts.map +1 -0
- package/dist/commonjs/util/parseUrl.js +13 -0
- package/dist/commonjs/util/parseUrl.js.map +1 -0
- package/dist/commonjs/util/runtimeInfo.d.ts +7 -0
- package/dist/commonjs/util/runtimeInfo.d.ts.map +1 -0
- package/dist/commonjs/util/runtimeInfo.js +24 -0
- package/dist/commonjs/util/runtimeInfo.js.map +1 -0
- package/dist/commonjs/util/sasServiceClientCredentials.d.ts +31 -0
- package/dist/commonjs/util/sasServiceClientCredentials.d.ts.map +1 -0
- package/dist/commonjs/util/sasServiceClientCredentials.js +56 -0
- package/dist/commonjs/util/sasServiceClientCredentials.js.map +1 -0
- package/dist/commonjs/util/semaphore.d.ts +38 -0
- package/dist/commonjs/util/semaphore.d.ts.map +1 -0
- package/dist/commonjs/util/semaphore.js +85 -0
- package/dist/commonjs/util/semaphore.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 +247 -0
- package/dist/commonjs/util/utils.d.ts.map +1 -0
- package/dist/commonjs/util/utils.js +524 -0
- package/dist/commonjs/util/utils.js.map +1 -0
- package/dist/esm/connectionContext.d.ts +109 -0
- package/dist/esm/connectionContext.d.ts.map +1 -0
- package/dist/esm/connectionContext.js +355 -0
- package/dist/esm/connectionContext.js.map +1 -0
- package/dist/esm/constructorHelpers.d.ts +79 -0
- package/dist/esm/constructorHelpers.d.ts.map +1 -0
- package/dist/esm/constructorHelpers.js +96 -0
- package/dist/esm/constructorHelpers.js.map +1 -0
- package/dist/esm/core/autoLockRenewer.d.ts +58 -0
- package/dist/esm/core/autoLockRenewer.d.ts.map +1 -0
- package/dist/esm/core/autoLockRenewer.js +174 -0
- package/dist/esm/core/autoLockRenewer.js.map +1 -0
- package/dist/esm/core/batchingReceiver.d.ts +120 -0
- package/dist/esm/core/batchingReceiver.d.ts.map +1 -0
- package/dist/esm/core/batchingReceiver.js +399 -0
- package/dist/esm/core/batchingReceiver.js.map +1 -0
- package/dist/esm/core/linkEntity.d.ts +192 -0
- package/dist/esm/core/linkEntity.d.ts.map +1 -0
- package/dist/esm/core/linkEntity.js +340 -0
- package/dist/esm/core/linkEntity.js.map +1 -0
- package/dist/esm/core/managementClient.d.ts +312 -0
- package/dist/esm/core/managementClient.d.ts.map +1 -0
- package/dist/esm/core/managementClient.js +1072 -0
- package/dist/esm/core/managementClient.js.map +1 -0
- package/dist/esm/core/messageReceiver.d.ts +147 -0
- package/dist/esm/core/messageReceiver.d.ts.map +1 -0
- package/dist/esm/core/messageReceiver.js +165 -0
- package/dist/esm/core/messageReceiver.js.map +1 -0
- package/dist/esm/core/messageSender.d.ts +93 -0
- package/dist/esm/core/messageSender.d.ts.map +1 -0
- package/dist/esm/core/messageSender.js +303 -0
- package/dist/esm/core/messageSender.js.map +1 -0
- package/dist/esm/core/receiverHelper.d.ts +45 -0
- package/dist/esm/core/receiverHelper.d.ts.map +1 -0
- package/dist/esm/core/receiverHelper.js +119 -0
- package/dist/esm/core/receiverHelper.js.map +1 -0
- package/dist/esm/core/shared.d.ts +34 -0
- package/dist/esm/core/shared.d.ts.map +1 -0
- package/dist/esm/core/shared.js +66 -0
- package/dist/esm/core/shared.js.map +1 -0
- package/dist/esm/core/streamingReceiver.d.ts +142 -0
- package/dist/esm/core/streamingReceiver.d.ts.map +1 -0
- package/dist/esm/core/streamingReceiver.js +522 -0
- package/dist/esm/core/streamingReceiver.js.map +1 -0
- package/dist/esm/dataTransformer.d.ts +77 -0
- package/dist/esm/dataTransformer.d.ts.map +1 -0
- package/dist/esm/dataTransformer.js +163 -0
- package/dist/esm/dataTransformer.js.map +1 -0
- package/dist/esm/diagnostics/instrumentServiceBusMessage.d.ts +50 -0
- package/dist/esm/diagnostics/instrumentServiceBusMessage.d.ts.map +1 -0
- package/dist/esm/diagnostics/instrumentServiceBusMessage.js +101 -0
- package/dist/esm/diagnostics/instrumentServiceBusMessage.js.map +1 -0
- package/dist/esm/diagnostics/tracing.d.ts +21 -0
- package/dist/esm/diagnostics/tracing.d.ts.map +1 -0
- package/dist/esm/diagnostics/tracing.js +37 -0
- package/dist/esm/diagnostics/tracing.js.map +1 -0
- package/dist/esm/experimental/index.d.ts +10 -0
- package/dist/esm/experimental/index.d.ts.map +1 -0
- package/dist/esm/experimental/index.js +4 -0
- package/dist/esm/experimental/index.js.map +1 -0
- package/dist/esm/index.d.ts +26 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/log.d.ts +70 -0
- package/dist/esm/log.d.ts.map +1 -0
- package/dist/esm/log.js +89 -0
- package/dist/esm/log.js.map +1 -0
- package/dist/esm/models.d.ts +328 -0
- package/dist/esm/models.d.ts.map +1 -0
- package/dist/esm/models.js +4 -0
- package/dist/esm/models.js.map +1 -0
- package/dist/esm/modelsToBeSharedWithEventHubs.d.ts +18 -0
- package/dist/esm/modelsToBeSharedWithEventHubs.d.ts.map +1 -0
- package/dist/esm/modelsToBeSharedWithEventHubs.js +4 -0
- package/dist/esm/modelsToBeSharedWithEventHubs.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/receivers/receiver.d.ts +299 -0
- package/dist/esm/receivers/receiver.d.ts.map +1 -0
- package/dist/esm/receivers/receiver.js +379 -0
- package/dist/esm/receivers/receiver.js.map +1 -0
- package/dist/esm/receivers/receiverCommon.d.ts +81 -0
- package/dist/esm/receivers/receiverCommon.d.ts.map +1 -0
- package/dist/esm/receivers/receiverCommon.js +257 -0
- package/dist/esm/receivers/receiverCommon.js.map +1 -0
- package/dist/esm/receivers/sessionReceiver.d.ts +189 -0
- package/dist/esm/receivers/sessionReceiver.d.ts.map +1 -0
- package/dist/esm/receivers/sessionReceiver.js +428 -0
- package/dist/esm/receivers/sessionReceiver.js.map +1 -0
- package/dist/esm/sender.d.ts +125 -0
- package/dist/esm/sender.d.ts.map +1 -0
- package/dist/esm/sender.js +186 -0
- package/dist/esm/sender.js.map +1 -0
- package/dist/esm/serializers/namespaceResourceSerializer.d.ts +46 -0
- package/dist/esm/serializers/namespaceResourceSerializer.d.ts.map +1 -0
- package/dist/esm/serializers/namespaceResourceSerializer.js +34 -0
- package/dist/esm/serializers/namespaceResourceSerializer.js.map +1 -0
- package/dist/esm/serializers/queueResourceSerializer.d.ts +461 -0
- package/dist/esm/serializers/queueResourceSerializer.d.ts.map +1 -0
- package/dist/esm/serializers/queueResourceSerializer.js +99 -0
- package/dist/esm/serializers/queueResourceSerializer.js.map +1 -0
- package/dist/esm/serializers/ruleResourceSerializer.d.ts +135 -0
- package/dist/esm/serializers/ruleResourceSerializer.d.ts.map +1 -0
- package/dist/esm/serializers/ruleResourceSerializer.js +278 -0
- package/dist/esm/serializers/ruleResourceSerializer.js.map +1 -0
- package/dist/esm/serializers/subscriptionResourceSerializer.d.ts +396 -0
- package/dist/esm/serializers/subscriptionResourceSerializer.d.ts.map +1 -0
- package/dist/esm/serializers/subscriptionResourceSerializer.js +95 -0
- package/dist/esm/serializers/subscriptionResourceSerializer.js.map +1 -0
- package/dist/esm/serializers/topicResourceSerializer.d.ts +335 -0
- package/dist/esm/serializers/topicResourceSerializer.d.ts.map +1 -0
- package/dist/esm/serializers/topicResourceSerializer.js +89 -0
- package/dist/esm/serializers/topicResourceSerializer.js.map +1 -0
- package/dist/esm/serviceBusAtomManagementClient.d.ts +652 -0
- package/dist/esm/serviceBusAtomManagementClient.d.ts.map +1 -0
- package/dist/esm/serviceBusAtomManagementClient.js +1643 -0
- package/dist/esm/serviceBusAtomManagementClient.js.map +1 -0
- package/dist/esm/serviceBusClient.d.ts +231 -0
- package/dist/esm/serviceBusClient.d.ts.map +1 -0
- package/dist/esm/serviceBusClient.js +216 -0
- package/dist/esm/serviceBusClient.js.map +1 -0
- package/dist/esm/serviceBusError.d.ts +119 -0
- package/dist/esm/serviceBusError.d.ts.map +1 -0
- package/dist/esm/serviceBusError.js +103 -0
- package/dist/esm/serviceBusError.js.map +1 -0
- package/dist/esm/serviceBusMessage.d.ts +529 -0
- package/dist/esm/serviceBusMessage.d.ts.map +1 -0
- package/dist/esm/serviceBusMessage.js +598 -0
- package/dist/esm/serviceBusMessage.js.map +1 -0
- package/dist/esm/serviceBusMessageBatch.d.ts +153 -0
- package/dist/esm/serviceBusMessageBatch.d.ts.map +1 -0
- package/dist/esm/serviceBusMessageBatch.js +192 -0
- package/dist/esm/serviceBusMessageBatch.js.map +1 -0
- package/dist/esm/serviceBusRuleManager.d.ts +103 -0
- package/dist/esm/serviceBusRuleManager.d.ts.map +1 -0
- package/dist/esm/serviceBusRuleManager.js +149 -0
- package/dist/esm/serviceBusRuleManager.js.map +1 -0
- package/dist/esm/session/messageSession.d.ts +236 -0
- package/dist/esm/session/messageSession.d.ts.map +1 -0
- package/dist/esm/session/messageSession.js +755 -0
- package/dist/esm/session/messageSession.js.map +1 -0
- package/dist/esm/util/atomXmlHelper.d.ts +56 -0
- package/dist/esm/util/atomXmlHelper.d.ts.map +1 -0
- package/dist/esm/util/atomXmlHelper.js +378 -0
- package/dist/esm/util/atomXmlHelper.js.map +1 -0
- package/dist/esm/util/compat/compatibility.d.ts +109 -0
- package/dist/esm/util/compat/compatibility.d.ts.map +1 -0
- package/dist/esm/util/compat/compatibility.js +27 -0
- package/dist/esm/util/compat/compatibility.js.map +1 -0
- package/dist/esm/util/compat/httpHeaders.d.ts +136 -0
- package/dist/esm/util/compat/httpHeaders.d.ts.map +1 -0
- package/dist/esm/util/compat/httpHeaders.js +152 -0
- package/dist/esm/util/compat/httpHeaders.js.map +1 -0
- package/dist/esm/util/compat/index.d.ts +3 -0
- package/dist/esm/util/compat/index.d.ts.map +1 -0
- package/dist/esm/util/compat/index.js +5 -0
- package/dist/esm/util/compat/index.js.map +1 -0
- package/dist/esm/util/connectionStringUtils.d.ts +53 -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 +322 -0
- package/dist/esm/util/constants.d.ts.map +1 -0
- package/dist/esm/util/constants.js +324 -0
- package/dist/esm/util/constants.js.map +1 -0
- package/dist/esm/util/crypto.d.ts +5 -0
- package/dist/esm/util/crypto.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/util/crypto.js +1 -3
- package/dist/esm/util/crypto.js.map +1 -0
- package/dist/esm/util/errors.d.ts +130 -0
- package/dist/esm/util/errors.d.ts.map +1 -0
- package/dist/esm/util/errors.js +220 -0
- package/dist/esm/util/errors.js.map +1 -0
- package/dist/esm/util/parseUrl.d.ts +5 -0
- package/dist/esm/util/parseUrl.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/util/parseUrl.js +0 -6
- package/dist/esm/util/parseUrl.js.map +1 -0
- package/dist/esm/util/runtimeInfo.d.ts +7 -0
- package/dist/esm/util/runtimeInfo.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/util/runtimeInfo.js +2 -2
- package/dist/esm/util/runtimeInfo.js.map +1 -0
- package/dist/esm/util/sasServiceClientCredentials.d.ts +31 -0
- package/dist/esm/util/sasServiceClientCredentials.d.ts.map +1 -0
- package/dist/esm/util/sasServiceClientCredentials.js +52 -0
- package/dist/esm/util/sasServiceClientCredentials.js.map +1 -0
- package/dist/esm/util/semaphore.d.ts +38 -0
- package/dist/esm/util/semaphore.d.ts.map +1 -0
- package/dist/esm/util/semaphore.js +81 -0
- package/dist/esm/util/semaphore.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 +247 -0
- package/dist/esm/util/utils.d.ts.map +1 -0
- package/dist/esm/util/utils.js +496 -0
- package/dist/esm/util/utils.js.map +1 -0
- package/dist/react-native/connectionContext.d.ts +109 -0
- package/dist/react-native/connectionContext.d.ts.map +1 -0
- package/dist/react-native/connectionContext.js +355 -0
- package/dist/react-native/connectionContext.js.map +1 -0
- package/dist/react-native/constructorHelpers.d.ts +79 -0
- package/dist/react-native/constructorHelpers.d.ts.map +1 -0
- package/dist/react-native/constructorHelpers.js +96 -0
- package/dist/react-native/constructorHelpers.js.map +1 -0
- package/dist/react-native/core/autoLockRenewer.d.ts +58 -0
- package/dist/react-native/core/autoLockRenewer.d.ts.map +1 -0
- package/dist/react-native/core/autoLockRenewer.js +174 -0
- package/dist/react-native/core/autoLockRenewer.js.map +1 -0
- package/dist/react-native/core/batchingReceiver.d.ts +120 -0
- package/dist/react-native/core/batchingReceiver.d.ts.map +1 -0
- package/dist/react-native/core/batchingReceiver.js +399 -0
- package/dist/react-native/core/batchingReceiver.js.map +1 -0
- package/dist/react-native/core/linkEntity.d.ts +192 -0
- package/dist/react-native/core/linkEntity.d.ts.map +1 -0
- package/dist/react-native/core/linkEntity.js +340 -0
- package/dist/react-native/core/linkEntity.js.map +1 -0
- package/dist/react-native/core/managementClient.d.ts +312 -0
- package/dist/react-native/core/managementClient.d.ts.map +1 -0
- package/dist/react-native/core/managementClient.js +1072 -0
- package/dist/react-native/core/managementClient.js.map +1 -0
- package/dist/react-native/core/messageReceiver.d.ts +147 -0
- package/dist/react-native/core/messageReceiver.d.ts.map +1 -0
- package/dist/react-native/core/messageReceiver.js +165 -0
- package/dist/react-native/core/messageReceiver.js.map +1 -0
- package/dist/react-native/core/messageSender.d.ts +93 -0
- package/dist/react-native/core/messageSender.d.ts.map +1 -0
- package/dist/react-native/core/messageSender.js +303 -0
- package/dist/react-native/core/messageSender.js.map +1 -0
- package/dist/react-native/core/receiverHelper.d.ts +45 -0
- package/dist/react-native/core/receiverHelper.d.ts.map +1 -0
- package/dist/react-native/core/receiverHelper.js +119 -0
- package/dist/react-native/core/receiverHelper.js.map +1 -0
- package/dist/react-native/core/shared.d.ts +34 -0
- package/dist/react-native/core/shared.d.ts.map +1 -0
- package/dist/react-native/core/shared.js +66 -0
- package/dist/react-native/core/shared.js.map +1 -0
- package/dist/react-native/core/streamingReceiver.d.ts +142 -0
- package/dist/react-native/core/streamingReceiver.d.ts.map +1 -0
- package/dist/react-native/core/streamingReceiver.js +522 -0
- package/dist/react-native/core/streamingReceiver.js.map +1 -0
- package/dist/react-native/dataTransformer.d.ts +77 -0
- package/dist/react-native/dataTransformer.d.ts.map +1 -0
- package/dist/react-native/dataTransformer.js +163 -0
- package/dist/react-native/dataTransformer.js.map +1 -0
- package/dist/react-native/diagnostics/instrumentServiceBusMessage.d.ts +50 -0
- package/dist/react-native/diagnostics/instrumentServiceBusMessage.d.ts.map +1 -0
- package/dist/react-native/diagnostics/instrumentServiceBusMessage.js +101 -0
- package/dist/react-native/diagnostics/instrumentServiceBusMessage.js.map +1 -0
- package/dist/react-native/diagnostics/tracing.d.ts +21 -0
- package/dist/react-native/diagnostics/tracing.d.ts.map +1 -0
- package/dist/react-native/diagnostics/tracing.js +37 -0
- package/dist/react-native/diagnostics/tracing.js.map +1 -0
- package/dist/react-native/experimental/index.d.ts +10 -0
- package/dist/react-native/experimental/index.d.ts.map +1 -0
- package/dist/react-native/experimental/index.js +4 -0
- package/dist/react-native/experimental/index.js.map +1 -0
- package/dist/react-native/index.d.ts +26 -0
- package/dist/react-native/index.d.ts.map +1 -0
- package/dist/react-native/index.js +10 -0
- package/dist/react-native/index.js.map +1 -0
- package/dist/react-native/log.d.ts +70 -0
- package/dist/react-native/log.d.ts.map +1 -0
- package/dist/react-native/log.js +89 -0
- package/dist/react-native/log.js.map +1 -0
- package/dist/react-native/models.d.ts +328 -0
- package/dist/react-native/models.d.ts.map +1 -0
- package/dist/react-native/models.js +4 -0
- package/dist/react-native/models.js.map +1 -0
- package/dist/react-native/modelsToBeSharedWithEventHubs.d.ts +18 -0
- package/dist/react-native/modelsToBeSharedWithEventHubs.d.ts.map +1 -0
- package/dist/react-native/modelsToBeSharedWithEventHubs.js +4 -0
- package/dist/react-native/modelsToBeSharedWithEventHubs.js.map +1 -0
- package/dist/react-native/package.json +3 -0
- package/dist/react-native/receivers/receiver.d.ts +299 -0
- package/dist/react-native/receivers/receiver.d.ts.map +1 -0
- package/dist/react-native/receivers/receiver.js +379 -0
- package/dist/react-native/receivers/receiver.js.map +1 -0
- package/dist/react-native/receivers/receiverCommon.d.ts +81 -0
- package/dist/react-native/receivers/receiverCommon.d.ts.map +1 -0
- package/dist/react-native/receivers/receiverCommon.js +257 -0
- package/dist/react-native/receivers/receiverCommon.js.map +1 -0
- package/dist/react-native/receivers/sessionReceiver.d.ts +189 -0
- package/dist/react-native/receivers/sessionReceiver.d.ts.map +1 -0
- package/dist/react-native/receivers/sessionReceiver.js +428 -0
- package/dist/react-native/receivers/sessionReceiver.js.map +1 -0
- package/dist/react-native/sender.d.ts +125 -0
- package/dist/react-native/sender.d.ts.map +1 -0
- package/dist/react-native/sender.js +186 -0
- package/dist/react-native/sender.js.map +1 -0
- package/dist/react-native/serializers/namespaceResourceSerializer.d.ts +46 -0
- package/dist/react-native/serializers/namespaceResourceSerializer.d.ts.map +1 -0
- package/dist/react-native/serializers/namespaceResourceSerializer.js +34 -0
- package/dist/react-native/serializers/namespaceResourceSerializer.js.map +1 -0
- package/dist/react-native/serializers/queueResourceSerializer.d.ts +461 -0
- package/dist/react-native/serializers/queueResourceSerializer.d.ts.map +1 -0
- package/dist/react-native/serializers/queueResourceSerializer.js +99 -0
- package/dist/react-native/serializers/queueResourceSerializer.js.map +1 -0
- package/dist/react-native/serializers/ruleResourceSerializer.d.ts +135 -0
- package/dist/react-native/serializers/ruleResourceSerializer.d.ts.map +1 -0
- package/dist/react-native/serializers/ruleResourceSerializer.js +278 -0
- package/dist/react-native/serializers/ruleResourceSerializer.js.map +1 -0
- package/dist/react-native/serializers/subscriptionResourceSerializer.d.ts +396 -0
- package/dist/react-native/serializers/subscriptionResourceSerializer.d.ts.map +1 -0
- package/dist/react-native/serializers/subscriptionResourceSerializer.js +95 -0
- package/dist/react-native/serializers/subscriptionResourceSerializer.js.map +1 -0
- package/dist/react-native/serializers/topicResourceSerializer.d.ts +335 -0
- package/dist/react-native/serializers/topicResourceSerializer.d.ts.map +1 -0
- package/dist/react-native/serializers/topicResourceSerializer.js +89 -0
- package/dist/react-native/serializers/topicResourceSerializer.js.map +1 -0
- package/dist/react-native/serviceBusAtomManagementClient.d.ts +652 -0
- package/dist/react-native/serviceBusAtomManagementClient.d.ts.map +1 -0
- package/dist/react-native/serviceBusAtomManagementClient.js +1643 -0
- package/dist/react-native/serviceBusAtomManagementClient.js.map +1 -0
- package/dist/react-native/serviceBusClient.d.ts +231 -0
- package/dist/react-native/serviceBusClient.d.ts.map +1 -0
- package/dist/react-native/serviceBusClient.js +216 -0
- package/dist/react-native/serviceBusClient.js.map +1 -0
- package/dist/react-native/serviceBusError.d.ts +119 -0
- package/dist/react-native/serviceBusError.d.ts.map +1 -0
- package/dist/react-native/serviceBusError.js +103 -0
- package/dist/react-native/serviceBusError.js.map +1 -0
- package/dist/react-native/serviceBusMessage.d.ts +529 -0
- package/dist/react-native/serviceBusMessage.d.ts.map +1 -0
- package/dist/react-native/serviceBusMessage.js +598 -0
- package/dist/react-native/serviceBusMessage.js.map +1 -0
- package/dist/react-native/serviceBusMessageBatch.d.ts +153 -0
- package/dist/react-native/serviceBusMessageBatch.d.ts.map +1 -0
- package/dist/react-native/serviceBusMessageBatch.js +192 -0
- package/dist/react-native/serviceBusMessageBatch.js.map +1 -0
- package/dist/react-native/serviceBusRuleManager.d.ts +103 -0
- package/dist/react-native/serviceBusRuleManager.d.ts.map +1 -0
- package/dist/react-native/serviceBusRuleManager.js +149 -0
- package/dist/react-native/serviceBusRuleManager.js.map +1 -0
- package/dist/react-native/session/messageSession.d.ts +236 -0
- package/dist/react-native/session/messageSession.d.ts.map +1 -0
- package/dist/react-native/session/messageSession.js +755 -0
- package/dist/react-native/session/messageSession.js.map +1 -0
- package/dist/react-native/util/atomXmlHelper.d.ts +56 -0
- package/dist/react-native/util/atomXmlHelper.d.ts.map +1 -0
- package/dist/react-native/util/atomXmlHelper.js +378 -0
- package/dist/react-native/util/atomXmlHelper.js.map +1 -0
- package/dist/react-native/util/compat/compatibility.d.ts +109 -0
- package/dist/react-native/util/compat/compatibility.d.ts.map +1 -0
- package/dist/react-native/util/compat/compatibility.js +27 -0
- package/dist/react-native/util/compat/compatibility.js.map +1 -0
- package/dist/react-native/util/compat/httpHeaders.d.ts +136 -0
- package/dist/react-native/util/compat/httpHeaders.d.ts.map +1 -0
- package/dist/react-native/util/compat/httpHeaders.js +152 -0
- package/dist/react-native/util/compat/httpHeaders.js.map +1 -0
- package/dist/react-native/util/compat/index.d.ts +3 -0
- package/dist/react-native/util/compat/index.d.ts.map +1 -0
- package/dist/react-native/util/compat/index.js +5 -0
- package/dist/react-native/util/compat/index.js.map +1 -0
- package/dist/react-native/util/connectionStringUtils.d.ts +53 -0
- package/dist/react-native/util/connectionStringUtils.d.ts.map +1 -0
- package/dist/react-native/util/connectionStringUtils.js +48 -0
- package/dist/react-native/util/connectionStringUtils.js.map +1 -0
- package/dist/react-native/util/constants.d.ts +322 -0
- package/dist/react-native/util/constants.d.ts.map +1 -0
- package/dist/react-native/util/constants.js +324 -0
- package/dist/react-native/util/constants.js.map +1 -0
- package/dist/react-native/util/crypto.d.ts +5 -0
- package/dist/react-native/util/crypto.d.ts.map +1 -0
- package/dist/react-native/util/crypto.js +11 -0
- package/dist/react-native/util/crypto.js.map +1 -0
- package/dist/react-native/util/errors.d.ts +130 -0
- package/dist/react-native/util/errors.d.ts.map +1 -0
- package/dist/react-native/util/errors.js +220 -0
- package/dist/react-native/util/errors.js.map +1 -0
- package/dist/react-native/util/parseUrl.d.ts +5 -0
- package/dist/react-native/util/parseUrl.d.ts.map +1 -0
- package/dist/react-native/util/parseUrl.js +9 -0
- package/dist/react-native/util/parseUrl.js.map +1 -0
- package/dist/react-native/util/runtimeInfo-react-native.d.mts.map +1 -0
- package/dist/react-native/util/runtimeInfo-react-native.mjs.map +1 -0
- package/dist/react-native/util/runtimeInfo.d.ts +7 -0
- package/{dist-esm/src/util/runtimeInfo.native.js → dist/react-native/util/runtimeInfo.js} +3 -3
- package/dist/react-native/util/sasServiceClientCredentials.d.ts +31 -0
- package/dist/react-native/util/sasServiceClientCredentials.d.ts.map +1 -0
- package/dist/react-native/util/sasServiceClientCredentials.js +52 -0
- package/dist/react-native/util/sasServiceClientCredentials.js.map +1 -0
- package/dist/react-native/util/semaphore.d.ts +38 -0
- package/dist/react-native/util/semaphore.d.ts.map +1 -0
- package/dist/react-native/util/semaphore.js +81 -0
- package/dist/react-native/util/semaphore.js.map +1 -0
- package/dist/react-native/util/typeGuards.d.ts +8 -0
- package/dist/react-native/util/typeGuards.d.ts.map +1 -0
- package/dist/react-native/util/typeGuards.js +12 -0
- package/dist/react-native/util/typeGuards.js.map +1 -0
- package/dist/react-native/util/utils.d.ts +247 -0
- package/dist/react-native/util/utils.d.ts.map +1 -0
- package/dist/react-native/util/utils.js +496 -0
- package/dist/react-native/util/utils.js.map +1 -0
- package/package.json +123 -104
- package/dist/index.js +0 -10438
- package/dist/index.js.map +0 -1
- package/dist-esm/src/connectionContext.js.map +0 -1
- package/dist-esm/src/constructorHelpers.js.map +0 -1
- package/dist-esm/src/core/autoLockRenewer.js.map +0 -1
- package/dist-esm/src/core/batchingReceiver.js.map +0 -1
- package/dist-esm/src/core/linkEntity.js.map +0 -1
- package/dist-esm/src/core/managementClient.js.map +0 -1
- package/dist-esm/src/core/messageReceiver.js.map +0 -1
- package/dist-esm/src/core/messageSender.js.map +0 -1
- package/dist-esm/src/core/receiverHelper.js.map +0 -1
- package/dist-esm/src/core/shared.js.map +0 -1
- package/dist-esm/src/core/streamingReceiver.js.map +0 -1
- package/dist-esm/src/dataTransformer.js.map +0 -1
- package/dist-esm/src/diagnostics/instrumentServiceBusMessage.js.map +0 -1
- package/dist-esm/src/diagnostics/tracing.js.map +0 -1
- package/dist-esm/src/index.js.map +0 -1
- package/dist-esm/src/log.js.map +0 -1
- package/dist-esm/src/models.js +0 -4
- package/dist-esm/src/models.js.map +0 -1
- package/dist-esm/src/modelsToBeSharedWithEventHubs.js +0 -4
- package/dist-esm/src/modelsToBeSharedWithEventHubs.js.map +0 -1
- package/dist-esm/src/receivers/receiver.js.map +0 -1
- package/dist-esm/src/receivers/receiverCommon.js.map +0 -1
- package/dist-esm/src/receivers/sessionReceiver.js.map +0 -1
- package/dist-esm/src/sender.js.map +0 -1
- package/dist-esm/src/serializers/namespaceResourceSerializer.js.map +0 -1
- package/dist-esm/src/serializers/queueResourceSerializer.js.map +0 -1
- package/dist-esm/src/serializers/ruleResourceSerializer.js.map +0 -1
- package/dist-esm/src/serializers/subscriptionResourceSerializer.js.map +0 -1
- package/dist-esm/src/serializers/topicResourceSerializer.js.map +0 -1
- package/dist-esm/src/serviceBusAtomManagementClient.js.map +0 -1
- package/dist-esm/src/serviceBusClient.js.map +0 -1
- package/dist-esm/src/serviceBusError.js.map +0 -1
- package/dist-esm/src/serviceBusMessage.js.map +0 -1
- package/dist-esm/src/serviceBusMessageBatch.js.map +0 -1
- package/dist-esm/src/serviceBusRuleManager.js.map +0 -1
- package/dist-esm/src/session/messageSession.js.map +0 -1
- package/dist-esm/src/util/atomXmlHelper.js.map +0 -1
- package/dist-esm/src/util/compat/compatibility.js.map +0 -1
- package/dist-esm/src/util/compat/httpHeaders.js.map +0 -1
- package/dist-esm/src/util/compat/index.js +0 -5
- package/dist-esm/src/util/compat/index.js.map +0 -1
- package/dist-esm/src/util/connectionStringUtils.js.map +0 -1
- package/dist-esm/src/util/crypto.browser.js.map +0 -1
- package/dist-esm/src/util/crypto.js.map +0 -1
- package/dist-esm/src/util/errors.js.map +0 -1
- package/dist-esm/src/util/parseUrl.browser.js.map +0 -1
- package/dist-esm/src/util/parseUrl.js.map +0 -1
- package/dist-esm/src/util/runtimeInfo.browser.js.map +0 -1
- package/dist-esm/src/util/runtimeInfo.js.map +0 -1
- package/dist-esm/src/util/runtimeInfo.native.js.map +0 -1
- package/dist-esm/src/util/sasServiceClientCredentials.js.map +0 -1
- package/dist-esm/src/util/semaphore.js.map +0 -1
- package/dist-esm/src/util/typeGuards.js.map +0 -1
- package/dist-esm/src/util/utils.js.map +0 -1
- package/types/latest/service-bus-beta.d.ts +0 -3197
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { receiverLogger as logger } from "../log.js";
|
|
4
|
+
import { ReceiverEvents, SessionEvents } from "rhea-promise";
|
|
5
|
+
import { ServiceBusMessageImpl } from "../serviceBusMessage.js";
|
|
6
|
+
import { MessageReceiver } from "./messageReceiver.js";
|
|
7
|
+
import { throwErrorIfConnectionClosed } from "../util/errors.js";
|
|
8
|
+
import { checkAndRegisterWithAbortSignal } from "../util/utils.js";
|
|
9
|
+
import { receiveDrainTimeoutInMs } from "../util/constants.js";
|
|
10
|
+
import { toProcessingSpanOptions } from "../diagnostics/instrumentServiceBusMessage.js";
|
|
11
|
+
import { ServiceBusError, translateServiceBusError } from "../serviceBusError.js";
|
|
12
|
+
import { tracingClient } from "../diagnostics/tracing.js";
|
|
13
|
+
/**
|
|
14
|
+
* Describes the batching receiver where the user can receive a specified number of messages for
|
|
15
|
+
* a predefined time.
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export class BatchingReceiver extends MessageReceiver {
|
|
19
|
+
/**
|
|
20
|
+
* Instantiate a new BatchingReceiver.
|
|
21
|
+
*
|
|
22
|
+
* @param identifier - name to identify this receiver.
|
|
23
|
+
* @param connectionContext - The client entity context.
|
|
24
|
+
* @param options - Options for how you'd like to connect.
|
|
25
|
+
*/
|
|
26
|
+
constructor(identifier, connectionContext, entityPath, options) {
|
|
27
|
+
super(identifier, connectionContext, entityPath, "batching", options);
|
|
28
|
+
this._batchingReceiverLite = new BatchingReceiverLite(connectionContext, entityPath, async (abortSignal) => {
|
|
29
|
+
let lastError;
|
|
30
|
+
const rcvrOptions = this._createReceiverOptions(false, {
|
|
31
|
+
onError: (context) => {
|
|
32
|
+
lastError = context?.receiver?.error;
|
|
33
|
+
},
|
|
34
|
+
onSessionError: (context) => {
|
|
35
|
+
lastError = context?.session?.error;
|
|
36
|
+
},
|
|
37
|
+
onClose: async () => {
|
|
38
|
+
/** Nothing to do here - the next call will just fail so they'll get an appropriate error from somewhere else. */
|
|
39
|
+
},
|
|
40
|
+
onSessionClose: async () => {
|
|
41
|
+
/** Nothing to do here - the next call will just fail so they'll get an appropriate error from somewhere else. */
|
|
42
|
+
},
|
|
43
|
+
onMessage: async () => {
|
|
44
|
+
/** Nothing to do here - we don't add credits initially so we don't need to worry about handling any messages.*/
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
await this._init(rcvrOptions, abortSignal);
|
|
48
|
+
if (lastError != null) {
|
|
49
|
+
throw lastError;
|
|
50
|
+
}
|
|
51
|
+
return this.link;
|
|
52
|
+
}, this.receiveMode, options.skipParsingBodyAsJson ?? false, options.skipConvertingDate ?? false);
|
|
53
|
+
}
|
|
54
|
+
_batchingReceiverLite;
|
|
55
|
+
get isReceivingMessages() {
|
|
56
|
+
return this._batchingReceiverLite.isReceivingMessages;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* To be called when connection is disconnected to gracefully close ongoing receive request.
|
|
60
|
+
* @param connectionError - The connection error if any.
|
|
61
|
+
*/
|
|
62
|
+
async onDetached(connectionError) {
|
|
63
|
+
await this.closeLink();
|
|
64
|
+
if (connectionError == null) {
|
|
65
|
+
connectionError = new Error("Unknown error occurred on the AMQP connection while receiving messages.");
|
|
66
|
+
}
|
|
67
|
+
this._batchingReceiverLite.terminate(connectionError);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Receives a batch of messages from a ServiceBus Queue/Topic.
|
|
71
|
+
* @param maxMessageCount - The maximum number of messages to receive.
|
|
72
|
+
* In Peeklock mode, this number is capped at 2047 due to constraints of the underlying buffer.
|
|
73
|
+
* @param maxWaitTimeInMs - The total wait time in milliseconds until which the receiver will attempt to receive specified number of messages.
|
|
74
|
+
* @param maxTimeAfterFirstMessageInMs - The total amount of time to wait after the first message
|
|
75
|
+
* has been received. Defaults to 1 second.
|
|
76
|
+
* If this time elapses before the `maxMessageCount` is reached, then messages collected till then will be returned to the user.
|
|
77
|
+
* @returns A promise that resolves with an array of Message objects.
|
|
78
|
+
*/
|
|
79
|
+
async receive(maxMessageCount, maxWaitTimeInMs, maxTimeAfterFirstMessageInMs, options) {
|
|
80
|
+
throwErrorIfConnectionClosed(this._context);
|
|
81
|
+
try {
|
|
82
|
+
const messages = await this._batchingReceiverLite.receiveMessages({
|
|
83
|
+
maxMessageCount,
|
|
84
|
+
maxWaitTimeInMs,
|
|
85
|
+
maxTimeAfterFirstMessageInMs,
|
|
86
|
+
...options,
|
|
87
|
+
});
|
|
88
|
+
if (this._lockRenewer) {
|
|
89
|
+
for (const message of messages) {
|
|
90
|
+
this._lockRenewer.start(this, message, (_error) => {
|
|
91
|
+
// the auto lock renewer already logs this in a detailed way. So this hook is mainly here
|
|
92
|
+
// to potentially forward the error to the user (which we're not doing yet)
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return messages;
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
logger.logError(error, "[%s] Rejecting receiveMessages()", this.logPrefix);
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
static create(clientId, context, entityPath, options) {
|
|
104
|
+
throwErrorIfConnectionClosed(context);
|
|
105
|
+
const bReceiver = new BatchingReceiver(clientId, context, entityPath, options);
|
|
106
|
+
context.messageReceivers[bReceiver.name] = bReceiver;
|
|
107
|
+
return bReceiver;
|
|
108
|
+
}
|
|
109
|
+
removeLinkFromContext() {
|
|
110
|
+
delete this._context.messageReceivers[this.name];
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Gets a function that returns the smaller of the two timeouts,
|
|
115
|
+
* taking into account elapsed time from when getRemainingWaitTimeInMsFn
|
|
116
|
+
* was called.
|
|
117
|
+
*
|
|
118
|
+
* @param maxWaitTimeInMs - Maximum time to wait for the first message
|
|
119
|
+
* @param maxTimeAfterFirstMessageInMs - Maximum time to wait after the first message before completing the receive.
|
|
120
|
+
*
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
export function getRemainingWaitTimeInMsFn(maxWaitTimeInMs, maxTimeAfterFirstMessageInMs) {
|
|
124
|
+
const startTimeMs = Date.now();
|
|
125
|
+
return () => {
|
|
126
|
+
const remainingTimeMs = maxWaitTimeInMs - (Date.now() - startTimeMs);
|
|
127
|
+
if (remainingTimeMs < 0) {
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
return Math.min(remainingTimeMs, maxTimeAfterFirstMessageInMs);
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* The internals of a batching receiver minus anything that would require us to hold onto a client entity context
|
|
135
|
+
* or a receiver on a permanent basis.
|
|
136
|
+
*
|
|
137
|
+
* Usable with both session and non-session receivers.
|
|
138
|
+
*
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
export class BatchingReceiverLite {
|
|
142
|
+
_connectionContext;
|
|
143
|
+
entityPath;
|
|
144
|
+
_getCurrentReceiver;
|
|
145
|
+
_receiveMode;
|
|
146
|
+
// testing hook
|
|
147
|
+
_drainTimeoutInMs = receiveDrainTimeoutInMs;
|
|
148
|
+
constructor(_connectionContext, entityPath, _getCurrentReceiver, _receiveMode, _skipParsingBodyAsJson, _skipConvertingDate) {
|
|
149
|
+
this._connectionContext = _connectionContext;
|
|
150
|
+
this.entityPath = entityPath;
|
|
151
|
+
this._getCurrentReceiver = _getCurrentReceiver;
|
|
152
|
+
this._receiveMode = _receiveMode;
|
|
153
|
+
this._createServiceBusMessage = (context) => {
|
|
154
|
+
return new ServiceBusMessageImpl(context.message, context.delivery, true, this._receiveMode, _skipParsingBodyAsJson, _skipConvertingDate);
|
|
155
|
+
};
|
|
156
|
+
this._getRemainingWaitTimeInMsFn = (maxWaitTimeInMs, maxTimeAfterFirstMessageInMs) => getRemainingWaitTimeInMsFn(maxWaitTimeInMs, maxTimeAfterFirstMessageInMs);
|
|
157
|
+
this.isReceivingMessages = false;
|
|
158
|
+
}
|
|
159
|
+
_createServiceBusMessage;
|
|
160
|
+
_getRemainingWaitTimeInMsFn;
|
|
161
|
+
_closeHandler;
|
|
162
|
+
_finalAction;
|
|
163
|
+
isReceivingMessages;
|
|
164
|
+
/**
|
|
165
|
+
* Receives a set of messages,
|
|
166
|
+
*
|
|
167
|
+
* @internal
|
|
168
|
+
* @hidden
|
|
169
|
+
*/
|
|
170
|
+
async receiveMessages(args) {
|
|
171
|
+
try {
|
|
172
|
+
this.isReceivingMessages = true;
|
|
173
|
+
const receiver = await this._getCurrentReceiver(args.abortSignal);
|
|
174
|
+
if (receiver == null) {
|
|
175
|
+
// (was somehow closed in between the init() and the return)
|
|
176
|
+
throw new ServiceBusError("Link closed before receiving messages.", "GeneralError");
|
|
177
|
+
}
|
|
178
|
+
const messages = await new Promise((resolve, reject) => this._receiveMessagesImpl(receiver, args, resolve, reject));
|
|
179
|
+
return tracingClient.withSpan("BatchingReceiverLite.process", args, () => messages, toProcessingSpanOptions(messages, this, this._connectionContext.config, "process"));
|
|
180
|
+
}
|
|
181
|
+
finally {
|
|
182
|
+
this._closeHandler = undefined;
|
|
183
|
+
this.isReceivingMessages = false;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Closes the receiver (optionally with an error), cancelling any current operations.
|
|
188
|
+
*
|
|
189
|
+
* @param connectionError - An optional error (rhea doesn't always deliver one for certain disconnection events)
|
|
190
|
+
*/
|
|
191
|
+
terminate(connectionError) {
|
|
192
|
+
if (this._closeHandler) {
|
|
193
|
+
this._closeHandler(connectionError);
|
|
194
|
+
this._closeHandler = undefined;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
async tryDrainReceiver(receiver, loggingPrefix, remainingWaitTimeInMs, abortSignal) {
|
|
198
|
+
if (!receiver.isOpen() || receiver.credit <= 0) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
let drainTimedout = false;
|
|
202
|
+
let drainTimer;
|
|
203
|
+
const timeToWaitInMs = Math.max(this._drainTimeoutInMs, remainingWaitTimeInMs);
|
|
204
|
+
const drainPromise = new Promise((resolve) => {
|
|
205
|
+
function drainListener() {
|
|
206
|
+
logger.verbose(`${loggingPrefix} Receiver has been drained.`);
|
|
207
|
+
clearTimeout(drainTimer);
|
|
208
|
+
resolve();
|
|
209
|
+
}
|
|
210
|
+
function removeListeners() {
|
|
211
|
+
abortSignal?.removeEventListener("abort", onAbort);
|
|
212
|
+
receiver.removeListener(ReceiverEvents.receiverDrained, drainListener);
|
|
213
|
+
}
|
|
214
|
+
function onAbort() {
|
|
215
|
+
removeListeners();
|
|
216
|
+
clearTimeout(drainTimer);
|
|
217
|
+
resolve();
|
|
218
|
+
}
|
|
219
|
+
drainTimer = setTimeout(() => {
|
|
220
|
+
drainTimedout = true;
|
|
221
|
+
removeListeners();
|
|
222
|
+
resolve();
|
|
223
|
+
}, timeToWaitInMs);
|
|
224
|
+
receiver.once(ReceiverEvents.receiverDrained, drainListener);
|
|
225
|
+
abortSignal?.addEventListener("abort", onAbort);
|
|
226
|
+
});
|
|
227
|
+
receiver.drainCredit();
|
|
228
|
+
logger.verbose(`${loggingPrefix} Draining leftover credits(${receiver.credit}), waiting for event_drained event, or timing out after ${timeToWaitInMs} milliseconds...`);
|
|
229
|
+
await drainPromise;
|
|
230
|
+
if (drainTimedout) {
|
|
231
|
+
logger.warning(`${loggingPrefix} Time out after ${timeToWaitInMs} milliseconds when draining credits. Closing receiver...`);
|
|
232
|
+
// Close the receiver link since we have not received the receiver drain event
|
|
233
|
+
// to prevent out-of-sync state between local and remote
|
|
234
|
+
await receiver.close();
|
|
235
|
+
}
|
|
236
|
+
// Turn off draining.
|
|
237
|
+
receiver.drain = false;
|
|
238
|
+
}
|
|
239
|
+
_receiveMessagesImpl(receiver, args, origResolve, origReject) {
|
|
240
|
+
const getRemainingWaitTimeInMs = this._getRemainingWaitTimeInMsFn(args.maxWaitTimeInMs, args.maxTimeAfterFirstMessageInMs);
|
|
241
|
+
const brokeredMessages = [];
|
|
242
|
+
const loggingPrefix = `[${receiver.connection.id}|r:${receiver.name}]`;
|
|
243
|
+
let totalWaitTimer;
|
|
244
|
+
// eslint-disable-next-line prefer-const
|
|
245
|
+
let cleanupBeforeResolveOrReject;
|
|
246
|
+
const rejectAfterCleanup = (err) => {
|
|
247
|
+
cleanupBeforeResolveOrReject();
|
|
248
|
+
origReject(err);
|
|
249
|
+
};
|
|
250
|
+
const resolveImmediately = (result) => {
|
|
251
|
+
cleanupBeforeResolveOrReject();
|
|
252
|
+
origResolve(result);
|
|
253
|
+
};
|
|
254
|
+
const resolveAfterPendingMessageCallbacks = (result) => {
|
|
255
|
+
// NOTE: through rhea-promise, most of our event handlers are made asynchronous by calling setTimeout(emit).
|
|
256
|
+
// However, a small set (*error and drain) execute immediately. This can lead to a situation where the logical
|
|
257
|
+
// ordering of events is correct but the execution order is incorrect because the events are not all getting
|
|
258
|
+
// put into the task queue the same way.
|
|
259
|
+
// setTimeout() ensures that we resolve _after_ any already-queued onMessage handlers that may
|
|
260
|
+
// be waiting in the task queue.
|
|
261
|
+
setTimeout(() => {
|
|
262
|
+
cleanupBeforeResolveOrReject();
|
|
263
|
+
origResolve(result);
|
|
264
|
+
});
|
|
265
|
+
};
|
|
266
|
+
const onError = (context) => {
|
|
267
|
+
const eventType = context.session?.error != null ? "session_error" : "receiver_error";
|
|
268
|
+
let error = context.session?.error || context.receiver?.error;
|
|
269
|
+
if (error) {
|
|
270
|
+
error = translateServiceBusError(error);
|
|
271
|
+
logger.logError(error, `${loggingPrefix} '${eventType}' event occurred. Received an error`);
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
error = new ServiceBusError("An error occurred while receiving messages.", "GeneralError");
|
|
275
|
+
}
|
|
276
|
+
rejectAfterCleanup(error);
|
|
277
|
+
};
|
|
278
|
+
this._closeHandler = (error) => {
|
|
279
|
+
if (
|
|
280
|
+
// no error, just closing. Go ahead and return what we have.
|
|
281
|
+
error == null ||
|
|
282
|
+
// Return the collected messages if in ReceiveAndDelete mode because otherwise they are lost forever
|
|
283
|
+
(this._receiveMode === "receiveAndDelete" && brokeredMessages.length)) {
|
|
284
|
+
logger.verbose(`${loggingPrefix} Closing. Resolving with ${brokeredMessages.length} messages.`);
|
|
285
|
+
return resolveAfterPendingMessageCallbacks(brokeredMessages);
|
|
286
|
+
}
|
|
287
|
+
rejectAfterCleanup(translateServiceBusError(error));
|
|
288
|
+
};
|
|
289
|
+
let abortSignalCleanupFunction = undefined;
|
|
290
|
+
// Final action to be performed after
|
|
291
|
+
// - maxMessageCount is reached or
|
|
292
|
+
// - maxWaitTime is passed or
|
|
293
|
+
// - newMessageWaitTimeoutInSeconds is passed since the last message was received
|
|
294
|
+
this._finalAction = async () => {
|
|
295
|
+
if (receiver.drain) {
|
|
296
|
+
// If a drain is already in process then we should let it complete. Some messages might still be in flight, but they will
|
|
297
|
+
// arrive before the drain completes.
|
|
298
|
+
logger.verbose(`${loggingPrefix} Already draining.`);
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
const remainingWaitTimeInMs = getRemainingWaitTimeInMs();
|
|
302
|
+
await this.tryDrainReceiver(receiver, loggingPrefix, remainingWaitTimeInMs, args.abortSignal);
|
|
303
|
+
logger.verbose(`${loggingPrefix} Resolving receiveMessages() with ${brokeredMessages.length} messages.`);
|
|
304
|
+
resolveImmediately(brokeredMessages);
|
|
305
|
+
};
|
|
306
|
+
// Action to be performed on the "message" event.
|
|
307
|
+
const onReceiveMessage = async (context) => {
|
|
308
|
+
// TODO: this appears to be aggravating a bug that we need to look into more deeply.
|
|
309
|
+
// The same timeout+drain sequence should work fine for receiveAndDelete but it appears
|
|
310
|
+
// to cause problems.
|
|
311
|
+
if (this._receiveMode === "peekLock") {
|
|
312
|
+
if (brokeredMessages.length === 0) {
|
|
313
|
+
// We'll now remove the old timer (which was the overall `maxWaitTimeMs` timer)
|
|
314
|
+
// and replace it with another timer that is a (probably) much shorter interval.
|
|
315
|
+
//
|
|
316
|
+
// This allows the user to get access to received messages earlier and also gives us
|
|
317
|
+
// a chance to have fewer messages internally that could get lost if the user's
|
|
318
|
+
// app crashes.
|
|
319
|
+
if (totalWaitTimer)
|
|
320
|
+
clearTimeout(totalWaitTimer);
|
|
321
|
+
const remainingWaitTimeInMs = getRemainingWaitTimeInMs();
|
|
322
|
+
totalWaitTimer = setTimeout(() => {
|
|
323
|
+
logger.verbose(`${loggingPrefix} Batching, waited for ${remainingWaitTimeInMs} milliseconds after receiving the first message.`);
|
|
324
|
+
this._finalAction();
|
|
325
|
+
}, remainingWaitTimeInMs);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
try {
|
|
329
|
+
const data = this._createServiceBusMessage(context);
|
|
330
|
+
brokeredMessages.push(data);
|
|
331
|
+
// NOTE: we used to actually "lose" any extra messages. At this point I've fixed the areas that were causing us to receive
|
|
332
|
+
// extra messages but if this bug arises in some other way it's better to return the message than it would be to let it be
|
|
333
|
+
// silently dropped on the floor.
|
|
334
|
+
if (brokeredMessages.length > args.maxMessageCount) {
|
|
335
|
+
logger.warning(`More messages arrived than expected: ${args.maxMessageCount} vs ${brokeredMessages.length}`);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
catch (err) {
|
|
339
|
+
const errObj = err instanceof Error ? err : new Error(JSON.stringify(err));
|
|
340
|
+
logger.logError(err, `${loggingPrefix} Received an error while converting AmqpMessage to ServiceBusMessage`);
|
|
341
|
+
rejectAfterCleanup(errObj);
|
|
342
|
+
}
|
|
343
|
+
if (brokeredMessages.length >= args.maxMessageCount) {
|
|
344
|
+
this._finalAction();
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
const onClose = async (context) => {
|
|
348
|
+
const type = context.session?.error != null ? "session_closed" : "receiver_closed";
|
|
349
|
+
const error = context.session?.error || context.receiver?.error;
|
|
350
|
+
if (error) {
|
|
351
|
+
logger.logError(error, `${loggingPrefix} '${type}' event occurred. The associated error`);
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
cleanupBeforeResolveOrReject = () => {
|
|
355
|
+
if (receiver != null) {
|
|
356
|
+
receiver.removeListener(ReceiverEvents.receiverError, onError);
|
|
357
|
+
receiver.removeListener(ReceiverEvents.message, onReceiveMessage);
|
|
358
|
+
receiver.session.removeListener(SessionEvents.sessionError, onError);
|
|
359
|
+
receiver.removeListener(ReceiverEvents.receiverClose, onClose);
|
|
360
|
+
receiver.session.removeListener(SessionEvents.sessionClose, onClose);
|
|
361
|
+
}
|
|
362
|
+
if (totalWaitTimer) {
|
|
363
|
+
clearTimeout(totalWaitTimer);
|
|
364
|
+
}
|
|
365
|
+
if (abortSignalCleanupFunction) {
|
|
366
|
+
abortSignalCleanupFunction();
|
|
367
|
+
}
|
|
368
|
+
abortSignalCleanupFunction = undefined;
|
|
369
|
+
};
|
|
370
|
+
abortSignalCleanupFunction = checkAndRegisterWithAbortSignal((err) => {
|
|
371
|
+
if (receiver.drain) {
|
|
372
|
+
// If a drain is already in process and we cancel, the link state may be out of sync
|
|
373
|
+
// with remote. Reset the link so that we will have fresh start.
|
|
374
|
+
receiver.close();
|
|
375
|
+
}
|
|
376
|
+
rejectAfterCleanup(err);
|
|
377
|
+
}, args.abortSignal);
|
|
378
|
+
// By adding credit here, we let the service know that at max we can handle `maxMessageCount`
|
|
379
|
+
// number of messages concurrently. We will return the user an array of messages that can
|
|
380
|
+
// be of size upto maxMessageCount. Then the user needs to accordingly dispose
|
|
381
|
+
// (complete/abandon/defer/deadletter) the messages from the array.
|
|
382
|
+
const creditToAdd = args.maxMessageCount - receiver.credit;
|
|
383
|
+
logger.verbose(`${loggingPrefix} Ensure enough credit for receiving ${args.maxMessageCount} messages. Current: ${receiver.credit}. To add: ${creditToAdd}.`);
|
|
384
|
+
if (creditToAdd > 0) {
|
|
385
|
+
receiver.addCredit(creditToAdd);
|
|
386
|
+
}
|
|
387
|
+
logger.verbose(`${loggingPrefix} Setting the wait timer for ${args.maxWaitTimeInMs} milliseconds.`);
|
|
388
|
+
totalWaitTimer = setTimeout(() => {
|
|
389
|
+
logger.verbose(`${loggingPrefix} Batching, waited for max wait time ${args.maxWaitTimeInMs} milliseconds.`);
|
|
390
|
+
this._finalAction();
|
|
391
|
+
}, args.maxWaitTimeInMs);
|
|
392
|
+
receiver.on(ReceiverEvents.message, onReceiveMessage);
|
|
393
|
+
receiver.on(ReceiverEvents.receiverError, onError);
|
|
394
|
+
receiver.on(ReceiverEvents.receiverClose, onClose);
|
|
395
|
+
receiver.session.on(SessionEvents.sessionError, onError);
|
|
396
|
+
receiver.session.on(SessionEvents.sessionClose, onClose);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=batchingReceiver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batchingReceiver.js","sourceRoot":"","sources":["../../../src/core/batchingReceiver.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { receiverLogger as logger } from \"../log.js\";\nimport type {\n AmqpError,\n EventContext,\n OnAmqpEvent,\n Receiver as RheaPromiseReceiver,\n Session,\n} from \"rhea-promise\";\nimport { ReceiverEvents, SessionEvents } from \"rhea-promise\";\nimport { ServiceBusMessageImpl } from \"../serviceBusMessage.js\";\nimport type { OnAmqpEventAsPromise, ReceiveOptions } from \"./messageReceiver.js\";\nimport { MessageReceiver } from \"./messageReceiver.js\";\nimport type { ConnectionContext } from \"../connectionContext.js\";\nimport { throwErrorIfConnectionClosed } from \"../util/errors.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { checkAndRegisterWithAbortSignal } from \"../util/utils.js\";\nimport { receiveDrainTimeoutInMs } from \"../util/constants.js\";\nimport type { OperationOptionsBase } from \"../modelsToBeSharedWithEventHubs.js\";\nimport { toProcessingSpanOptions } from \"../diagnostics/instrumentServiceBusMessage.js\";\nimport type { ReceiveMode } from \"../models.js\";\nimport { ServiceBusError, translateServiceBusError } from \"../serviceBusError.js\";\nimport { tracingClient } from \"../diagnostics/tracing.js\";\n\n/**\n * Describes the batching receiver where the user can receive a specified number of messages for\n * a predefined time.\n * @internal\n */\nexport class BatchingReceiver extends MessageReceiver {\n /**\n * Instantiate a new BatchingReceiver.\n *\n * @param identifier - name to identify this receiver.\n * @param connectionContext - The client entity context.\n * @param options - Options for how you'd like to connect.\n */\n constructor(\n identifier: string,\n connectionContext: ConnectionContext,\n entityPath: string,\n options: ReceiveOptions,\n ) {\n super(identifier, connectionContext, entityPath, \"batching\", options);\n\n this._batchingReceiverLite = new BatchingReceiverLite(\n connectionContext,\n entityPath,\n async (abortSignal?: AbortSignalLike): Promise<MinimalReceiver | undefined> => {\n let lastError: Error | AmqpError | undefined;\n\n const rcvrOptions = this._createReceiverOptions(false, {\n onError: (context) => {\n lastError = context?.receiver?.error;\n },\n onSessionError: (context) => {\n lastError = context?.session?.error;\n },\n onClose: async () => {\n /** Nothing to do here - the next call will just fail so they'll get an appropriate error from somewhere else. */\n },\n onSessionClose: async () => {\n /** Nothing to do here - the next call will just fail so they'll get an appropriate error from somewhere else. */\n },\n onMessage: async () => {\n /** Nothing to do here - we don't add credits initially so we don't need to worry about handling any messages.*/\n },\n });\n\n await this._init(rcvrOptions, abortSignal);\n\n if (lastError != null) {\n throw lastError;\n }\n\n return this.link;\n },\n this.receiveMode,\n options.skipParsingBodyAsJson ?? false,\n options.skipConvertingDate ?? false,\n );\n }\n\n private _batchingReceiverLite: BatchingReceiverLite;\n\n get isReceivingMessages(): boolean {\n return this._batchingReceiverLite.isReceivingMessages;\n }\n\n /**\n * To be called when connection is disconnected to gracefully close ongoing receive request.\n * @param connectionError - The connection error if any.\n */\n async onDetached(connectionError?: AmqpError | Error): Promise<void> {\n await this.closeLink();\n\n if (connectionError == null) {\n connectionError = new Error(\n \"Unknown error occurred on the AMQP connection while receiving messages.\",\n );\n }\n\n this._batchingReceiverLite.terminate(connectionError);\n }\n\n /**\n * Receives a batch of messages from a ServiceBus Queue/Topic.\n * @param maxMessageCount - The maximum number of messages to receive.\n * In Peeklock mode, this number is capped at 2047 due to constraints of the underlying buffer.\n * @param maxWaitTimeInMs - The total wait time in milliseconds until which the receiver will attempt to receive specified number of messages.\n * @param maxTimeAfterFirstMessageInMs - The total amount of time to wait after the first message\n * has been received. Defaults to 1 second.\n * If this time elapses before the `maxMessageCount` is reached, then messages collected till then will be returned to the user.\n * @returns A promise that resolves with an array of Message objects.\n */\n async receive(\n maxMessageCount: number,\n maxWaitTimeInMs: number,\n maxTimeAfterFirstMessageInMs: number,\n options: OperationOptionsBase,\n ): Promise<ServiceBusMessageImpl[]> {\n throwErrorIfConnectionClosed(this._context);\n try {\n const messages = await this._batchingReceiverLite.receiveMessages({\n maxMessageCount,\n maxWaitTimeInMs,\n maxTimeAfterFirstMessageInMs,\n ...options,\n });\n\n if (this._lockRenewer) {\n for (const message of messages) {\n this._lockRenewer.start(this, message, (_error) => {\n // the auto lock renewer already logs this in a detailed way. So this hook is mainly here\n // to potentially forward the error to the user (which we're not doing yet)\n });\n }\n }\n\n return messages;\n } catch (error: any) {\n logger.logError(error, \"[%s] Rejecting receiveMessages()\", this.logPrefix);\n throw error;\n }\n }\n\n static create(\n clientId: string,\n context: ConnectionContext,\n entityPath: string,\n options: ReceiveOptions,\n ): BatchingReceiver {\n throwErrorIfConnectionClosed(context);\n const bReceiver = new BatchingReceiver(clientId, context, entityPath, options);\n context.messageReceivers[bReceiver.name] = bReceiver;\n return bReceiver;\n }\n\n protected removeLinkFromContext(): void {\n delete this._context.messageReceivers[this.name];\n }\n}\n\n/**\n * Gets a function that returns the smaller of the two timeouts,\n * taking into account elapsed time from when getRemainingWaitTimeInMsFn\n * was called.\n *\n * @param maxWaitTimeInMs - Maximum time to wait for the first message\n * @param maxTimeAfterFirstMessageInMs - Maximum time to wait after the first message before completing the receive.\n *\n * @internal\n */\nexport function getRemainingWaitTimeInMsFn(\n maxWaitTimeInMs: number,\n maxTimeAfterFirstMessageInMs: number,\n): () => number {\n const startTimeMs = Date.now();\n\n return () => {\n const remainingTimeMs = maxWaitTimeInMs - (Date.now() - startTimeMs);\n\n if (remainingTimeMs < 0) {\n return 0;\n }\n\n return Math.min(remainingTimeMs, maxTimeAfterFirstMessageInMs);\n };\n}\n\n/**\n * Useful interface that mimics EventEmitter without requiring us to actually\n * import the events definition (which is annoying with browsers).\n *\n * @internal\n */\ntype EventEmitterLike<T extends RheaPromiseReceiver | Session> = Pick<\n T,\n \"once\" | \"removeListener\" | \"on\"\n>;\n\n/**\n * The bare minimum needed to receive messages for batched\n * message receiving.\n *\n * @internal\n */\nexport type MinimalReceiver = Pick<\n RheaPromiseReceiver,\n \"name\" | \"isOpen\" | \"credit\" | \"addCredit\" | \"drain\" | \"drainCredit\" | \"close\"\n> &\n EventEmitterLike<RheaPromiseReceiver> & {\n session: EventEmitterLike<Session>;\n } & {\n connection: {\n id: string;\n };\n };\n\n/**\n * @internal\n */\ntype MessageAndDelivery = Pick<EventContext, \"message\" | \"delivery\">;\n\n/**\n * @internal\n */\ninterface ReceiveMessageArgs extends OperationOptionsBase {\n maxMessageCount: number;\n maxWaitTimeInMs: number;\n maxTimeAfterFirstMessageInMs: number;\n}\n\n/**\n * The internals of a batching receiver minus anything that would require us to hold onto a client entity context\n * or a receiver on a permanent basis.\n *\n * Usable with both session and non-session receivers.\n *\n * @internal\n */\nexport class BatchingReceiverLite {\n // testing hook\n private _drainTimeoutInMs: number = receiveDrainTimeoutInMs;\n constructor(\n private _connectionContext: ConnectionContext,\n public entityPath: string,\n private _getCurrentReceiver: (\n abortSignal?: AbortSignalLike,\n ) => Promise<MinimalReceiver | undefined>,\n private _receiveMode: ReceiveMode,\n _skipParsingBodyAsJson: boolean,\n _skipConvertingDate: boolean,\n ) {\n this._createServiceBusMessage = (context: MessageAndDelivery) => {\n return new ServiceBusMessageImpl(\n context.message!,\n context.delivery!,\n true,\n this._receiveMode,\n _skipParsingBodyAsJson,\n _skipConvertingDate,\n );\n };\n\n this._getRemainingWaitTimeInMsFn = (\n maxWaitTimeInMs: number,\n maxTimeAfterFirstMessageInMs: number,\n ) => getRemainingWaitTimeInMsFn(maxWaitTimeInMs, maxTimeAfterFirstMessageInMs);\n\n this.isReceivingMessages = false;\n }\n\n private _createServiceBusMessage: (\n context: Pick<EventContext, \"message\" | \"delivery\">,\n ) => ServiceBusMessageImpl;\n\n private _getRemainingWaitTimeInMsFn: typeof getRemainingWaitTimeInMsFn;\n private _closeHandler: ((connectionError?: AmqpError | Error) => void) | undefined;\n private _finalAction: (() => void) | undefined;\n\n isReceivingMessages: boolean;\n\n /**\n * Receives a set of messages,\n *\n * @internal\n * @hidden\n */\n public async receiveMessages(args: ReceiveMessageArgs): Promise<ServiceBusMessageImpl[]> {\n try {\n this.isReceivingMessages = true;\n const receiver = await this._getCurrentReceiver(args.abortSignal);\n\n if (receiver == null) {\n // (was somehow closed in between the init() and the return)\n throw new ServiceBusError(\"Link closed before receiving messages.\", \"GeneralError\");\n }\n\n const messages = await new Promise<ServiceBusMessageImpl[]>((resolve, reject) =>\n this._receiveMessagesImpl(receiver, args, resolve, reject),\n );\n return tracingClient.withSpan(\n \"BatchingReceiverLite.process\",\n args,\n () => messages,\n toProcessingSpanOptions(messages, this, this._connectionContext.config, \"process\"),\n );\n } finally {\n this._closeHandler = undefined;\n this.isReceivingMessages = false;\n }\n }\n\n /**\n * Closes the receiver (optionally with an error), cancelling any current operations.\n *\n * @param connectionError - An optional error (rhea doesn't always deliver one for certain disconnection events)\n */\n terminate(connectionError?: Error | AmqpError): void {\n if (this._closeHandler) {\n this._closeHandler(connectionError);\n this._closeHandler = undefined;\n }\n }\n\n private async tryDrainReceiver(\n receiver: MinimalReceiver,\n loggingPrefix: string,\n remainingWaitTimeInMs: number,\n abortSignal?: AbortSignalLike,\n ): Promise<void> {\n if (!receiver.isOpen() || receiver.credit <= 0) {\n return;\n }\n let drainTimedout: boolean = false;\n let drainTimer: ReturnType<typeof setTimeout>;\n const timeToWaitInMs = Math.max(this._drainTimeoutInMs, remainingWaitTimeInMs);\n const drainPromise = new Promise<void>((resolve) => {\n function drainListener(): void {\n logger.verbose(`${loggingPrefix} Receiver has been drained.`);\n clearTimeout(drainTimer);\n resolve();\n }\n function removeListeners(): void {\n abortSignal?.removeEventListener(\"abort\", onAbort);\n receiver.removeListener(ReceiverEvents.receiverDrained, drainListener);\n }\n function onAbort(): void {\n removeListeners();\n clearTimeout(drainTimer);\n resolve();\n }\n\n drainTimer = setTimeout(() => {\n drainTimedout = true;\n removeListeners();\n resolve();\n }, timeToWaitInMs);\n receiver.once(ReceiverEvents.receiverDrained, drainListener);\n abortSignal?.addEventListener(\"abort\", onAbort);\n });\n\n receiver.drainCredit();\n logger.verbose(\n `${loggingPrefix} Draining leftover credits(${receiver.credit}), waiting for event_drained event, or timing out after ${timeToWaitInMs} milliseconds...`,\n );\n await drainPromise;\n if (drainTimedout) {\n logger.warning(\n `${loggingPrefix} Time out after ${timeToWaitInMs} milliseconds when draining credits. Closing receiver...`,\n );\n // Close the receiver link since we have not received the receiver drain event\n // to prevent out-of-sync state between local and remote\n await receiver.close();\n }\n\n // Turn off draining.\n receiver.drain = false;\n }\n\n private _receiveMessagesImpl(\n receiver: MinimalReceiver,\n args: ReceiveMessageArgs,\n origResolve: (messages: ServiceBusMessageImpl[]) => void,\n origReject: (err: Error | AmqpError) => void,\n ): void {\n const getRemainingWaitTimeInMs = this._getRemainingWaitTimeInMsFn(\n args.maxWaitTimeInMs,\n args.maxTimeAfterFirstMessageInMs,\n );\n\n const brokeredMessages: ServiceBusMessageImpl[] = [];\n const loggingPrefix = `[${receiver.connection.id}|r:${receiver.name}]`;\n\n let totalWaitTimer: NodeJS.Timeout | undefined;\n // eslint-disable-next-line prefer-const\n let cleanupBeforeResolveOrReject: () => void;\n\n const rejectAfterCleanup = (err: Error | AmqpError): void => {\n cleanupBeforeResolveOrReject();\n origReject(err);\n };\n\n const resolveImmediately = (result: ServiceBusMessageImpl[]): void => {\n cleanupBeforeResolveOrReject();\n origResolve(result);\n };\n\n const resolveAfterPendingMessageCallbacks = (result: ServiceBusMessageImpl[]): void => {\n // NOTE: through rhea-promise, most of our event handlers are made asynchronous by calling setTimeout(emit).\n // However, a small set (*error and drain) execute immediately. This can lead to a situation where the logical\n // ordering of events is correct but the execution order is incorrect because the events are not all getting\n // put into the task queue the same way.\n // setTimeout() ensures that we resolve _after_ any already-queued onMessage handlers that may\n // be waiting in the task queue.\n setTimeout(() => {\n cleanupBeforeResolveOrReject();\n origResolve(result);\n });\n };\n\n const onError: OnAmqpEvent = (context: EventContext) => {\n const eventType = context.session?.error != null ? \"session_error\" : \"receiver_error\";\n let error = context.session?.error || context.receiver?.error;\n\n if (error) {\n error = translateServiceBusError(error);\n logger.logError(error, `${loggingPrefix} '${eventType}' event occurred. Received an error`);\n } else {\n error = new ServiceBusError(\"An error occurred while receiving messages.\", \"GeneralError\");\n }\n rejectAfterCleanup(error);\n };\n\n this._closeHandler = (error?: AmqpError | Error): void => {\n if (\n // no error, just closing. Go ahead and return what we have.\n error == null ||\n // Return the collected messages if in ReceiveAndDelete mode because otherwise they are lost forever\n (this._receiveMode === \"receiveAndDelete\" && brokeredMessages.length)\n ) {\n logger.verbose(\n `${loggingPrefix} Closing. Resolving with ${brokeredMessages.length} messages.`,\n );\n return resolveAfterPendingMessageCallbacks(brokeredMessages);\n }\n\n rejectAfterCleanup(translateServiceBusError(error));\n };\n\n let abortSignalCleanupFunction: (() => void) | undefined = undefined;\n\n // Final action to be performed after\n // - maxMessageCount is reached or\n // - maxWaitTime is passed or\n // - newMessageWaitTimeoutInSeconds is passed since the last message was received\n this._finalAction = async (): Promise<void> => {\n if (receiver.drain) {\n // If a drain is already in process then we should let it complete. Some messages might still be in flight, but they will\n // arrive before the drain completes.\n logger.verbose(`${loggingPrefix} Already draining.`);\n return;\n }\n\n const remainingWaitTimeInMs = getRemainingWaitTimeInMs();\n await this.tryDrainReceiver(receiver, loggingPrefix, remainingWaitTimeInMs, args.abortSignal);\n logger.verbose(\n `${loggingPrefix} Resolving receiveMessages() with ${brokeredMessages.length} messages.`,\n );\n resolveImmediately(brokeredMessages);\n };\n\n // Action to be performed on the \"message\" event.\n const onReceiveMessage: OnAmqpEventAsPromise = async (context: EventContext) => {\n // TODO: this appears to be aggravating a bug that we need to look into more deeply.\n // The same timeout+drain sequence should work fine for receiveAndDelete but it appears\n // to cause problems.\n if (this._receiveMode === \"peekLock\") {\n if (brokeredMessages.length === 0) {\n // We'll now remove the old timer (which was the overall `maxWaitTimeMs` timer)\n // and replace it with another timer that is a (probably) much shorter interval.\n //\n // This allows the user to get access to received messages earlier and also gives us\n // a chance to have fewer messages internally that could get lost if the user's\n // app crashes.\n if (totalWaitTimer) clearTimeout(totalWaitTimer);\n const remainingWaitTimeInMs = getRemainingWaitTimeInMs();\n totalWaitTimer = setTimeout(() => {\n logger.verbose(\n `${loggingPrefix} Batching, waited for ${remainingWaitTimeInMs} milliseconds after receiving the first message.`,\n );\n this._finalAction!();\n }, remainingWaitTimeInMs);\n }\n }\n\n try {\n const data: ServiceBusMessageImpl = this._createServiceBusMessage(context);\n brokeredMessages.push(data);\n\n // NOTE: we used to actually \"lose\" any extra messages. At this point I've fixed the areas that were causing us to receive\n // extra messages but if this bug arises in some other way it's better to return the message than it would be to let it be\n // silently dropped on the floor.\n if (brokeredMessages.length > args.maxMessageCount) {\n logger.warning(\n `More messages arrived than expected: ${args.maxMessageCount} vs ${brokeredMessages.length}`,\n );\n }\n } catch (err: any) {\n const errObj = err instanceof Error ? err : new Error(JSON.stringify(err));\n logger.logError(\n err,\n `${loggingPrefix} Received an error while converting AmqpMessage to ServiceBusMessage`,\n );\n rejectAfterCleanup(errObj);\n }\n if (brokeredMessages.length >= args.maxMessageCount) {\n this._finalAction!();\n }\n };\n\n const onClose: OnAmqpEventAsPromise = async (context: EventContext) => {\n const type = context.session?.error != null ? \"session_closed\" : \"receiver_closed\";\n const error = context.session?.error || context.receiver?.error;\n\n if (error) {\n logger.logError(error, `${loggingPrefix} '${type}' event occurred. The associated error`);\n }\n };\n\n cleanupBeforeResolveOrReject = (): void => {\n if (receiver != null) {\n receiver.removeListener(ReceiverEvents.receiverError, onError);\n receiver.removeListener(ReceiverEvents.message, onReceiveMessage);\n receiver.session.removeListener(SessionEvents.sessionError, onError);\n receiver.removeListener(ReceiverEvents.receiverClose, onClose);\n receiver.session.removeListener(SessionEvents.sessionClose, onClose);\n }\n\n if (totalWaitTimer) {\n clearTimeout(totalWaitTimer);\n }\n\n if (abortSignalCleanupFunction) {\n abortSignalCleanupFunction();\n }\n abortSignalCleanupFunction = undefined;\n };\n\n abortSignalCleanupFunction = checkAndRegisterWithAbortSignal((err) => {\n if (receiver.drain) {\n // If a drain is already in process and we cancel, the link state may be out of sync\n // with remote. Reset the link so that we will have fresh start.\n receiver.close();\n }\n rejectAfterCleanup(err);\n }, args.abortSignal);\n\n // By adding credit here, we let the service know that at max we can handle `maxMessageCount`\n // number of messages concurrently. We will return the user an array of messages that can\n // be of size upto maxMessageCount. Then the user needs to accordingly dispose\n // (complete/abandon/defer/deadletter) the messages from the array.\n const creditToAdd = args.maxMessageCount - receiver.credit;\n logger.verbose(\n `${loggingPrefix} Ensure enough credit for receiving ${args.maxMessageCount} messages. Current: ${receiver.credit}. To add: ${creditToAdd}.`,\n );\n\n if (creditToAdd > 0) {\n receiver.addCredit(creditToAdd);\n }\n\n logger.verbose(\n `${loggingPrefix} Setting the wait timer for ${args.maxWaitTimeInMs} milliseconds.`,\n );\n\n totalWaitTimer = setTimeout(() => {\n logger.verbose(\n `${loggingPrefix} Batching, waited for max wait time ${args.maxWaitTimeInMs} milliseconds.`,\n );\n this._finalAction!();\n }, args.maxWaitTimeInMs);\n\n receiver.on(ReceiverEvents.message, onReceiveMessage);\n receiver.on(ReceiverEvents.receiverError, onError);\n receiver.on(ReceiverEvents.receiverClose, onClose);\n\n receiver.session.on(SessionEvents.sessionError, onError);\n receiver.session.on(SessionEvents.sessionClose, onClose);\n }\n}\n"]}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import type { RequestResponseLink } from "@azure/core-amqp";
|
|
2
|
+
import type { ConnectionContext } from "../connectionContext.js";
|
|
3
|
+
import type { AwaitableSender, AwaitableSenderOptions, Receiver, ReceiverOptions, SenderOptions } from "rhea-promise";
|
|
4
|
+
import type { AbortSignalLike } from "@azure/abort-controller";
|
|
5
|
+
import type { ServiceBusLogger } from "../log.js";
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
* Options passed to the constructor of LinkEntity
|
|
9
|
+
*/
|
|
10
|
+
export interface LinkEntityOptions {
|
|
11
|
+
/**
|
|
12
|
+
* The client entity address in one of the following forms:
|
|
13
|
+
*/
|
|
14
|
+
address?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The client entity token audience in one of the following forms:
|
|
17
|
+
*/
|
|
18
|
+
audience?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A simple grouping of the sender and receiver options. Only used
|
|
22
|
+
* with the ManagementClient today.
|
|
23
|
+
*
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export interface RequestResponseLinkOptions {
|
|
27
|
+
senderOptions: SenderOptions;
|
|
28
|
+
receiverOptions: ReceiverOptions;
|
|
29
|
+
name?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export type NonSessionReceiverType = "batching" | "streaming";
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export type ReceiverType = NonSessionReceiverType | "session";
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
type LinkOptionsT<LinkT extends Receiver | AwaitableSender | RequestResponseLink> = LinkT extends Receiver ? ReceiverOptions : LinkT extends AwaitableSender ? AwaitableSenderOptions : LinkT extends RequestResponseLink ? RequestResponseLinkOptions : never;
|
|
43
|
+
/**
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
type LinkTypeT<LinkT extends Receiver | AwaitableSender | RequestResponseLink> = LinkT extends Receiver ? ReceiverType : LinkT extends AwaitableSender ? "sender" : LinkT extends RequestResponseLink ? "mgmt" : never;
|
|
47
|
+
/**
|
|
48
|
+
* @internal
|
|
49
|
+
* Describes the base class for entities like MessageSender, MessageReceiver and Management client.
|
|
50
|
+
*/
|
|
51
|
+
export declare abstract class LinkEntity<LinkT extends Receiver | AwaitableSender | RequestResponseLink> {
|
|
52
|
+
readonly baseName: string;
|
|
53
|
+
readonly entityPath: string;
|
|
54
|
+
private _linkType;
|
|
55
|
+
private _logger;
|
|
56
|
+
/**
|
|
57
|
+
* The unique name for the entity in the format:
|
|
58
|
+
* `${name of the entity}-${guid}`.
|
|
59
|
+
*/
|
|
60
|
+
name: string;
|
|
61
|
+
/**
|
|
62
|
+
* The client entity address in one of the following forms:
|
|
63
|
+
*
|
|
64
|
+
* **Sender**
|
|
65
|
+
* - `"<queue-name>"`.
|
|
66
|
+
* - `"<topic-name>"`.
|
|
67
|
+
*
|
|
68
|
+
* **Receiver**
|
|
69
|
+
* - `"<queue-name>"`.
|
|
70
|
+
* - `"<topic-name>"`.
|
|
71
|
+
*
|
|
72
|
+
* **ManagementClient**
|
|
73
|
+
* -`"$management"`.
|
|
74
|
+
*/
|
|
75
|
+
address: string;
|
|
76
|
+
/**
|
|
77
|
+
* The client entity token audience in one of the following forms:
|
|
78
|
+
*
|
|
79
|
+
* **Sender**
|
|
80
|
+
* - `"sb://<yournamespace>.servicebus.windows.net/<queue-name>"`
|
|
81
|
+
* - `"sb://<yournamespace>.servicebus.windows.net/<topic-name>"`
|
|
82
|
+
*
|
|
83
|
+
* **Receiver**
|
|
84
|
+
* - `"sb://<yournamespace>.servicebus.windows.net/<queue-name>"`
|
|
85
|
+
* - `"sb://<yournamespace>.servicebus.windows.net/<topic-name>"`
|
|
86
|
+
*
|
|
87
|
+
* **ManagementClient**
|
|
88
|
+
* - `"sb://<your-namespace>.servicebus.windows.net/<queue-name>/$management"`.
|
|
89
|
+
* - `"sb://<your-namespace>.servicebus.windows.net/<topic-name>/$management"`.
|
|
90
|
+
*/
|
|
91
|
+
audience: string;
|
|
92
|
+
/**
|
|
93
|
+
* Provides relevant information about the amqp connection,
|
|
94
|
+
* cbs and $management sessions, token provider, sender and receivers.
|
|
95
|
+
*/
|
|
96
|
+
protected _context: ConnectionContext;
|
|
97
|
+
/**
|
|
98
|
+
* The token renewal timer that keeps track of when
|
|
99
|
+
* the Client Entity is due for token renewal.
|
|
100
|
+
*/
|
|
101
|
+
private _tokenRenewalTimer?;
|
|
102
|
+
/**
|
|
103
|
+
* Indicates token timeout
|
|
104
|
+
*/
|
|
105
|
+
protected _tokenTimeout?: number;
|
|
106
|
+
/**
|
|
107
|
+
* The actual rhea link (of type Receiver or AwaitableSender) or RequestResponseLink
|
|
108
|
+
*/
|
|
109
|
+
private _link?;
|
|
110
|
+
/**
|
|
111
|
+
* The log prefix for any log messages.
|
|
112
|
+
*/
|
|
113
|
+
private _logPrefix;
|
|
114
|
+
get logPrefix(): string;
|
|
115
|
+
/**
|
|
116
|
+
* Indicates that close() has been called on this link and
|
|
117
|
+
* that it should not be allowed to reopen.
|
|
118
|
+
*/
|
|
119
|
+
private _wasClosedPermanently;
|
|
120
|
+
/**
|
|
121
|
+
* A lock that ensures that opening and closing this
|
|
122
|
+
* link properly cooperate.
|
|
123
|
+
*/
|
|
124
|
+
private _openLock;
|
|
125
|
+
/**
|
|
126
|
+
* Creates a new ClientEntity instance.
|
|
127
|
+
* @param baseName - The base name to use for the link. A unique ID will be appended to this.
|
|
128
|
+
* @param entityPath - The entity path (ex: 'your-queue')
|
|
129
|
+
* @param context - The connection context.
|
|
130
|
+
* @param options - Options that can be provided while creating the LinkEntity.
|
|
131
|
+
*/
|
|
132
|
+
constructor(baseName: string, entityPath: string, context: ConnectionContext, _linkType: LinkTypeT<LinkT>, _logger: ServiceBusLogger, options?: LinkEntityOptions);
|
|
133
|
+
/**
|
|
134
|
+
* Determines whether the AMQP link is open. If open then returns true else returns false.
|
|
135
|
+
*/
|
|
136
|
+
isOpen(): boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Initializes this LinkEntity, setting this._link with the result of `createRheaLink`, which
|
|
139
|
+
* is implemented by child classes.
|
|
140
|
+
*
|
|
141
|
+
* @returns A Promise that resolves when the link has been properly initialized
|
|
142
|
+
* @throws `AbortError` if the link has been closed via 'close'
|
|
143
|
+
*/
|
|
144
|
+
initLink(options: LinkOptionsT<LinkT>, abortSignal?: AbortSignalLike): Promise<void>;
|
|
145
|
+
private _initLinkImpl;
|
|
146
|
+
/**
|
|
147
|
+
* Clears token renewal for current link, removes current LinkEntity instance from cache,
|
|
148
|
+
* and closes the underlying AMQP link.
|
|
149
|
+
* Once closed, this instance of LinkEntity is not meant to be re-used.
|
|
150
|
+
*/
|
|
151
|
+
close(): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* NOTE: This method should be implemented by any child classes to actually create the underlying
|
|
154
|
+
* Rhea link (AwaitableSender or Receiver or RequestResponseLink)
|
|
155
|
+
*
|
|
156
|
+
*/
|
|
157
|
+
protected abstract createRheaLink(_options: LinkOptionsT<LinkT>): Promise<LinkT>;
|
|
158
|
+
/**
|
|
159
|
+
* Clears this link from context's link cache.
|
|
160
|
+
*/
|
|
161
|
+
protected abstract removeLinkFromContext(): void;
|
|
162
|
+
/**
|
|
163
|
+
* Closes the internally held rhea link, stops the token renewal timer and sets
|
|
164
|
+
* the this._link field to undefined.
|
|
165
|
+
*/
|
|
166
|
+
protected closeLink(): Promise<void>;
|
|
167
|
+
private closeLinkImpl;
|
|
168
|
+
/**
|
|
169
|
+
* Provides the current type of the ClientEntity.
|
|
170
|
+
* @returns The entity type.
|
|
171
|
+
*/
|
|
172
|
+
private get _type();
|
|
173
|
+
protected get wasClosedPermanently(): boolean;
|
|
174
|
+
protected get link(): LinkT | undefined;
|
|
175
|
+
/**
|
|
176
|
+
* Negotiates the cbs claim for the ClientEntity.
|
|
177
|
+
* @param setTokenRenewal - Set the token renewal timer. Default false.
|
|
178
|
+
*/
|
|
179
|
+
private _negotiateClaim;
|
|
180
|
+
/**
|
|
181
|
+
* Checks to see if the connection is in a "reopening" state. If it is
|
|
182
|
+
* we need to _not_ use it otherwise we'll trigger some race conditions
|
|
183
|
+
* within rhea (for instance, errors about _process not being defined).
|
|
184
|
+
*/
|
|
185
|
+
private checkIfConnectionReady;
|
|
186
|
+
/**
|
|
187
|
+
* Ensures that the token is renewed within the predefined renewal margin.
|
|
188
|
+
*/
|
|
189
|
+
private _ensureTokenRenewal;
|
|
190
|
+
}
|
|
191
|
+
export {};
|
|
192
|
+
//# sourceMappingURL=linkEntity.d.ts.map
|