@azure/event-hubs 6.0.2-alpha.20251015.1 → 6.0.2-alpha.20251021.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/dist/browser/batchingPartitionChannel.d.ts.map +1 -1
  2. package/dist/browser/batchingPartitionChannel.js +2 -1
  3. package/dist/browser/batchingPartitionChannel.js.map +1 -1
  4. package/dist/browser/connectionContext.d.ts.map +1 -1
  5. package/dist/browser/connectionContext.js +10 -4
  6. package/dist/browser/connectionContext.js.map +1 -1
  7. package/dist/browser/eventHubBufferedProducerClient.d.ts.map +1 -1
  8. package/dist/browser/eventHubBufferedProducerClient.js +2 -1
  9. package/dist/browser/eventHubBufferedProducerClient.js.map +1 -1
  10. package/dist/browser/eventHubConsumerClient.d.ts.map +1 -1
  11. package/dist/browser/eventHubConsumerClient.js +3 -6
  12. package/dist/browser/eventHubConsumerClient.js.map +1 -1
  13. package/dist/browser/eventHubProducerClient.d.ts.map +1 -1
  14. package/dist/browser/eventHubProducerClient.js +3 -6
  15. package/dist/browser/eventHubProducerClient.js.map +1 -1
  16. package/dist/browser/eventHubSender.d.ts.map +1 -1
  17. package/dist/browser/eventHubSender.js +6 -4
  18. package/dist/browser/eventHubSender.js.map +1 -1
  19. package/dist/browser/partitionReceiver.js +4 -4
  20. package/dist/browser/partitionReceiver.js.map +1 -1
  21. package/dist/browser/util/timerLoop.d.ts.map +1 -1
  22. package/dist/browser/util/timerLoop.js +12 -5
  23. package/dist/browser/util/timerLoop.js.map +1 -1
  24. package/dist/commonjs/batchingPartitionChannel.d.ts.map +1 -1
  25. package/dist/commonjs/batchingPartitionChannel.js +2 -1
  26. package/dist/commonjs/batchingPartitionChannel.js.map +1 -1
  27. package/dist/commonjs/connectionContext.d.ts.map +1 -1
  28. package/dist/commonjs/connectionContext.js +10 -4
  29. package/dist/commonjs/connectionContext.js.map +1 -1
  30. package/dist/commonjs/eventHubBufferedProducerClient.d.ts.map +1 -1
  31. package/dist/commonjs/eventHubBufferedProducerClient.js +2 -1
  32. package/dist/commonjs/eventHubBufferedProducerClient.js.map +1 -1
  33. package/dist/commonjs/eventHubConsumerClient.d.ts.map +1 -1
  34. package/dist/commonjs/eventHubConsumerClient.js +3 -6
  35. package/dist/commonjs/eventHubConsumerClient.js.map +1 -1
  36. package/dist/commonjs/eventHubProducerClient.d.ts.map +1 -1
  37. package/dist/commonjs/eventHubProducerClient.js +3 -6
  38. package/dist/commonjs/eventHubProducerClient.js.map +1 -1
  39. package/dist/commonjs/eventHubSender.d.ts.map +1 -1
  40. package/dist/commonjs/eventHubSender.js +6 -4
  41. package/dist/commonjs/eventHubSender.js.map +1 -1
  42. package/dist/commonjs/partitionReceiver.js +4 -4
  43. package/dist/commonjs/partitionReceiver.js.map +1 -1
  44. package/dist/commonjs/tsdoc-metadata.json +1 -1
  45. package/dist/commonjs/util/timerLoop.d.ts.map +1 -1
  46. package/dist/commonjs/util/timerLoop.js +12 -5
  47. package/dist/commonjs/util/timerLoop.js.map +1 -1
  48. package/dist/esm/batchingPartitionChannel.d.ts.map +1 -1
  49. package/dist/esm/batchingPartitionChannel.js +2 -1
  50. package/dist/esm/batchingPartitionChannel.js.map +1 -1
  51. package/dist/esm/connectionContext.d.ts.map +1 -1
  52. package/dist/esm/connectionContext.js +10 -4
  53. package/dist/esm/connectionContext.js.map +1 -1
  54. package/dist/esm/eventHubBufferedProducerClient.d.ts.map +1 -1
  55. package/dist/esm/eventHubBufferedProducerClient.js +2 -1
  56. package/dist/esm/eventHubBufferedProducerClient.js.map +1 -1
  57. package/dist/esm/eventHubConsumerClient.d.ts.map +1 -1
  58. package/dist/esm/eventHubConsumerClient.js +3 -6
  59. package/dist/esm/eventHubConsumerClient.js.map +1 -1
  60. package/dist/esm/eventHubProducerClient.d.ts.map +1 -1
  61. package/dist/esm/eventHubProducerClient.js +3 -6
  62. package/dist/esm/eventHubProducerClient.js.map +1 -1
  63. package/dist/esm/eventHubSender.d.ts.map +1 -1
  64. package/dist/esm/eventHubSender.js +6 -4
  65. package/dist/esm/eventHubSender.js.map +1 -1
  66. package/dist/esm/partitionReceiver.js +4 -4
  67. package/dist/esm/partitionReceiver.js.map +1 -1
  68. package/dist/esm/util/timerLoop.d.ts.map +1 -1
  69. package/dist/esm/util/timerLoop.js +12 -5
  70. package/dist/esm/util/timerLoop.js.map +1 -1
  71. package/dist/react-native/batchingPartitionChannel.d.ts +94 -0
  72. package/dist/react-native/batchingPartitionChannel.d.ts.map +1 -0
  73. package/dist/react-native/batchingPartitionChannel.js +255 -0
  74. package/dist/react-native/batchingPartitionChannel.js.map +1 -0
  75. package/dist/react-native/connectionContext.d.ts +108 -0
  76. package/dist/react-native/connectionContext.d.ts.map +1 -0
  77. package/dist/react-native/connectionContext.js +310 -0
  78. package/dist/react-native/connectionContext.js.map +1 -0
  79. package/dist/react-native/dataTransformer.d.ts +53 -0
  80. package/dist/react-native/dataTransformer.d.ts.map +1 -0
  81. package/dist/react-native/dataTransformer.js +133 -0
  82. package/dist/react-native/dataTransformer.js.map +1 -0
  83. package/dist/react-native/diagnostics/instrumentEventData.d.ts +28 -0
  84. package/dist/react-native/diagnostics/instrumentEventData.d.ts.map +1 -0
  85. package/dist/react-native/diagnostics/instrumentEventData.js +67 -0
  86. package/dist/react-native/diagnostics/instrumentEventData.js.map +1 -0
  87. package/dist/react-native/diagnostics/tracing.d.ts +19 -0
  88. package/dist/react-native/diagnostics/tracing.d.ts.map +1 -0
  89. package/dist/react-native/diagnostics/tracing.js +40 -0
  90. package/dist/react-native/diagnostics/tracing.js.map +1 -0
  91. package/dist/react-native/eventData.d.ts +295 -0
  92. package/dist/react-native/eventData.d.ts.map +1 -0
  93. package/dist/react-native/eventData.js +247 -0
  94. package/dist/react-native/eventData.js.map +1 -0
  95. package/dist/react-native/eventDataAdapter.d.ts +69 -0
  96. package/dist/react-native/eventDataAdapter.d.ts.map +1 -0
  97. package/dist/react-native/eventDataAdapter.js +38 -0
  98. package/dist/react-native/eventDataAdapter.js.map +1 -0
  99. package/dist/react-native/eventDataBatch.d.ts +225 -0
  100. package/dist/react-native/eventDataBatch.d.ts.map +1 -0
  101. package/dist/react-native/eventDataBatch.js +301 -0
  102. package/dist/react-native/eventDataBatch.js.map +1 -0
  103. package/dist/react-native/eventHubBufferedProducerClient.d.ts +323 -0
  104. package/dist/react-native/eventHubBufferedProducerClient.d.ts.map +1 -0
  105. package/dist/react-native/eventHubBufferedProducerClient.js +301 -0
  106. package/dist/react-native/eventHubBufferedProducerClient.js.map +1 -0
  107. package/dist/react-native/eventHubConsumerClient.d.ts +293 -0
  108. package/dist/react-native/eventHubConsumerClient.d.ts.map +1 -0
  109. package/dist/react-native/eventHubConsumerClient.js +336 -0
  110. package/dist/react-native/eventHubConsumerClient.js.map +1 -0
  111. package/dist/react-native/eventHubConsumerClientModels.d.ts +218 -0
  112. package/dist/react-native/eventHubConsumerClientModels.d.ts.map +1 -0
  113. package/dist/react-native/eventHubConsumerClientModels.js +4 -0
  114. package/dist/react-native/eventHubConsumerClientModels.js.map +1 -0
  115. package/dist/react-native/eventHubProducerClient.d.ts +299 -0
  116. package/dist/react-native/eventHubProducerClient.d.ts.map +1 -0
  117. package/dist/react-native/eventHubProducerClient.js +366 -0
  118. package/dist/react-native/eventHubProducerClient.js.map +1 -0
  119. package/dist/react-native/eventHubSender.d.ts +227 -0
  120. package/dist/react-native/eventHubSender.d.ts.map +1 -0
  121. package/dist/react-native/eventHubSender.js +626 -0
  122. package/dist/react-native/eventHubSender.js.map +1 -0
  123. package/dist/react-native/eventPosition.d.ts +73 -0
  124. package/dist/react-native/eventPosition.d.ts.map +1 -0
  125. package/dist/react-native/eventPosition.js +121 -0
  126. package/dist/react-native/eventPosition.js.map +1 -0
  127. package/dist/react-native/eventProcessor.d.ts +232 -0
  128. package/dist/react-native/eventProcessor.d.ts.map +1 -0
  129. package/dist/react-native/eventProcessor.js +389 -0
  130. package/dist/react-native/eventProcessor.js.map +1 -0
  131. package/dist/react-native/eventhubConnectionConfig.d.ts +96 -0
  132. package/dist/react-native/eventhubConnectionConfig.d.ts.map +1 -0
  133. package/dist/react-native/eventhubConnectionConfig.js +98 -0
  134. package/dist/react-native/eventhubConnectionConfig.js.map +1 -0
  135. package/dist/react-native/impl/awaitableQueue.d.ts +25 -0
  136. package/dist/react-native/impl/awaitableQueue.d.ts.map +1 -0
  137. package/dist/react-native/impl/awaitableQueue.js +51 -0
  138. package/dist/react-native/impl/awaitableQueue.js.map +1 -0
  139. package/dist/react-native/impl/partitionAssigner.d.ts +29 -0
  140. package/dist/react-native/impl/partitionAssigner.d.ts.map +1 -0
  141. package/dist/react-native/impl/partitionAssigner.js +52 -0
  142. package/dist/react-native/impl/partitionAssigner.js.map +1 -0
  143. package/dist/react-native/impl/partitionGate.d.ts +27 -0
  144. package/dist/react-native/impl/partitionGate.d.ts.map +1 -0
  145. package/dist/react-native/impl/partitionGate.js +38 -0
  146. package/dist/react-native/impl/partitionGate.js.map +1 -0
  147. package/dist/react-native/impl/partitionKeyToIdMapper.d.ts +6 -0
  148. package/dist/react-native/impl/partitionKeyToIdMapper.d.ts.map +1 -0
  149. package/dist/react-native/impl/partitionKeyToIdMapper.js +111 -0
  150. package/dist/react-native/impl/partitionKeyToIdMapper.js.map +1 -0
  151. package/dist/react-native/inMemoryCheckpointStore.d.ts +44 -0
  152. package/dist/react-native/inMemoryCheckpointStore.d.ts.map +1 -0
  153. package/dist/react-native/inMemoryCheckpointStore.js +94 -0
  154. package/dist/react-native/inMemoryCheckpointStore.js.map +1 -0
  155. package/dist/react-native/index.d.ts +21 -0
  156. package/dist/react-native/index.d.ts.map +1 -0
  157. package/dist/react-native/index.js +12 -0
  158. package/dist/react-native/index.js.map +1 -0
  159. package/dist/react-native/loadBalancerStrategies/balancedStrategy.d.ts +30 -0
  160. package/dist/react-native/loadBalancerStrategies/balancedStrategy.d.ts.map +1 -0
  161. package/dist/react-native/loadBalancerStrategies/balancedStrategy.js +40 -0
  162. package/dist/react-native/loadBalancerStrategies/balancedStrategy.js.map +1 -0
  163. package/dist/react-native/loadBalancerStrategies/greedyStrategy.d.ts +24 -0
  164. package/dist/react-native/loadBalancerStrategies/greedyStrategy.d.ts.map +1 -0
  165. package/dist/react-native/loadBalancerStrategies/greedyStrategy.js +29 -0
  166. package/dist/react-native/loadBalancerStrategies/greedyStrategy.js.map +1 -0
  167. package/dist/react-native/loadBalancerStrategies/loadBalancingStrategy.d.ts +28 -0
  168. package/dist/react-native/loadBalancerStrategies/loadBalancingStrategy.d.ts.map +1 -0
  169. package/dist/react-native/loadBalancerStrategies/loadBalancingStrategy.js +245 -0
  170. package/dist/react-native/loadBalancerStrategies/loadBalancingStrategy.js.map +1 -0
  171. package/dist/react-native/loadBalancerStrategies/unbalancedStrategy.d.ts +20 -0
  172. package/dist/react-native/loadBalancerStrategies/unbalancedStrategy.d.ts.map +1 -0
  173. package/dist/react-native/loadBalancerStrategies/unbalancedStrategy.js +22 -0
  174. package/dist/react-native/loadBalancerStrategies/unbalancedStrategy.js.map +1 -0
  175. package/dist/react-native/logger.d.ts +37 -0
  176. package/dist/react-native/logger.d.ts.map +1 -0
  177. package/dist/react-native/logger.js +56 -0
  178. package/dist/react-native/logger.js.map +1 -0
  179. package/dist/react-native/managementClient.d.ts +145 -0
  180. package/dist/react-native/managementClient.d.ts.map +1 -0
  181. package/dist/react-native/managementClient.js +305 -0
  182. package/dist/react-native/managementClient.js.map +1 -0
  183. package/dist/react-native/models/private.d.ts +185 -0
  184. package/dist/react-native/models/private.d.ts.map +1 -0
  185. package/dist/react-native/models/private.js +4 -0
  186. package/dist/react-native/models/private.js.map +1 -0
  187. package/dist/react-native/models/public.d.ts +240 -0
  188. package/dist/react-native/models/public.d.ts.map +1 -0
  189. package/dist/react-native/models/public.js +18 -0
  190. package/dist/react-native/models/public.js.map +1 -0
  191. package/dist/react-native/package.json +3 -0
  192. package/dist/react-native/partitionProcessor.d.ts +134 -0
  193. package/dist/react-native/partitionProcessor.d.ts.map +1 -0
  194. package/dist/react-native/partitionProcessor.js +137 -0
  195. package/dist/react-native/partitionProcessor.js.map +1 -0
  196. package/dist/react-native/partitionPump.d.ts +38 -0
  197. package/dist/react-native/partitionPump.d.ts.map +1 -0
  198. package/dist/react-native/partitionPump.js +175 -0
  199. package/dist/react-native/partitionPump.js.map +1 -0
  200. package/dist/react-native/partitionReceiver.d.ts +82 -0
  201. package/dist/react-native/partitionReceiver.d.ts.map +1 -0
  202. package/dist/react-native/partitionReceiver.js +335 -0
  203. package/dist/react-native/partitionReceiver.js.map +1 -0
  204. package/dist/react-native/pumpManager.d.ts +72 -0
  205. package/dist/react-native/pumpManager.d.ts.map +1 -0
  206. package/dist/react-native/pumpManager.js +120 -0
  207. package/dist/react-native/pumpManager.js.map +1 -0
  208. package/dist/react-native/util/connectionStringUtils.d.ts +52 -0
  209. package/dist/react-native/util/connectionStringUtils.d.ts.map +1 -0
  210. package/dist/react-native/util/connectionStringUtils.js +48 -0
  211. package/dist/react-native/util/connectionStringUtils.js.map +1 -0
  212. package/dist/react-native/util/constants.d.ts +25 -0
  213. package/dist/react-native/util/constants.d.ts.map +1 -0
  214. package/dist/react-native/util/constants.js +27 -0
  215. package/dist/react-native/util/constants.js.map +1 -0
  216. package/dist/react-native/util/delayWithoutThrow.d.ts +8 -0
  217. package/dist/react-native/util/delayWithoutThrow.d.ts.map +1 -0
  218. package/dist/react-native/util/delayWithoutThrow.js +17 -0
  219. package/dist/react-native/util/delayWithoutThrow.js.map +1 -0
  220. package/dist/react-native/util/error.d.ts +39 -0
  221. package/dist/react-native/util/error.d.ts.map +1 -0
  222. package/dist/react-native/util/error.js +103 -0
  223. package/dist/react-native/util/error.js.map +1 -0
  224. package/dist/react-native/util/getPromiseParts.d.ts +10 -0
  225. package/dist/react-native/util/getPromiseParts.d.ts.map +1 -0
  226. package/dist/react-native/util/getPromiseParts.js +20 -0
  227. package/dist/react-native/util/getPromiseParts.js.map +1 -0
  228. package/dist/react-native/util/operationOptions.d.ts +16 -0
  229. package/dist/react-native/util/operationOptions.d.ts.map +1 -0
  230. package/dist/react-native/util/operationOptions.js +4 -0
  231. package/dist/react-native/util/operationOptions.js.map +1 -0
  232. package/dist/react-native/util/parseEndpoint.d.ts +11 -0
  233. package/dist/react-native/util/parseEndpoint.d.ts.map +1 -0
  234. package/dist/react-native/util/parseEndpoint.js +17 -0
  235. package/dist/react-native/util/parseEndpoint.js.map +1 -0
  236. package/dist/react-native/util/retries.d.ts +6 -0
  237. package/dist/react-native/util/retries.d.ts.map +1 -0
  238. package/dist/react-native/util/retries.js +13 -0
  239. package/dist/react-native/util/retries.js.map +1 -0
  240. package/dist/react-native/util/runtimeInfo-react-native.d.mts.map +1 -0
  241. package/dist/react-native/util/runtimeInfo-react-native.mjs.map +1 -0
  242. package/dist/react-native/util/runtimeInfo.d.ts +6 -0
  243. package/dist/react-native/util/runtimeInfo.js +20 -0
  244. package/dist/react-native/util/timerLoop.d.ts +26 -0
  245. package/dist/react-native/util/timerLoop.d.ts.map +1 -0
  246. package/dist/react-native/util/timerLoop.js +34 -0
  247. package/dist/react-native/util/timerLoop.js.map +1 -0
  248. package/dist/react-native/util/typeGuards.d.ts +8 -0
  249. package/dist/react-native/util/typeGuards.d.ts.map +1 -0
  250. package/dist/react-native/util/typeGuards.js +12 -0
  251. package/dist/react-native/util/typeGuards.js.map +1 -0
  252. package/dist/react-native/util/utils.d.ts +7 -0
  253. package/dist/react-native/util/utils.d.ts.map +1 -0
  254. package/dist/react-native/util/utils.js +13 -0
  255. package/dist/react-native/util/utils.js.map +1 -0
  256. package/dist/react-native/withAuth.d.ts +25 -0
  257. package/dist/react-native/withAuth.d.ts.map +1 -0
  258. package/dist/react-native/withAuth.js +84 -0
  259. package/dist/react-native/withAuth.js.map +1 -0
  260. package/package.json +16 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitionReceiver.js","sourceRoot":"","sources":["../../src/partitionReceiver.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { MessagingError, RetryConfig } from \"@azure/core-amqp\";\nimport {\n Constants,\n RetryOperationType,\n StandardAbortMessage,\n retry,\n translate,\n} from \"@azure/core-amqp\";\nimport type {\n EventContext,\n Receiver as Link,\n ReceiverOptions as RheaReceiverOptions,\n Source,\n} from \"rhea-promise\";\nimport { types } from \"rhea-promise\";\nimport type { EventDataInternal, ReceivedEventData } from \"./eventData.js\";\nimport { fromRheaMessage } from \"./eventData.js\";\nimport type { EventPosition } from \"./eventPosition.js\";\nimport { getEventPositionFilter } from \"./eventPosition.js\";\nimport type { SimpleLogger } from \"./logger.js\";\nimport {\n createSimpleLogger,\n logErrorStackTrace,\n logObj,\n logger as azureLogger,\n createReceiverLogPrefix,\n} from \"./logger.js\";\nimport type { ConnectionContext } from \"./connectionContext.js\";\nimport type { PartitionReceiverOptions } from \"./models/private.js\";\nimport { getRetryAttemptTimeoutInMs } from \"./util/retries.js\";\nimport { createAbortablePromise } from \"@azure/core-util\";\nimport type { TimerLoop } from \"./util/timerLoop.js\";\nimport { getRandomName } from \"./util/utils.js\";\nimport { withAuth } from \"./withAuth.js\";\nimport { geoReplication, receiverIdPropertyName } from \"./util/constants.js\";\n\ntype Writable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n/** @internal */\nexport type WritableReceiver = Writable<PartitionReceiver>;\n\nconst abortLogMessage = \"operation has been cancelled by the user\";\n/** The time to wait in ms before attempting to read from the queue */\nconst qReadIntervalInMs = 20;\n\n/**\n * A set of information about the last enqueued event of a partition, as observed by the consumer as\n * events are received from the Event Hubs service\n */\nexport interface LastEnqueuedEventProperties {\n /**\n * The sequence number of the event that was last enqueued into the Event Hub partition from which\n * this event was received.\n */\n sequenceNumber?: number;\n /**\n * The date and time, in UTC, that the last event was enqueued into the Event Hub partition from\n * which this event was received.\n */\n enqueuedOn?: Date;\n /**\n * The offset of the event that was last enqueued into the Event Hub partition from which\n * this event was received.\n */\n offset?: string;\n /**\n * The date and time, in UTC, that the last event was retrieved from the Event Hub partition.\n */\n retrievedOn?: Date;\n}\n\n/** @internal */\nexport interface PartitionReceiver {\n readonly checkpoint: number;\n readonly lastEnqueuedEventProperties: LastEnqueuedEventProperties;\n readonly isClosed: boolean;\n readonly close: () => Promise<void>;\n readonly abort: () => Promise<void>;\n readonly isOpen: () => boolean;\n readonly receiveBatch: (\n maxMessageCount: number,\n maxWaitTimeInSeconds?: number,\n abortSignal?: AbortSignalLike,\n ) => Promise<ReceivedEventData[]>;\n /** Needed for tests only */\n readonly _onError?: (error: MessagingError | Error) => void;\n readonly connect: (options: ConnectOptions) => Promise<void>;\n}\n\ninterface ConnectOptions {\n abortSignal: AbortSignalLike | undefined;\n timeoutInMs: number;\n}\n\ninterface ReceiverState {\n link?: Link;\n authLoop?: TimerLoop;\n isConnecting: boolean;\n}\n\n/** @internal */\nexport function createReceiver(\n ctx: ConnectionContext,\n consumerGroup: string,\n consumerId: string,\n partitionId: string,\n eventPosition: EventPosition,\n options: PartitionReceiverOptions = {},\n): PartitionReceiver {\n const address = ctx.config.getReceiverAddress(partitionId, consumerGroup);\n const name = getRandomName(address);\n const audience = ctx.config.getReceiverAudience(partitionId, consumerGroup);\n const logPrefix = createReceiverLogPrefix(consumerId, ctx.connectionId, partitionId);\n const logger = createSimpleLogger(azureLogger, logPrefix);\n const queue: ReceivedEventData[] = [];\n const state: ReceiverState = {\n isConnecting: false,\n };\n\n const obj: WritableReceiver = {\n _onError: undefined,\n checkpoint: -1,\n lastEnqueuedEventProperties: {},\n isClosed: false,\n close: async () => {\n clearHandlers(obj);\n delete ctx.receivers[name];\n logger.verbose(\"deleted the receiver from the client cache\");\n state.authLoop?.stop();\n return state.link\n ?.close()\n .catch((err) => {\n logger.warning(`an error occurred while closing: ${err?.name}: ${err?.message}`);\n logErrorStackTrace(err);\n throw err;\n })\n .finally(() => {\n obj.isClosed = true;\n logger.verbose(\"is closed\");\n state.link = undefined;\n state.authLoop = undefined;\n });\n },\n abort: () => {\n obj._onError?.(new AbortError(StandardAbortMessage));\n logger.info(abortLogMessage);\n return obj.close();\n },\n isOpen: () => {\n const isOpen = !!state.link?.isOpen();\n logger.verbose(`is open? -> ${isOpen}`);\n return isOpen;\n },\n async connect({ abortSignal, timeoutInMs }: ConnectOptions): Promise<void> {\n if (state.isConnecting || obj.isOpen()) {\n return;\n }\n state.isConnecting = true;\n logger.verbose(\"is trying to connect\");\n try {\n await ctx.readyToOpenLink({ abortSignal });\n state.authLoop = await withAuth(\n () =>\n setupLink(\n consumerId,\n ctx,\n name,\n address,\n obj,\n state,\n queue,\n eventPosition,\n logger,\n options,\n abortSignal,\n ),\n ctx,\n audience,\n timeoutInMs,\n logger,\n {\n abortSignal,\n },\n );\n } catch (err) {\n state.isConnecting = false;\n const error = translate(err);\n logger.error(\n `an error occurred while creating the receiver: ${error?.name}: ${error?.message}`,\n );\n logErrorStackTrace(err);\n throw error;\n }\n },\n receiveBatch: (\n maxMessageCount: number,\n maxWaitTimeInSeconds: number = 60,\n abortSignal?: AbortSignalLike,\n ) => {\n const prefetchCount = options.prefetchCount ?? maxMessageCount * 3;\n const cleanupBeforeAbort = (): Promise<void> => {\n logger.info(abortLogMessage);\n return obj.close();\n };\n const retrieveEvents = (): Promise<ReceivedEventData[]> => {\n const eventsToRetrieveCount = Math.max(maxMessageCount - queue.length, 0);\n logger.verbose(\n `already has ${queue.length} events and wants to receive ${eventsToRetrieveCount} more events`,\n );\n if (abortSignal?.aborted) {\n cleanupBeforeAbort();\n return Promise.reject(new AbortError(StandardAbortMessage));\n }\n return obj.isClosed || ctx.wasConnectionCloseCalled || eventsToRetrieveCount === 0\n ? Promise.resolve(queue.splice(0, maxMessageCount))\n : new Promise<void>((resolve, reject) => {\n obj._onError = reject;\n obj // eslint-disable-line promise/catch-or-return\n .connect({\n abortSignal,\n timeoutInMs: getRetryAttemptTimeoutInMs(options.retryOptions),\n })\n .then(() => {\n addCredits(state.link, Math.max(prefetchCount, maxMessageCount) - queue.length);\n logger.verbose(`setting the max wait time to ${maxWaitTimeInSeconds} seconds`);\n return waitForEvents(\n maxMessageCount,\n maxWaitTimeInSeconds * 1000,\n qReadIntervalInMs,\n queue,\n {\n abortSignal,\n cleanupBeforeAbort,\n receivedAfterWait: () =>\n logger.info(\n `${Math.min(\n maxMessageCount,\n queue.length,\n )} messages received within ${maxWaitTimeInSeconds} seconds`,\n ),\n receivedAlready: () =>\n logger.info(`${maxMessageCount} messages already received`),\n receivedNone: () =>\n logger.info(\n `no messages received when max wait time in seconds ${maxWaitTimeInSeconds} is over`,\n ),\n },\n );\n })\n .catch(reject)\n .then(resolve);\n })\n .then(() => queue.splice(0, maxMessageCount))\n .finally(() => clearHandlers(obj));\n };\n return retry(\n Object.defineProperties(\n {\n operation: retrieveEvents,\n operationType: RetryOperationType.receiveMessage,\n abortSignal: abortSignal,\n retryOptions: options.retryOptions ?? {},\n },\n {\n connectionId: {\n enumerable: true,\n get: () => ctx.connectionId,\n },\n connectionHost: {\n enumerable: true,\n get: () => ctx.config.host,\n },\n },\n ) as RetryConfig<ReceivedEventData[]>,\n );\n },\n };\n return obj;\n}\n\nfunction delay(\n waitTimeInMs: number,\n options?: {\n abortSignal?: AbortSignalLike;\n cleanupBeforeAbort?: () => void;\n abortErrorMsg?: string;\n },\n): Promise<void> {\n let token: ReturnType<typeof setTimeout>;\n return createAbortablePromise<void>((resolve) => {\n token = setTimeout(resolve, waitTimeInMs);\n }, options).finally(() => clearTimeout(token));\n}\n\n/**\n * @internal\n */\nexport function checkOnInterval(\n waitTimeInMs: number,\n check: () => boolean,\n options?: {\n abortSignal?: AbortSignalLike;\n cleanupBeforeAbort?: () => void;\n abortErrorMsg?: string;\n },\n): Promise<void> {\n let token: ReturnType<typeof setInterval>;\n return createAbortablePromise<void>((resolve) => {\n token = setInterval(() => {\n if (check()) {\n resolve();\n }\n }, waitTimeInMs);\n }, options).finally(() => clearInterval(token));\n}\n\n/**\n * Returns a promise that will resolve when it is time to read from the queue\n * @param maxEventCount - The maximum number of events to receive.\n * @param maxWaitTimeInMs - The maximum time to wait in ms for the queue to contain any events.\n * @param readIntervalWaitTimeInMs - The time interval to wait in ms before checking the queue.\n * @param queue - The queue to read from.\n * @param options - The options bag.\n * @returns a promise that will resolve when it is time to read from the queue\n * @internal\n */\nexport function waitForEvents(\n maxEventCount: number,\n maxWaitTimeInMs: number,\n readIntervalWaitTimeInMs: number,\n queue: unknown[],\n options: {\n abortSignal?: AbortSignalLike;\n cleanupBeforeAbort?: () => void;\n receivedAfterWait?: () => void;\n receivedAlready?: () => void;\n receivedNone?: () => void;\n } = {},\n): Promise<void> {\n const {\n abortSignal: clientAbortSignal,\n cleanupBeforeAbort,\n receivedNone,\n receivedAfterWait,\n receivedAlready,\n } = options;\n\n if (queue.length >= maxEventCount) {\n return Promise.resolve().then(receivedAlready);\n }\n\n const aborter = new AbortController();\n const abortListener = () => {\n aborter.abort();\n };\n clientAbortSignal?.addEventListener(\"abort\", abortListener);\n let cleanupBeforeAbortCalled = false;\n\n const updatedOptions = {\n abortSignal: aborter.signal,\n abortErrorMsg: StandardAbortMessage,\n cleanupBeforeAbort: () => {\n if (clientAbortSignal?.aborted && !cleanupBeforeAbortCalled) {\n cleanupBeforeAbort?.();\n cleanupBeforeAbortCalled = true;\n }\n },\n };\n return Promise.race([\n checkOnInterval(readIntervalWaitTimeInMs, () => queue.length > 0, updatedOptions)\n .then(() => delay(readIntervalWaitTimeInMs, updatedOptions))\n .then(receivedAfterWait),\n delay(maxWaitTimeInMs, updatedOptions).then(receivedNone),\n ]).finally(() => {\n aborter.abort();\n clientAbortSignal?.removeEventListener(\"abort\", abortListener);\n });\n}\n\nfunction convertAMQPMesage(data: EventDataInternal): ReceivedEventData {\n const rawMessage = data.getRawAmqpMessage();\n const receivedEventData: ReceivedEventData = {\n body: data.body,\n properties: data.properties,\n offset: data.offset!,\n sequenceNumber: data.sequenceNumber!,\n enqueuedTimeUtc: data.enqueuedTimeUtc!,\n partitionKey: data.partitionKey!,\n systemProperties: data.systemProperties,\n getRawAmqpMessage() {\n return rawMessage;\n },\n };\n if (data.correlationId != null) {\n receivedEventData.correlationId = data.correlationId;\n }\n if (data.contentType != null) {\n receivedEventData.contentType = data.contentType;\n }\n if (data.messageId != null) {\n receivedEventData.messageId = data.messageId;\n }\n return receivedEventData;\n}\n\nfunction setEventProps(eventProps: LastEnqueuedEventProperties, data: EventDataInternal): void {\n eventProps.sequenceNumber = data.lastSequenceNumber;\n eventProps.enqueuedOn = data.lastEnqueuedTime;\n eventProps.offset = data.lastEnqueuedOffset;\n eventProps.retrievedOn = data.retrievalTime;\n}\n\nfunction clearHandlers(obj: WritableReceiver): void {\n obj._onError = undefined;\n}\n\nfunction onMessage(\n context: EventContext,\n obj: WritableReceiver,\n queue: ReceivedEventData[],\n options: PartitionReceiverOptions,\n): void {\n if (!context.message) {\n return;\n }\n const data = fromRheaMessage(context.message, !!options.skipParsingBodyAsJson);\n const receivedEventData = convertAMQPMesage(data);\n obj.checkpoint = receivedEventData.sequenceNumber;\n if (options.trackLastEnqueuedEventProperties) {\n setEventProps(obj.lastEnqueuedEventProperties, data);\n }\n queue.push(receivedEventData);\n}\n\nfunction onError(\n context: EventContext,\n obj: PartitionReceiver,\n receiver: Link | undefined,\n logger: SimpleLogger,\n): void {\n const rheaReceiver = receiver || context.receiver;\n const amqpError = rheaReceiver?.error;\n logger.verbose(`'receiver_error' event occurred: ${logObj(amqpError)}`);\n if (obj._onError && amqpError) {\n const error = translate(amqpError);\n logErrorStackTrace(error);\n obj._onError(error);\n }\n}\n\nfunction onSessionError(context: EventContext, obj: PartitionReceiver, logger: SimpleLogger): void {\n const sessionError = context.session?.error;\n logger.verbose(`'session_error' event occurred: ${logObj(sessionError)}`);\n if (obj._onError && sessionError) {\n const error = translate(sessionError);\n logErrorStackTrace(error);\n obj._onError(error);\n }\n}\n\nfunction onClose(context: EventContext, state: ReceiverState, logger: SimpleLogger): void {\n const rheaReceiver = state.link || context.receiver;\n logger.verbose(\n `'receiver_close' event occurred. Value for isItselfClosed on the receiver is: '${rheaReceiver\n ?.isItselfClosed()\n .toString()}' Value for isConnecting on the session is: '${state.isConnecting}'`,\n );\n if (rheaReceiver && !state.isConnecting) {\n rheaReceiver.close().catch((err) => {\n logger.verbose(`error when closing after 'receiver_close' event: ${logObj(err)}`);\n });\n }\n}\n\nfunction onSessionClose(context: EventContext, state: ReceiverState, logger: SimpleLogger): void {\n const rheaReceiver = state.link || context.receiver;\n logger.verbose(\n `'session_close' event occurred. Value for isSessionItselfClosed on the session is: '${rheaReceiver\n ?.isSessionItselfClosed()\n .toString()}' Value for isConnecting on the session is: '${state.isConnecting}'`,\n );\n if (rheaReceiver && !state.isConnecting) {\n rheaReceiver.close().catch((err) => {\n logger.verbose(`error when closing after 'session_close' event: ${logObj(err)}`);\n });\n }\n}\n\nfunction createRheaOptions(\n consumerId: string,\n name: string,\n address: string,\n obj: PartitionReceiver,\n state: ReceiverState,\n queue: ReceivedEventData[],\n eventPosition: EventPosition,\n logger: SimpleLogger,\n options: PartitionReceiverOptions,\n): RheaReceiverOptions {\n const rheaOptions: RheaReceiverOptions & { source: Source; properties: Record<string, any> } = {\n name,\n autoaccept: true,\n target: consumerId,\n source: {\n address,\n },\n credit_window: 0,\n properties: {\n [receiverIdPropertyName]: consumerId,\n },\n onClose: (context) => onClose(context, state, logger),\n onSessionClose: (context) => onSessionClose(context, state, logger),\n onError: (context) => onError(context, obj, state.link, logger),\n onMessage: (context) => onMessage(context, obj, queue, options),\n onSessionError: (context) => onSessionError(context, obj, logger),\n };\n const ownerLevel = options.ownerLevel;\n if (typeof ownerLevel === \"number\") {\n rheaOptions.properties[Constants.attachEpoch] = types.wrap_long(ownerLevel);\n }\n rheaOptions.desired_capabilities = [geoReplication];\n if (options.trackLastEnqueuedEventProperties) {\n rheaOptions.desired_capabilities.push(Constants.enableReceiverRuntimeMetricName);\n }\n const filterClause = getEventPositionFilter(\n obj.checkpoint > -1 ? { sequenceNumber: obj.checkpoint } : eventPosition,\n );\n rheaOptions.source.filter = {\n \"apache.org:selector-filter:string\": types.wrap_described(filterClause, 0x468c00000004),\n };\n return rheaOptions;\n}\n\nasync function setupLink(\n consumerId: string,\n ctx: ConnectionContext,\n name: string,\n address: string,\n obj: PartitionReceiver,\n state: ReceiverState,\n queue: ReceivedEventData[],\n eventPosition: EventPosition,\n logger: SimpleLogger,\n options: PartitionReceiverOptions,\n abortSignal?: AbortSignalLike,\n): Promise<void> {\n const rheaOptions = createRheaOptions(\n consumerId,\n name,\n address,\n obj,\n state,\n queue,\n eventPosition,\n logger,\n options,\n );\n logger.verbose(`trying to be created with options ${logObj(rheaOptions)}`);\n state.link = await ctx.connection.createReceiver({\n ...rheaOptions,\n abortSignal,\n });\n state.isConnecting = false;\n logger.verbose(\"is created successfully\");\n ctx.receivers[name] = obj;\n}\n\nfunction addCredits(receiver: Link | undefined, creditsToAdd: number): void {\n if (creditsToAdd > 0) {\n receiver?.addCredit(creditsToAdd);\n }\n}\n"]}
@@ -0,0 +1,72 @@
1
+ import type { AbortSignalLike } from "@azure/abort-controller";
2
+ import { CloseReason } from "./models/public.js";
3
+ import type { CommonEventProcessorOptions } from "./models/private.js";
4
+ import type { ConnectionContext } from "./connectionContext.js";
5
+ import type { EventPosition } from "./eventPosition.js";
6
+ import type { PartitionProcessor } from "./partitionProcessor.js";
7
+ /**
8
+ * The PumpManager handles the creation and removal of PartitionPumps.
9
+ * It also starts a PartitionPump when it is created, and stops a
10
+ * PartitionPump when it is removed.
11
+ * @internal
12
+ */
13
+ export interface PumpManager {
14
+ /**
15
+ * Creates and starts a PartitionPump.
16
+ * @param startPosition - The position in the partition to start reading from.
17
+ * @param eventHubClient - The EventHubClient to forward to the PartitionPump.
18
+ * @param partitionProcessor - The PartitionProcessor to forward to the PartitionPump.
19
+ * @param abortSignal - Used to cancel pump creation.
20
+ */
21
+ createPump(startPosition: EventPosition, connectionContext: ConnectionContext, partitionProcessor: PartitionProcessor, abortSignal: AbortSignalLike): Promise<void>;
22
+ /**
23
+ * Indicates whether the pump manager is actively receiving events from a given partition.
24
+ * @param partitionId - The partition to check.
25
+ */
26
+ isReceivingFromPartition(partitionId: string): boolean;
27
+ /**
28
+ * Stops all PartitionPumps and removes them from the internal map.
29
+ * @param reason - The reason for removing the pump.
30
+ */
31
+ removeAllPumps(reason: CloseReason): Promise<void>;
32
+ }
33
+ /**
34
+ * The PumpManager handles the creation and removal of PartitionPumps.
35
+ * It also starts a PartitionPump when it is created, and stops a
36
+ * PartitionPump when it is removed.
37
+ * @internal
38
+ */
39
+ export declare class PumpManagerImpl implements PumpManager {
40
+ private readonly _eventProcessorName;
41
+ private readonly _options;
42
+ private _partitionIdToPumps;
43
+ constructor(eventProcessorName: string, eventProcessorOptions: CommonEventProcessorOptions);
44
+ /**
45
+ * Returns a list of partitionIds that are actively receiving messages.
46
+ */
47
+ receivingFromPartitions(): string[];
48
+ /**
49
+ * Indicates whether the pump manager is actively receiving events from a given partition.
50
+ * @internal
51
+ */
52
+ isReceivingFromPartition(partitionId: string): boolean;
53
+ /**
54
+ * Creates and starts a PartitionPump.
55
+ * @param startPosition - The position in the partition to start reading from.
56
+ * @param connectionContext - The ConnectionContext to forward to the PartitionPump.
57
+ * @param partitionProcessor - The PartitionProcessor to forward to the PartitionPump.
58
+ */
59
+ createPump(startPosition: EventPosition, connectionContext: ConnectionContext, partitionProcessor: PartitionProcessor, abortSignal: AbortSignalLike): Promise<void>;
60
+ /**
61
+ * Stop a PartitionPump and removes it from the internal map.
62
+ * @param partitionId - The partitionId to remove the associated PartitionPump from.
63
+ * @param reason - The reason for removing the pump.
64
+ */
65
+ removePump(partitionId: string, reason: CloseReason): Promise<void>;
66
+ /**
67
+ * Stops all PartitionPumps and removes them from the internal map.
68
+ * @param reason - The reason for removing the pump.
69
+ */
70
+ removeAllPumps(reason: CloseReason): Promise<void>;
71
+ }
72
+ //# sourceMappingURL=pumpManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pumpManager.d.ts","sourceRoot":"","sources":["../../src/pumpManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,UAAU,CACR,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,eAAe,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvD;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,mBAAmB,CAEpB;gBAEK,kBAAkB,EAAE,MAAM,EAAE,qBAAqB,EAAE,2BAA2B;IAK1F;;OAEG;IACI,uBAAuB,IAAI,MAAM,EAAE;IAO1C;;;OAGG;IACI,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAK7D;;;;;OAKG;IACU,UAAU,CACrB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,eAAe,GAC3B,OAAO,CAAC,IAAI,CAAC;IA6ChB;;;;OAIG;IACU,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhF;;;OAGG;IACU,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAwBhE"}
@@ -0,0 +1,120 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { logErrorStackTrace, logger } from "./logger.js";
4
+ import { CloseReason } from "./models/public.js";
5
+ import { PartitionPump } from "./partitionPump.js";
6
+ /**
7
+ * The PumpManager handles the creation and removal of PartitionPumps.
8
+ * It also starts a PartitionPump when it is created, and stops a
9
+ * PartitionPump when it is removed.
10
+ * @internal
11
+ */
12
+ export class PumpManagerImpl {
13
+ _eventProcessorName;
14
+ _options;
15
+ _partitionIdToPumps = {};
16
+ constructor(eventProcessorName, eventProcessorOptions) {
17
+ this._eventProcessorName = eventProcessorName;
18
+ this._options = eventProcessorOptions;
19
+ }
20
+ /**
21
+ * Returns a list of partitionIds that are actively receiving messages.
22
+ */
23
+ receivingFromPartitions() {
24
+ return Object.keys(this._partitionIdToPumps).filter((id) => {
25
+ const pump = this._partitionIdToPumps[id];
26
+ return Boolean(pump && pump.isReceiving);
27
+ });
28
+ }
29
+ /**
30
+ * Indicates whether the pump manager is actively receiving events from a given partition.
31
+ * @internal
32
+ */
33
+ isReceivingFromPartition(partitionId) {
34
+ const pump = this._partitionIdToPumps[partitionId];
35
+ return Boolean(pump && pump.isReceiving);
36
+ }
37
+ /**
38
+ * Creates and starts a PartitionPump.
39
+ * @param startPosition - The position in the partition to start reading from.
40
+ * @param connectionContext - The ConnectionContext to forward to the PartitionPump.
41
+ * @param partitionProcessor - The PartitionProcessor to forward to the PartitionPump.
42
+ */
43
+ async createPump(startPosition, connectionContext, partitionProcessor, abortSignal) {
44
+ const partitionId = partitionProcessor.partitionId;
45
+ if (abortSignal.aborted) {
46
+ logger.verbose(`${this._eventProcessorName}] The subscription was closed before creating the pump for partition ${partitionId}.`);
47
+ return;
48
+ }
49
+ // attempt to get an existing pump
50
+ const existingPump = this._partitionIdToPumps[partitionId];
51
+ if (existingPump) {
52
+ if (existingPump.isReceiving) {
53
+ logger.verbose(`[${this._eventProcessorName}] [${partitionId}] The existing pump is running.`);
54
+ return;
55
+ }
56
+ logger.verbose(`[${this._eventProcessorName}] [${partitionId}] The existing pump is not running.`);
57
+ await this.removePump(partitionId, CloseReason.OwnershipLost);
58
+ }
59
+ logger.verbose(`[${this._eventProcessorName}] [${partitionId}] Creating a new pump.`);
60
+ const pump = new PartitionPump(connectionContext, partitionProcessor, startPosition, this._options);
61
+ try {
62
+ // Set the pump before starting it in case the user
63
+ // closes the subscription while `start()` is in progress.
64
+ this._partitionIdToPumps[partitionId] = pump;
65
+ await pump.start();
66
+ }
67
+ catch (err) {
68
+ logger.verbose(`[${this._eventProcessorName}] [${partitionId}] An error occured while adding/updating a pump: ${err}`);
69
+ logErrorStackTrace(err);
70
+ }
71
+ }
72
+ /**
73
+ * Stop a PartitionPump and removes it from the internal map.
74
+ * @param partitionId - The partitionId to remove the associated PartitionPump from.
75
+ * @param reason - The reason for removing the pump.
76
+ */
77
+ async removePump(partitionId, reason) {
78
+ try {
79
+ const pump = this._partitionIdToPumps[partitionId];
80
+ if (pump) {
81
+ delete this._partitionIdToPumps[partitionId];
82
+ logger.verbose(`[${this._eventProcessorName}] [${partitionId}] Stopping the pump.`);
83
+ await pump.stop(reason);
84
+ }
85
+ else {
86
+ logger.verbose(`[${this._eventProcessorName}] [${partitionId}] No pump was found to remove.`);
87
+ }
88
+ }
89
+ catch (err) {
90
+ logger.verbose(`[${this._eventProcessorName}] [${partitionId}] An error occured while removing a pump: ${err}`);
91
+ logErrorStackTrace(err);
92
+ }
93
+ }
94
+ /**
95
+ * Stops all PartitionPumps and removes them from the internal map.
96
+ * @param reason - The reason for removing the pump.
97
+ */
98
+ async removeAllPumps(reason) {
99
+ const partitionIds = Object.keys(this._partitionIdToPumps);
100
+ logger.verbose(`[${this._eventProcessorName}] Removing all pumps due to reason ${reason}.`);
101
+ const tasks = [];
102
+ for (const partitionId of partitionIds) {
103
+ const pump = this._partitionIdToPumps[partitionId];
104
+ if (pump) {
105
+ tasks.push(pump.stop(reason));
106
+ }
107
+ }
108
+ try {
109
+ await Promise.all(tasks);
110
+ }
111
+ catch (err) {
112
+ logger.verbose(`[${this._eventProcessorName}] An error occured while removing all pumps: ${err}`);
113
+ logErrorStackTrace(err);
114
+ }
115
+ finally {
116
+ this._partitionIdToPumps = {};
117
+ }
118
+ }
119
+ }
120
+ //# sourceMappingURL=pumpManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pumpManager.js","sourceRoot":"","sources":["../../src/pumpManager.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { logErrorStackTrace, logger } from \"./logger.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { CloseReason } from \"./models/public.js\";\nimport type { CommonEventProcessorOptions } from \"./models/private.js\";\nimport type { ConnectionContext } from \"./connectionContext.js\";\nimport type { EventPosition } from \"./eventPosition.js\";\nimport type { PartitionProcessor } from \"./partitionProcessor.js\";\nimport { PartitionPump } from \"./partitionPump.js\";\n\n/**\n * The PumpManager handles the creation and removal of PartitionPumps.\n * It also starts a PartitionPump when it is created, and stops a\n * PartitionPump when it is removed.\n * @internal\n */\nexport interface PumpManager {\n /**\n * Creates and starts a PartitionPump.\n * @param startPosition - The position in the partition to start reading from.\n * @param eventHubClient - The EventHubClient to forward to the PartitionPump.\n * @param partitionProcessor - The PartitionProcessor to forward to the PartitionPump.\n * @param abortSignal - Used to cancel pump creation.\n */\n createPump(\n startPosition: EventPosition,\n connectionContext: ConnectionContext,\n partitionProcessor: PartitionProcessor,\n abortSignal: AbortSignalLike,\n ): Promise<void>;\n\n /**\n * Indicates whether the pump manager is actively receiving events from a given partition.\n * @param partitionId - The partition to check.\n */\n isReceivingFromPartition(partitionId: string): boolean;\n\n /**\n * Stops all PartitionPumps and removes them from the internal map.\n * @param reason - The reason for removing the pump.\n */\n removeAllPumps(reason: CloseReason): Promise<void>;\n}\n\n/**\n * The PumpManager handles the creation and removal of PartitionPumps.\n * It also starts a PartitionPump when it is created, and stops a\n * PartitionPump when it is removed.\n * @internal\n */\nexport class PumpManagerImpl implements PumpManager {\n private readonly _eventProcessorName: string;\n private readonly _options: CommonEventProcessorOptions;\n private _partitionIdToPumps: {\n [partitionId: string]: PartitionPump | undefined;\n } = {};\n\n constructor(eventProcessorName: string, eventProcessorOptions: CommonEventProcessorOptions) {\n this._eventProcessorName = eventProcessorName;\n this._options = eventProcessorOptions;\n }\n\n /**\n * Returns a list of partitionIds that are actively receiving messages.\n */\n public receivingFromPartitions(): string[] {\n return Object.keys(this._partitionIdToPumps).filter((id) => {\n const pump = this._partitionIdToPumps[id];\n return Boolean(pump && pump.isReceiving);\n });\n }\n\n /**\n * Indicates whether the pump manager is actively receiving events from a given partition.\n * @internal\n */\n public isReceivingFromPartition(partitionId: string): boolean {\n const pump = this._partitionIdToPumps[partitionId];\n return Boolean(pump && pump.isReceiving);\n }\n\n /**\n * Creates and starts a PartitionPump.\n * @param startPosition - The position in the partition to start reading from.\n * @param connectionContext - The ConnectionContext to forward to the PartitionPump.\n * @param partitionProcessor - The PartitionProcessor to forward to the PartitionPump.\n */\n public async createPump(\n startPosition: EventPosition,\n connectionContext: ConnectionContext,\n partitionProcessor: PartitionProcessor,\n abortSignal: AbortSignalLike,\n ): Promise<void> {\n const partitionId = partitionProcessor.partitionId;\n if (abortSignal.aborted) {\n logger.verbose(\n `${this._eventProcessorName}] The subscription was closed before creating the pump for partition ${partitionId}.`,\n );\n return;\n }\n // attempt to get an existing pump\n const existingPump = this._partitionIdToPumps[partitionId];\n if (existingPump) {\n if (existingPump.isReceiving) {\n logger.verbose(\n `[${this._eventProcessorName}] [${partitionId}] The existing pump is running.`,\n );\n return;\n }\n logger.verbose(\n `[${this._eventProcessorName}] [${partitionId}] The existing pump is not running.`,\n );\n await this.removePump(partitionId, CloseReason.OwnershipLost);\n }\n\n logger.verbose(`[${this._eventProcessorName}] [${partitionId}] Creating a new pump.`);\n\n const pump = new PartitionPump(\n connectionContext,\n partitionProcessor,\n startPosition,\n this._options,\n );\n\n try {\n // Set the pump before starting it in case the user\n // closes the subscription while `start()` is in progress.\n this._partitionIdToPumps[partitionId] = pump;\n await pump.start();\n } catch (err: any) {\n logger.verbose(\n `[${this._eventProcessorName}] [${partitionId}] An error occured while adding/updating a pump: ${err}`,\n );\n logErrorStackTrace(err);\n }\n }\n\n /**\n * Stop a PartitionPump and removes it from the internal map.\n * @param partitionId - The partitionId to remove the associated PartitionPump from.\n * @param reason - The reason for removing the pump.\n */\n public async removePump(partitionId: string, reason: CloseReason): Promise<void> {\n try {\n const pump = this._partitionIdToPumps[partitionId];\n if (pump) {\n delete this._partitionIdToPumps[partitionId];\n logger.verbose(`[${this._eventProcessorName}] [${partitionId}] Stopping the pump.`);\n await pump.stop(reason);\n } else {\n logger.verbose(\n `[${this._eventProcessorName}] [${partitionId}] No pump was found to remove.`,\n );\n }\n } catch (err: any) {\n logger.verbose(\n `[${this._eventProcessorName}] [${partitionId}] An error occured while removing a pump: ${err}`,\n );\n logErrorStackTrace(err);\n }\n }\n\n /**\n * Stops all PartitionPumps and removes them from the internal map.\n * @param reason - The reason for removing the pump.\n */\n public async removeAllPumps(reason: CloseReason): Promise<void> {\n const partitionIds = Object.keys(this._partitionIdToPumps);\n\n logger.verbose(`[${this._eventProcessorName}] Removing all pumps due to reason ${reason}.`);\n\n const tasks: PromiseLike<void>[] = [];\n for (const partitionId of partitionIds) {\n const pump = this._partitionIdToPumps[partitionId];\n if (pump) {\n tasks.push(pump.stop(reason));\n }\n }\n\n try {\n await Promise.all(tasks);\n } catch (err: any) {\n logger.verbose(\n `[${this._eventProcessorName}] An error occured while removing all pumps: ${err}`,\n );\n logErrorStackTrace(err);\n } finally {\n this._partitionIdToPumps = {};\n }\n }\n}\n"]}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The set of properties that comprise an Event Hub connection string.
3
+ */
4
+ export interface EventHubConnectionStringProperties {
5
+ /**
6
+ * The fully qualified Event Hub namespace extracted from the "Endpoint" in the
7
+ * connection string. This is likely to be similar to `{yournamespace}.servicebus.windows.net`.
8
+ * This is typically used to construct an EventHubProducerClient or an EventHubConsumerClient.
9
+ */
10
+ fullyQualifiedNamespace: string;
11
+ /**
12
+ * The value for "Endpoint" in the connection string.
13
+ */
14
+ endpoint: string;
15
+ /**
16
+ * The value for "EntityPath" in the connection string which would be the name of the event hub instance associated with the connection string.
17
+ * Connection string from a Shared Access Policy created at the namespace level
18
+ * will not have the EntityPath in it.
19
+ */
20
+ eventHubName?: string;
21
+ /**
22
+ * The value for "SharedAccessKey" in the connection string. This along with the "SharedAccessKeyName"
23
+ * in the connection string is used to generate a SharedAccessSignature which can be used authorize
24
+ * the connection to the service.
25
+ */
26
+ sharedAccessKey?: string;
27
+ /**
28
+ * The value for "SharedAccessKeyName" in the connection string. This along with the "SharedAccessKey"
29
+ * in the connection string is used to generate a SharedAccessSignature which can be used authorize
30
+ * the connection to the service.
31
+ */
32
+ sharedAccessKeyName?: string;
33
+ /**
34
+ * The value for "SharedAccessSignature" in the connection string. This is typically not present in the
35
+ * connection string generated for a Shared Access Policy. It is instead generated by the
36
+ * user and appended to the connection string for ease of use.
37
+ */
38
+ sharedAccessSignature?: string;
39
+ /**
40
+ * This should be true only if the connection string contains the slug ";UseDevelopmentEmulator=true"
41
+ * and the endpoint is a loopback address.
42
+ */
43
+ useDevelopmentEmulator?: boolean;
44
+ }
45
+ /**
46
+ * Parses given connection string into the different properties applicable to Azure Event Hubs.
47
+ * The properties are useful to then construct an EventHubProducerClient or an EventHubConsumerClient.
48
+ * @param connectionString - The connection string associated with the Shared Access Policy created
49
+ * for the Event Hubs namespace.
50
+ */
51
+ export declare function parseEventHubConnectionString(connectionString: string): Readonly<EventHubConnectionStringProperties>;
52
+ //# sourceMappingURL=connectionStringUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionStringUtils.d.ts","sourceRoot":"","sources":["../../../src/util/connectionStringUtils.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD;;;;OAIG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,MAAM,GACvB,QAAQ,CAAC,kCAAkC,CAAC,CAoC9C"}
@@ -0,0 +1,48 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { parseConnectionString } from "@azure/core-amqp";
4
+ /**
5
+ * Parses given connection string into the different properties applicable to Azure Event Hubs.
6
+ * The properties are useful to then construct an EventHubProducerClient or an EventHubConsumerClient.
7
+ * @param connectionString - The connection string associated with the Shared Access Policy created
8
+ * for the Event Hubs namespace.
9
+ */
10
+ export function parseEventHubConnectionString(connectionString) {
11
+ const parsedResult = parseConnectionString(connectionString);
12
+ validateProperties(parsedResult.Endpoint, parsedResult.SharedAccessSignature, parsedResult.SharedAccessKey, parsedResult.SharedAccessKeyName);
13
+ const output = {
14
+ fullyQualifiedNamespace: (parsedResult.Endpoint.match(".*://([^/]*)") || [])[1],
15
+ endpoint: parsedResult.Endpoint,
16
+ };
17
+ if (parsedResult.EntityPath) {
18
+ output.eventHubName = parsedResult.EntityPath;
19
+ }
20
+ if (parsedResult.SharedAccessSignature) {
21
+ output.sharedAccessSignature = parsedResult.SharedAccessSignature;
22
+ }
23
+ if (parsedResult.SharedAccessKey && parsedResult.SharedAccessKeyName) {
24
+ output.sharedAccessKey = parsedResult.SharedAccessKey;
25
+ output.sharedAccessKeyName = parsedResult.SharedAccessKeyName;
26
+ }
27
+ return output;
28
+ }
29
+ /**
30
+ * @internal
31
+ */
32
+ function validateProperties(endpoint, sharedAccessSignature, sharedAccessKey, sharedAccessKeyName) {
33
+ if (!endpoint) {
34
+ throw new Error("Connection string should have an Endpoint key.");
35
+ }
36
+ if (sharedAccessSignature) {
37
+ if (sharedAccessKey || sharedAccessKeyName) {
38
+ throw new Error("Connection string cannot have both SharedAccessSignature and SharedAccessKey keys.");
39
+ }
40
+ }
41
+ else if (sharedAccessKey && !sharedAccessKeyName) {
42
+ throw new Error("Connection string with SharedAccessKey should have SharedAccessKeyName.");
43
+ }
44
+ else if (!sharedAccessKey && sharedAccessKeyName) {
45
+ throw new Error("Connection string with SharedAccessKeyName should have SharedAccessKey as well.");
46
+ }
47
+ }
48
+ //# sourceMappingURL=connectionStringUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionStringUtils.js","sourceRoot":"","sources":["../../../src/util/connectionStringUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AA+CzD;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,gBAAwB;IAExB,MAAM,YAAY,GAAG,qBAAqB,CAOvC,gBAAgB,CAAC,CAAC;IAErB,kBAAkB,CAChB,YAAY,CAAC,QAAQ,EACrB,YAAY,CAAC,qBAAqB,EAClC,YAAY,CAAC,eAAe,EAC5B,YAAY,CAAC,mBAAmB,CACjC,CAAC;IAEF,MAAM,MAAM,GAAuC;QACjD,uBAAuB,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/E,QAAQ,EAAE,YAAY,CAAC,QAAQ;KAChC,CAAC;IAEF,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC;IAChD,CAAC;IAED,IAAI,YAAY,CAAC,qBAAqB,EAAE,CAAC;QACvC,MAAM,CAAC,qBAAqB,GAAG,YAAY,CAAC,qBAAqB,CAAC;IACpE,CAAC;IAED,IAAI,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACrE,MAAM,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC;QACtD,MAAM,CAAC,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,QAAiB,EACjB,qBAA8B,EAC9B,eAAwB,EACxB,mBAA4B;IAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,qBAAqB,EAAE,CAAC;QAC1B,IAAI,eAAe,IAAI,mBAAmB,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,eAAe,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;SAAM,IAAI,CAAC,eAAe,IAAI,mBAAmB,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { parseConnectionString } from \"@azure/core-amqp\";\n\n/**\n * The set of properties that comprise an Event Hub connection string.\n */\nexport interface EventHubConnectionStringProperties {\n /**\n * The fully qualified Event Hub namespace extracted from the \"Endpoint\" in the\n * connection string. This is likely to be similar to `{yournamespace}.servicebus.windows.net`.\n * This is typically used to construct an EventHubProducerClient or an EventHubConsumerClient.\n */\n fullyQualifiedNamespace: string;\n /**\n * The value for \"Endpoint\" in the connection string.\n */\n endpoint: string;\n /**\n * The value for \"EntityPath\" in the connection string which would be the name of the event hub instance associated with the connection string.\n * Connection string from a Shared Access Policy created at the namespace level\n * will not have the EntityPath in it.\n */\n eventHubName?: string;\n /**\n * The value for \"SharedAccessKey\" in the connection string. This along with the \"SharedAccessKeyName\"\n * in the connection string is used to generate a SharedAccessSignature which can be used authorize\n * the connection to the service.\n */\n sharedAccessKey?: string;\n /**\n * The value for \"SharedAccessKeyName\" in the connection string. This along with the \"SharedAccessKey\"\n * in the connection string is used to generate a SharedAccessSignature which can be used authorize\n * the connection to the service.\n */\n sharedAccessKeyName?: string;\n /**\n * The value for \"SharedAccessSignature\" in the connection string. This is typically not present in the\n * connection string generated for a Shared Access Policy. It is instead generated by the\n * user and appended to the connection string for ease of use.\n */\n sharedAccessSignature?: string;\n /**\n * This should be true only if the connection string contains the slug \";UseDevelopmentEmulator=true\"\n * and the endpoint is a loopback address.\n */\n useDevelopmentEmulator?: boolean;\n}\n\n/**\n * Parses given connection string into the different properties applicable to Azure Event Hubs.\n * The properties are useful to then construct an EventHubProducerClient or an EventHubConsumerClient.\n * @param connectionString - The connection string associated with the Shared Access Policy created\n * for the Event Hubs namespace.\n */\nexport function parseEventHubConnectionString(\n connectionString: string,\n): Readonly<EventHubConnectionStringProperties> {\n const parsedResult = parseConnectionString<{\n Endpoint: string;\n EntityPath?: string;\n SharedAccessSignature?: string;\n SharedAccessKey?: string;\n SharedAccessKeyName?: string;\n UseDevelopmentEmulator?: string;\n }>(connectionString);\n\n validateProperties(\n parsedResult.Endpoint,\n parsedResult.SharedAccessSignature,\n parsedResult.SharedAccessKey,\n parsedResult.SharedAccessKeyName,\n );\n\n const output: EventHubConnectionStringProperties = {\n fullyQualifiedNamespace: (parsedResult.Endpoint.match(\".*://([^/]*)\") || [])[1],\n endpoint: parsedResult.Endpoint,\n };\n\n if (parsedResult.EntityPath) {\n output.eventHubName = parsedResult.EntityPath;\n }\n\n if (parsedResult.SharedAccessSignature) {\n output.sharedAccessSignature = parsedResult.SharedAccessSignature;\n }\n\n if (parsedResult.SharedAccessKey && parsedResult.SharedAccessKeyName) {\n output.sharedAccessKey = parsedResult.SharedAccessKey;\n output.sharedAccessKeyName = parsedResult.SharedAccessKeyName;\n }\n\n return output;\n}\n\n/**\n * @internal\n */\nfunction validateProperties(\n endpoint?: string,\n sharedAccessSignature?: string,\n sharedAccessKey?: string,\n sharedAccessKeyName?: string,\n): void {\n if (!endpoint) {\n throw new Error(\"Connection string should have an Endpoint key.\");\n }\n\n if (sharedAccessSignature) {\n if (sharedAccessKey || sharedAccessKeyName) {\n throw new Error(\n \"Connection string cannot have both SharedAccessSignature and SharedAccessKey keys.\",\n );\n }\n } else if (sharedAccessKey && !sharedAccessKeyName) {\n throw new Error(\"Connection string with SharedAccessKey should have SharedAccessKeyName.\");\n } else if (!sharedAccessKey && sharedAccessKeyName) {\n throw new Error(\n \"Connection string with SharedAccessKeyName should have SharedAccessKey as well.\",\n );\n }\n}\n"]}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare const packageJsonInfo: {
5
+ name: string;
6
+ version: string;
7
+ };
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare const idempotentProducerAmqpPropertyNames: {
12
+ readonly capability: "com.microsoft:idempotent-producer";
13
+ readonly epoch: "com.microsoft:producer-epoch";
14
+ readonly producerId: "com.microsoft:producer-id";
15
+ readonly producerSequenceNumber: "com.microsoft:producer-sequence-number";
16
+ };
17
+ /** @internal */
18
+ export declare const receiverIdPropertyName = "com.microsoft:receiver-name";
19
+ /** @internal */
20
+ export declare const geoReplication = "com.microsoft:georeplication";
21
+ /**
22
+ * @internal
23
+ */
24
+ export declare const PENDING_PUBLISH_SEQ_NUM_SYMBOL: unique symbol;
25
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/util/constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mCAAmC;;;;;CAKtC,CAAC;AAEX,gBAAgB;AAChB,eAAO,MAAM,sBAAsB,gCAAgC,CAAC;AAEpE,gBAAgB;AAChB,eAAO,MAAM,cAAc,iCAAiC,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,8BAA8B,eAE1C,CAAC"}
@@ -0,0 +1,27 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ /**
4
+ * @internal
5
+ */
6
+ export const packageJsonInfo = {
7
+ name: "@azure/event-hubs",
8
+ version: "6.0.2",
9
+ };
10
+ /**
11
+ * @internal
12
+ */
13
+ export const idempotentProducerAmqpPropertyNames = {
14
+ capability: "com.microsoft:idempotent-producer",
15
+ epoch: "com.microsoft:producer-epoch",
16
+ producerId: "com.microsoft:producer-id",
17
+ producerSequenceNumber: "com.microsoft:producer-sequence-number",
18
+ };
19
+ /** @internal */
20
+ export const receiverIdPropertyName = "com.microsoft:receiver-name";
21
+ /** @internal */
22
+ export const geoReplication = "com.microsoft:georeplication";
23
+ /**
24
+ * @internal
25
+ */
26
+ export const PENDING_PUBLISH_SEQ_NUM_SYMBOL = Symbol.for("@azure/event-hubs.pendingPublishSequenceNumber");
27
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/util/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,UAAU,EAAE,mCAAmC;IAC/C,KAAK,EAAE,8BAA8B;IACrC,UAAU,EAAE,2BAA2B;IACvC,sBAAsB,EAAE,wCAAwC;CACxD,CAAC;AAEX,gBAAgB;AAChB,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAEpE,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,GAAG,CACtD,gDAAgD,CACjD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * @internal\n */\nexport const packageJsonInfo = {\n name: \"@azure/event-hubs\",\n version: \"6.0.2\",\n};\n\n/**\n * @internal\n */\nexport const idempotentProducerAmqpPropertyNames = {\n capability: \"com.microsoft:idempotent-producer\",\n epoch: \"com.microsoft:producer-epoch\",\n producerId: \"com.microsoft:producer-id\",\n producerSequenceNumber: \"com.microsoft:producer-sequence-number\",\n} as const;\n\n/** @internal */\nexport const receiverIdPropertyName = \"com.microsoft:receiver-name\";\n\n/** @internal */\nexport const geoReplication = \"com.microsoft:georeplication\";\n\n/**\n * @internal\n */\nexport const PENDING_PUBLISH_SEQ_NUM_SYMBOL = Symbol.for(\n \"@azure/event-hubs.pendingPublishSequenceNumber\",\n);\n"]}
@@ -0,0 +1,8 @@
1
+ import type { AbortSignalLike } from "@azure/abort-controller";
2
+ /**
3
+ * @param delayInMs - The number of milliseconds to be delayed.
4
+ * @param abortSignal - The abortSignal associated with the containing operation.
5
+ * @internal
6
+ */
7
+ export declare function delayWithoutThrow(delayInMs: number, abortSignal?: AbortSignalLike): Promise<void>;
8
+ //# sourceMappingURL=delayWithoutThrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delayWithoutThrow.d.ts","sourceRoot":"","sources":["../../../src/util/delayWithoutThrow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -0,0 +1,17 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { delay } from "@azure/core-amqp";
4
+ /**
5
+ * @param delayInMs - The number of milliseconds to be delayed.
6
+ * @param abortSignal - The abortSignal associated with the containing operation.
7
+ * @internal
8
+ */
9
+ export async function delayWithoutThrow(delayInMs, abortSignal) {
10
+ try {
11
+ await delay(delayInMs, abortSignal);
12
+ }
13
+ catch {
14
+ /* no-op to swallow AbortError */
15
+ }
16
+ }
17
+ //# sourceMappingURL=delayWithoutThrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delayWithoutThrow.js","sourceRoot":"","sources":["../../../src/util/delayWithoutThrow.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,WAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { delay } from \"@azure/core-amqp\";\n\n/**\n * @param delayInMs - The number of milliseconds to be delayed.\n * @param abortSignal - The abortSignal associated with the containing operation.\n * @internal\n */\nexport async function delayWithoutThrow(\n delayInMs: number,\n abortSignal?: AbortSignalLike,\n): Promise<void> {\n try {\n await delay(delayInMs, abortSignal);\n } catch {\n /* no-op to swallow AbortError */\n }\n}\n"]}
@@ -0,0 +1,39 @@
1
+ import type { ConnectionContext } from "../connectionContext.js";
2
+ import type { AmqpError } from "rhea-promise";
3
+ import type { MessagingError } from "@azure/core-amqp";
4
+ /**
5
+ * @internal
6
+ * Logs and throws Error if the current AMQP connection is closed.
7
+ * @param context - The ConnectionContext associated with the current AMQP connection.
8
+ */
9
+ export declare function throwErrorIfConnectionClosed(context: ConnectionContext): void;
10
+ /**
11
+ * @internal
12
+ * Logs and Throws TypeError if given parameter is undefined or null
13
+ * @param connectionId - Id of the underlying AMQP connection used for logging
14
+ * @param methodName - Name of the method that was passed the parameter
15
+ * @param parameterName - Name of the parameter to check
16
+ * @param parameterValue - Value of the parameter to check
17
+ */
18
+ export declare function throwTypeErrorIfParameterMissing(connectionId: string, methodName: string, parameterName: string, parameterValue: unknown): void;
19
+ /**
20
+ * @internal
21
+ */
22
+ export declare function translateError(err: AmqpError | Error): MessagingError | Error;
23
+ /**
24
+ * @internal
25
+ */
26
+ export declare const idempotentAlreadyPublished = "These events have already been successfully published. When idempotent publishing is enabled, events that were acknowledged by the Event Hubs service may not be published again.";
27
+ /**
28
+ * @internal
29
+ */
30
+ export declare const idempotentSomeAlreadyPublished = "1 or more of these events have already been successfully published. When idempotent publishing is enabled, events that were acknowledged by the Event Hubs service may not be published again.";
31
+ /**
32
+ * @internal
33
+ */
34
+ export declare function validateProducerPartitionSettings({ enableIdempotentRetries, partitionId, partitionKey, }: {
35
+ enableIdempotentRetries?: boolean;
36
+ partitionId?: string;
37
+ partitionKey?: string;
38
+ }): void;
39
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/util/error.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAQ7E;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,OAAO,GACtB,IAAI,CASN;AA0BD;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,KAAK,GAAG,cAAc,GAAG,KAAK,CAwB7E;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,sLAC8I,CAAC;AAEtL;;GAEG;AACH,eAAO,MAAM,8BAA8B,mMACuJ,CAAC;AAEnM;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,EAChD,uBAAuB,EACvB,WAAW,EACX,YAAY,GACb,EAAE;IACD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAYP"}