@azure/event-hubs 5.13.0-alpha.20240729.1 → 5.13.0-alpha.20240731.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.
Files changed (604) hide show
  1. package/dist/browser/batchingPartitionChannel.d.ts +94 -0
  2. package/dist/browser/batchingPartitionChannel.d.ts.map +1 -0
  3. package/{dist-esm/src → dist/browser}/batchingPartitionChannel.js +3 -3
  4. package/dist/browser/batchingPartitionChannel.js.map +1 -0
  5. package/dist/browser/connectionContext.d.ts +107 -0
  6. package/dist/browser/connectionContext.d.ts.map +1 -0
  7. package/{dist-esm/src → dist/browser}/connectionContext.js +7 -7
  8. package/dist/browser/connectionContext.js.map +1 -0
  9. package/dist/browser/dataTransformer.d.ts +53 -0
  10. package/dist/browser/dataTransformer.d.ts.map +1 -0
  11. package/{dist-esm/src → dist/browser}/dataTransformer.js +1 -1
  12. package/dist/browser/dataTransformer.js.map +1 -0
  13. package/dist/browser/diagnostics/instrumentEventData.d.ts +28 -0
  14. package/dist/browser/diagnostics/instrumentEventData.d.ts.map +1 -0
  15. package/{dist-esm/src → dist/browser}/diagnostics/instrumentEventData.js +2 -2
  16. package/dist/browser/diagnostics/instrumentEventData.js.map +1 -0
  17. package/dist/browser/diagnostics/tracing.d.ts +19 -0
  18. package/dist/browser/diagnostics/tracing.d.ts.map +1 -0
  19. package/{dist-esm/src → dist/browser}/diagnostics/tracing.js +1 -1
  20. package/dist/browser/diagnostics/tracing.js.map +1 -0
  21. package/dist/browser/eventData.d.ts +284 -0
  22. package/dist/browser/eventData.d.ts.map +1 -0
  23. package/{dist-esm/src → dist/browser}/eventData.js +2 -2
  24. package/dist/browser/eventData.js.map +1 -0
  25. package/dist/browser/eventDataAdapter.d.ts +69 -0
  26. package/dist/browser/eventDataAdapter.d.ts.map +1 -0
  27. package/dist/browser/eventDataAdapter.js.map +1 -0
  28. package/dist/browser/eventDataBatch.d.ts +225 -0
  29. package/dist/browser/eventDataBatch.d.ts.map +1 -0
  30. package/{dist-esm/src → dist/browser}/eventDataBatch.js +3 -3
  31. package/dist/browser/eventDataBatch.js.map +1 -0
  32. package/dist/browser/eventHubBufferedProducerClient.d.ts +323 -0
  33. package/dist/browser/eventHubBufferedProducerClient.d.ts.map +1 -0
  34. package/{dist-esm/src → dist/browser}/eventHubBufferedProducerClient.js +6 -7
  35. package/dist/browser/eventHubBufferedProducerClient.js.map +1 -0
  36. package/dist/browser/eventHubConsumerClient.d.ts +277 -0
  37. package/dist/browser/eventHubConsumerClient.d.ts.map +1 -0
  38. package/{dist-esm/src → dist/browser}/eventHubConsumerClient.js +11 -11
  39. package/dist/browser/eventHubConsumerClient.js.map +1 -0
  40. package/dist/browser/eventHubConsumerClientModels.d.ts +218 -0
  41. package/dist/browser/eventHubConsumerClientModels.d.ts.map +1 -0
  42. package/dist/browser/eventHubConsumerClientModels.js.map +1 -0
  43. package/dist/browser/eventHubProducerClient.d.ts +266 -0
  44. package/dist/browser/eventHubProducerClient.d.ts.map +1 -0
  45. package/{dist-esm/src → dist/browser}/eventHubProducerClient.js +9 -9
  46. package/dist/browser/eventHubProducerClient.js.map +1 -0
  47. package/dist/browser/eventHubSender.d.ts +227 -0
  48. package/dist/browser/eventHubSender.d.ts.map +1 -0
  49. package/{dist-esm/src → dist/browser}/eventHubSender.js +8 -8
  50. package/dist/browser/eventHubSender.js.map +1 -0
  51. package/dist/browser/eventPosition.d.ts +73 -0
  52. package/dist/browser/eventPosition.d.ts.map +1 -0
  53. package/dist/browser/eventProcessor.d.ts +232 -0
  54. package/dist/browser/eventProcessor.d.ts.map +1 -0
  55. package/{dist-esm/src → dist/browser}/eventProcessor.js +17 -17
  56. package/dist/browser/eventProcessor.js.map +1 -0
  57. package/dist/browser/eventhubConnectionConfig.d.ts +96 -0
  58. package/dist/browser/eventhubConnectionConfig.d.ts.map +1 -0
  59. package/{dist-esm/src → dist/browser}/eventhubConnectionConfig.js +1 -1
  60. package/dist/browser/eventhubConnectionConfig.js.map +1 -0
  61. package/dist/browser/impl/awaitableQueue.d.ts +25 -0
  62. package/dist/browser/impl/awaitableQueue.d.ts.map +1 -0
  63. package/dist/browser/impl/partitionAssigner.d.ts +29 -0
  64. package/dist/browser/impl/partitionAssigner.d.ts.map +1 -0
  65. package/{dist-esm/src → dist/browser}/impl/partitionAssigner.js +1 -1
  66. package/dist/browser/impl/partitionAssigner.js.map +1 -0
  67. package/dist/browser/impl/partitionGate.d.ts +27 -0
  68. package/dist/browser/impl/partitionGate.d.ts.map +1 -0
  69. package/dist/browser/impl/partitionKeyToIdMapper.d.ts +6 -0
  70. package/dist/browser/impl/partitionKeyToIdMapper.d.ts.map +1 -0
  71. package/dist/browser/inMemoryCheckpointStore.d.ts +44 -0
  72. package/dist/browser/inMemoryCheckpointStore.d.ts.map +1 -0
  73. package/{dist-esm/src → dist/browser}/inMemoryCheckpointStore.js +2 -2
  74. package/dist/browser/inMemoryCheckpointStore.js.map +1 -0
  75. package/dist/browser/index.d.ts +21 -0
  76. package/dist/browser/index.d.ts.map +1 -0
  77. package/{dist-esm/src → dist/browser}/index.js +8 -8
  78. package/dist/browser/index.js.map +1 -0
  79. package/dist/browser/loadBalancerStrategies/balancedStrategy.d.ts +30 -0
  80. package/dist/browser/loadBalancerStrategies/balancedStrategy.d.ts.map +1 -0
  81. package/{dist-esm/src → dist/browser}/loadBalancerStrategies/balancedStrategy.js +1 -1
  82. package/dist/browser/loadBalancerStrategies/balancedStrategy.js.map +1 -0
  83. package/dist/browser/loadBalancerStrategies/greedyStrategy.d.ts +24 -0
  84. package/dist/browser/loadBalancerStrategies/greedyStrategy.d.ts.map +1 -0
  85. package/{dist-esm/src → dist/browser}/loadBalancerStrategies/greedyStrategy.js +1 -1
  86. package/dist/browser/loadBalancerStrategies/greedyStrategy.js.map +1 -0
  87. package/dist/browser/loadBalancerStrategies/loadBalancingStrategy.d.ts +28 -0
  88. package/dist/browser/loadBalancerStrategies/loadBalancingStrategy.d.ts.map +1 -0
  89. package/{dist-esm/src → dist/browser}/loadBalancerStrategies/loadBalancingStrategy.js +1 -1
  90. package/dist/browser/loadBalancerStrategies/loadBalancingStrategy.js.map +1 -0
  91. package/dist/browser/loadBalancerStrategies/unbalancedStrategy.d.ts +20 -0
  92. package/dist/browser/loadBalancerStrategies/unbalancedStrategy.d.ts.map +1 -0
  93. package/dist/browser/loadBalancerStrategies/unbalancedStrategy.js.map +1 -0
  94. package/dist/browser/logger.d.ts +37 -0
  95. package/dist/browser/logger.d.ts.map +1 -0
  96. package/dist/browser/managementClient.d.ts +145 -0
  97. package/dist/browser/managementClient.d.ts.map +1 -0
  98. package/{dist-esm/src → dist/browser}/managementClient.js +6 -6
  99. package/dist/browser/managementClient.js.map +1 -0
  100. package/dist/browser/models/private.d.ts +185 -0
  101. package/dist/browser/models/private.d.ts.map +1 -0
  102. package/{dist-esm/src → dist/browser}/models/private.js +1 -1
  103. package/dist/browser/models/private.js.map +1 -0
  104. package/dist/browser/models/public.d.ts +240 -0
  105. package/dist/browser/models/public.d.ts.map +1 -0
  106. package/dist/browser/models/public.js.map +1 -0
  107. package/dist/browser/package.json +3 -0
  108. package/dist/browser/partitionProcessor.d.ts +134 -0
  109. package/dist/browser/partitionProcessor.d.ts.map +1 -0
  110. package/{dist-esm/src → dist/browser}/partitionProcessor.js +1 -1
  111. package/dist/browser/partitionProcessor.js.map +1 -0
  112. package/dist/browser/partitionPump.d.ts +38 -0
  113. package/dist/browser/partitionPump.d.ts.map +1 -0
  114. package/{dist-esm/src → dist/browser}/partitionPump.js +5 -6
  115. package/dist/browser/partitionPump.js.map +1 -0
  116. package/dist/browser/partitionReceiver.d.ts +82 -0
  117. package/dist/browser/partitionReceiver.d.ts.map +1 -0
  118. package/{dist-esm/src → dist/browser}/partitionReceiver.js +11 -9
  119. package/dist/browser/partitionReceiver.js.map +1 -0
  120. package/dist/browser/pumpManager.d.ts +72 -0
  121. package/dist/browser/pumpManager.d.ts.map +1 -0
  122. package/{dist-esm/src → dist/browser}/pumpManager.js +3 -3
  123. package/dist/browser/pumpManager.js.map +1 -0
  124. package/dist/browser/util/connectionStringUtils.d.ts +52 -0
  125. package/dist/browser/util/connectionStringUtils.d.ts.map +1 -0
  126. package/dist/browser/util/constants.d.ts +23 -0
  127. package/dist/browser/util/constants.d.ts.map +1 -0
  128. package/dist/browser/util/delayWithoutThrow.d.ts +8 -0
  129. package/dist/browser/util/delayWithoutThrow.d.ts.map +1 -0
  130. package/dist/browser/util/error.d.ts +39 -0
  131. package/dist/browser/util/error.d.ts.map +1 -0
  132. package/{dist-esm/src → dist/browser}/util/error.js +1 -1
  133. package/dist/browser/util/error.js.map +1 -0
  134. package/dist/browser/util/getPromiseParts.d.ts +10 -0
  135. package/dist/browser/util/getPromiseParts.d.ts.map +1 -0
  136. package/dist/browser/util/operationOptions.d.ts +16 -0
  137. package/dist/browser/util/operationOptions.d.ts.map +1 -0
  138. package/dist/browser/util/parseEndpoint.d.ts +11 -0
  139. package/dist/browser/util/parseEndpoint.d.ts.map +1 -0
  140. package/dist/browser/util/retries.d.ts +6 -0
  141. package/dist/browser/util/retries.d.ts.map +1 -0
  142. package/dist/browser/util/runtimeInfo-browser.d.mts.map +1 -0
  143. package/dist/browser/util/runtimeInfo-browser.mjs.map +1 -0
  144. package/dist/browser/util/runtimeInfo.d.ts +6 -0
  145. package/{dist-esm/src/util/runtimeInfo.browser.js → dist/browser/util/runtimeInfo.js} +1 -1
  146. package/dist/browser/util/timerLoop.d.ts +26 -0
  147. package/dist/browser/util/timerLoop.d.ts.map +1 -0
  148. package/dist/browser/util/typeGuards.d.ts +8 -0
  149. package/dist/browser/util/typeGuards.d.ts.map +1 -0
  150. package/dist/browser/util/utils.d.ts +7 -0
  151. package/dist/browser/util/utils.d.ts.map +1 -0
  152. package/dist/browser/withAuth.d.ts +25 -0
  153. package/dist/browser/withAuth.d.ts.map +1 -0
  154. package/{dist-esm/src → dist/browser}/withAuth.js +2 -2
  155. package/dist/browser/withAuth.js.map +1 -0
  156. package/dist/commonjs/batchingPartitionChannel.d.ts +94 -0
  157. package/dist/commonjs/batchingPartitionChannel.d.ts.map +1 -0
  158. package/dist/commonjs/batchingPartitionChannel.js +252 -0
  159. package/dist/commonjs/batchingPartitionChannel.js.map +1 -0
  160. package/dist/commonjs/connectionContext.d.ts +107 -0
  161. package/dist/commonjs/connectionContext.d.ts.map +1 -0
  162. package/dist/commonjs/connectionContext.js +324 -0
  163. package/dist/commonjs/connectionContext.js.map +1 -0
  164. package/dist/commonjs/dataTransformer.d.ts +53 -0
  165. package/dist/commonjs/dataTransformer.d.ts.map +1 -0
  166. package/dist/commonjs/dataTransformer.js +138 -0
  167. package/dist/commonjs/dataTransformer.js.map +1 -0
  168. package/dist/commonjs/diagnostics/instrumentEventData.d.ts +28 -0
  169. package/dist/commonjs/diagnostics/instrumentEventData.d.ts.map +1 -0
  170. package/dist/commonjs/diagnostics/instrumentEventData.js +73 -0
  171. package/dist/commonjs/diagnostics/instrumentEventData.js.map +1 -0
  172. package/dist/commonjs/diagnostics/tracing.d.ts +19 -0
  173. package/dist/commonjs/diagnostics/tracing.d.ts.map +1 -0
  174. package/dist/commonjs/diagnostics/tracing.js +44 -0
  175. package/dist/commonjs/diagnostics/tracing.js.map +1 -0
  176. package/dist/commonjs/eventData.d.ts +284 -0
  177. package/dist/commonjs/eventData.d.ts.map +1 -0
  178. package/dist/commonjs/eventData.js +217 -0
  179. package/dist/commonjs/eventData.js.map +1 -0
  180. package/dist/commonjs/eventDataAdapter.d.ts +69 -0
  181. package/dist/commonjs/eventDataAdapter.d.ts.map +1 -0
  182. package/dist/commonjs/eventDataAdapter.js +38 -0
  183. package/dist/commonjs/eventDataAdapter.js.map +1 -0
  184. package/dist/commonjs/eventDataBatch.d.ts +225 -0
  185. package/dist/commonjs/eventDataBatch.d.ts.map +1 -0
  186. package/dist/commonjs/eventDataBatch.js +251 -0
  187. package/dist/commonjs/eventDataBatch.js.map +1 -0
  188. package/dist/commonjs/eventHubBufferedProducerClient.d.ts +323 -0
  189. package/dist/commonjs/eventHubBufferedProducerClient.d.ts.map +1 -0
  190. package/dist/commonjs/eventHubBufferedProducerClient.js +287 -0
  191. package/dist/commonjs/eventHubBufferedProducerClient.js.map +1 -0
  192. package/dist/commonjs/eventHubConsumerClient.d.ts +277 -0
  193. package/dist/commonjs/eventHubConsumerClient.d.ts.map +1 -0
  194. package/dist/commonjs/eventHubConsumerClient.js +298 -0
  195. package/dist/commonjs/eventHubConsumerClient.js.map +1 -0
  196. package/dist/commonjs/eventHubConsumerClientModels.d.ts +218 -0
  197. package/dist/commonjs/eventHubConsumerClientModels.d.ts.map +1 -0
  198. package/dist/commonjs/eventHubConsumerClientModels.js +5 -0
  199. package/dist/commonjs/eventHubConsumerClientModels.js.map +1 -0
  200. package/dist/commonjs/eventHubProducerClient.d.ts +266 -0
  201. package/dist/commonjs/eventHubProducerClient.d.ts.map +1 -0
  202. package/dist/commonjs/eventHubProducerClient.js +317 -0
  203. package/dist/commonjs/eventHubProducerClient.js.map +1 -0
  204. package/dist/commonjs/eventHubSender.d.ts +227 -0
  205. package/dist/commonjs/eventHubSender.d.ts.map +1 -0
  206. package/dist/commonjs/eventHubSender.js +547 -0
  207. package/dist/commonjs/eventHubSender.js.map +1 -0
  208. package/dist/commonjs/eventPosition.d.ts +73 -0
  209. package/dist/commonjs/eventPosition.d.ts.map +1 -0
  210. package/dist/commonjs/eventPosition.js +128 -0
  211. package/dist/commonjs/eventPosition.js.map +1 -0
  212. package/dist/commonjs/eventProcessor.d.ts +232 -0
  213. package/dist/commonjs/eventProcessor.d.ts.map +1 -0
  214. package/dist/commonjs/eventProcessor.js +371 -0
  215. package/dist/commonjs/eventProcessor.js.map +1 -0
  216. package/dist/commonjs/eventhubConnectionConfig.d.ts +96 -0
  217. package/dist/commonjs/eventhubConnectionConfig.d.ts.map +1 -0
  218. package/dist/commonjs/eventhubConnectionConfig.js +101 -0
  219. package/dist/commonjs/eventhubConnectionConfig.js.map +1 -0
  220. package/dist/commonjs/impl/awaitableQueue.d.ts +25 -0
  221. package/dist/commonjs/impl/awaitableQueue.d.ts.map +1 -0
  222. package/dist/commonjs/impl/awaitableQueue.js +51 -0
  223. package/dist/commonjs/impl/awaitableQueue.js.map +1 -0
  224. package/dist/commonjs/impl/partitionAssigner.d.ts +29 -0
  225. package/dist/commonjs/impl/partitionAssigner.d.ts.map +1 -0
  226. package/dist/commonjs/impl/partitionAssigner.js +58 -0
  227. package/dist/commonjs/impl/partitionAssigner.js.map +1 -0
  228. package/dist/commonjs/impl/partitionGate.d.ts +27 -0
  229. package/dist/commonjs/impl/partitionGate.d.ts.map +1 -0
  230. package/dist/commonjs/impl/partitionGate.js +44 -0
  231. package/dist/commonjs/impl/partitionGate.js.map +1 -0
  232. package/dist/commonjs/impl/partitionKeyToIdMapper.d.ts +6 -0
  233. package/dist/commonjs/impl/partitionKeyToIdMapper.d.ts.map +1 -0
  234. package/dist/commonjs/impl/partitionKeyToIdMapper.js +115 -0
  235. package/dist/commonjs/impl/partitionKeyToIdMapper.js.map +1 -0
  236. package/dist/commonjs/inMemoryCheckpointStore.d.ts +44 -0
  237. package/dist/commonjs/inMemoryCheckpointStore.d.ts.map +1 -0
  238. package/dist/commonjs/inMemoryCheckpointStore.js +96 -0
  239. package/dist/commonjs/inMemoryCheckpointStore.js.map +1 -0
  240. package/dist/commonjs/index.d.ts +21 -0
  241. package/dist/commonjs/index.d.ts.map +1 -0
  242. package/dist/commonjs/index.js +26 -0
  243. package/dist/commonjs/index.js.map +1 -0
  244. package/dist/commonjs/loadBalancerStrategies/balancedStrategy.d.ts +30 -0
  245. package/dist/commonjs/loadBalancerStrategies/balancedStrategy.d.ts.map +1 -0
  246. package/dist/commonjs/loadBalancerStrategies/balancedStrategy.js +43 -0
  247. package/dist/commonjs/loadBalancerStrategies/balancedStrategy.js.map +1 -0
  248. package/dist/commonjs/loadBalancerStrategies/greedyStrategy.d.ts +24 -0
  249. package/dist/commonjs/loadBalancerStrategies/greedyStrategy.d.ts.map +1 -0
  250. package/dist/commonjs/loadBalancerStrategies/greedyStrategy.js +32 -0
  251. package/dist/commonjs/loadBalancerStrategies/greedyStrategy.js.map +1 -0
  252. package/dist/commonjs/loadBalancerStrategies/loadBalancingStrategy.d.ts +28 -0
  253. package/dist/commonjs/loadBalancerStrategies/loadBalancingStrategy.d.ts.map +1 -0
  254. package/dist/commonjs/loadBalancerStrategies/loadBalancingStrategy.js +248 -0
  255. package/dist/commonjs/loadBalancerStrategies/loadBalancingStrategy.js.map +1 -0
  256. package/dist/commonjs/loadBalancerStrategies/unbalancedStrategy.d.ts +20 -0
  257. package/dist/commonjs/loadBalancerStrategies/unbalancedStrategy.d.ts.map +1 -0
  258. package/dist/commonjs/loadBalancerStrategies/unbalancedStrategy.js +26 -0
  259. package/dist/commonjs/loadBalancerStrategies/unbalancedStrategy.js.map +1 -0
  260. package/dist/commonjs/logger.d.ts +37 -0
  261. package/dist/commonjs/logger.d.ts.map +1 -0
  262. package/dist/commonjs/logger.js +65 -0
  263. package/dist/commonjs/logger.js.map +1 -0
  264. package/dist/commonjs/managementClient.d.ts +145 -0
  265. package/dist/commonjs/managementClient.d.ts.map +1 -0
  266. package/dist/commonjs/managementClient.js +275 -0
  267. package/dist/commonjs/managementClient.js.map +1 -0
  268. package/dist/commonjs/models/private.d.ts +185 -0
  269. package/dist/commonjs/models/private.d.ts.map +1 -0
  270. package/dist/commonjs/models/private.js +6 -0
  271. package/dist/commonjs/models/private.js.map +1 -0
  272. package/dist/commonjs/models/public.d.ts +240 -0
  273. package/dist/commonjs/models/public.d.ts.map +1 -0
  274. package/dist/commonjs/models/public.js +21 -0
  275. package/dist/commonjs/models/public.js.map +1 -0
  276. package/dist/commonjs/package.json +3 -0
  277. package/dist/commonjs/partitionProcessor.d.ts +134 -0
  278. package/dist/commonjs/partitionProcessor.d.ts.map +1 -0
  279. package/dist/commonjs/partitionProcessor.js +138 -0
  280. package/dist/commonjs/partitionProcessor.js.map +1 -0
  281. package/dist/commonjs/partitionPump.d.ts +38 -0
  282. package/dist/commonjs/partitionPump.d.ts.map +1 -0
  283. package/dist/commonjs/partitionPump.js +171 -0
  284. package/dist/commonjs/partitionPump.js.map +1 -0
  285. package/dist/commonjs/partitionReceiver.d.ts +82 -0
  286. package/dist/commonjs/partitionReceiver.d.ts.map +1 -0
  287. package/dist/commonjs/partitionReceiver.js +335 -0
  288. package/dist/commonjs/partitionReceiver.js.map +1 -0
  289. package/dist/commonjs/pumpManager.d.ts +72 -0
  290. package/dist/commonjs/pumpManager.d.ts.map +1 -0
  291. package/dist/commonjs/pumpManager.js +122 -0
  292. package/dist/commonjs/pumpManager.js.map +1 -0
  293. package/dist/commonjs/util/connectionStringUtils.d.ts +52 -0
  294. package/dist/commonjs/util/connectionStringUtils.d.ts.map +1 -0
  295. package/dist/commonjs/util/connectionStringUtils.js +51 -0
  296. package/dist/commonjs/util/connectionStringUtils.js.map +1 -0
  297. package/dist/commonjs/util/constants.d.ts +23 -0
  298. package/dist/commonjs/util/constants.d.ts.map +1 -0
  299. package/dist/commonjs/util/constants.js +28 -0
  300. package/dist/commonjs/util/constants.js.map +1 -0
  301. package/dist/commonjs/util/delayWithoutThrow.d.ts +8 -0
  302. package/dist/commonjs/util/delayWithoutThrow.d.ts.map +1 -0
  303. package/dist/commonjs/util/delayWithoutThrow.js +20 -0
  304. package/dist/commonjs/util/delayWithoutThrow.js.map +1 -0
  305. package/dist/commonjs/util/error.d.ts +39 -0
  306. package/dist/commonjs/util/error.d.ts.map +1 -0
  307. package/dist/commonjs/util/error.js +110 -0
  308. package/dist/commonjs/util/error.js.map +1 -0
  309. package/dist/commonjs/util/getPromiseParts.d.ts +10 -0
  310. package/dist/commonjs/util/getPromiseParts.d.ts.map +1 -0
  311. package/dist/commonjs/util/getPromiseParts.js +23 -0
  312. package/dist/commonjs/util/getPromiseParts.js.map +1 -0
  313. package/dist/commonjs/util/operationOptions.d.ts +16 -0
  314. package/dist/commonjs/util/operationOptions.d.ts.map +1 -0
  315. package/dist/commonjs/util/operationOptions.js +5 -0
  316. package/dist/commonjs/util/operationOptions.js.map +1 -0
  317. package/dist/commonjs/util/parseEndpoint.d.ts +11 -0
  318. package/dist/commonjs/util/parseEndpoint.d.ts.map +1 -0
  319. package/dist/commonjs/util/parseEndpoint.js +20 -0
  320. package/dist/commonjs/util/parseEndpoint.js.map +1 -0
  321. package/dist/commonjs/util/retries.d.ts +6 -0
  322. package/dist/commonjs/util/retries.d.ts.map +1 -0
  323. package/dist/commonjs/util/retries.js +16 -0
  324. package/dist/commonjs/util/retries.js.map +1 -0
  325. package/dist/commonjs/util/runtimeInfo.d.ts +6 -0
  326. package/dist/commonjs/util/runtimeInfo.d.ts.map +1 -0
  327. package/dist/commonjs/util/runtimeInfo.js +15 -0
  328. package/dist/commonjs/util/runtimeInfo.js.map +1 -0
  329. package/dist/commonjs/util/timerLoop.d.ts +26 -0
  330. package/dist/commonjs/util/timerLoop.d.ts.map +1 -0
  331. package/dist/commonjs/util/timerLoop.js +30 -0
  332. package/dist/commonjs/util/timerLoop.js.map +1 -0
  333. package/dist/commonjs/util/typeGuards.d.ts +8 -0
  334. package/dist/commonjs/util/typeGuards.d.ts.map +1 -0
  335. package/dist/commonjs/util/typeGuards.js +15 -0
  336. package/dist/commonjs/util/typeGuards.js.map +1 -0
  337. package/dist/commonjs/util/utils.d.ts +7 -0
  338. package/dist/commonjs/util/utils.d.ts.map +1 -0
  339. package/dist/commonjs/util/utils.js +16 -0
  340. package/dist/commonjs/util/utils.js.map +1 -0
  341. package/dist/commonjs/withAuth.d.ts +25 -0
  342. package/dist/commonjs/withAuth.d.ts.map +1 -0
  343. package/dist/commonjs/withAuth.js +88 -0
  344. package/dist/commonjs/withAuth.js.map +1 -0
  345. package/dist/esm/batchingPartitionChannel.d.ts +94 -0
  346. package/dist/esm/batchingPartitionChannel.d.ts.map +1 -0
  347. package/dist/esm/batchingPartitionChannel.js +248 -0
  348. package/dist/esm/batchingPartitionChannel.js.map +1 -0
  349. package/dist/esm/connectionContext.d.ts +107 -0
  350. package/dist/esm/connectionContext.d.ts.map +1 -0
  351. package/dist/esm/connectionContext.js +320 -0
  352. package/dist/esm/connectionContext.js.map +1 -0
  353. package/dist/esm/dataTransformer.d.ts +53 -0
  354. package/dist/esm/dataTransformer.d.ts.map +1 -0
  355. package/dist/esm/dataTransformer.js +133 -0
  356. package/dist/esm/dataTransformer.js.map +1 -0
  357. package/dist/esm/diagnostics/instrumentEventData.d.ts +28 -0
  358. package/dist/esm/diagnostics/instrumentEventData.d.ts.map +1 -0
  359. package/dist/esm/diagnostics/instrumentEventData.js +68 -0
  360. package/dist/esm/diagnostics/instrumentEventData.js.map +1 -0
  361. package/dist/esm/diagnostics/tracing.d.ts +19 -0
  362. package/dist/esm/diagnostics/tracing.d.ts.map +1 -0
  363. package/dist/esm/diagnostics/tracing.js +40 -0
  364. package/dist/esm/diagnostics/tracing.js.map +1 -0
  365. package/dist/esm/eventData.d.ts +284 -0
  366. package/dist/esm/eventData.d.ts.map +1 -0
  367. package/dist/esm/eventData.js +211 -0
  368. package/dist/esm/eventData.js.map +1 -0
  369. package/dist/esm/eventDataAdapter.d.ts +69 -0
  370. package/dist/esm/eventDataAdapter.d.ts.map +1 -0
  371. package/dist/esm/eventDataAdapter.js +35 -0
  372. package/dist/esm/eventDataAdapter.js.map +1 -0
  373. package/dist/esm/eventDataBatch.d.ts +225 -0
  374. package/dist/esm/eventDataBatch.d.ts.map +1 -0
  375. package/dist/esm/eventDataBatch.js +246 -0
  376. package/dist/esm/eventDataBatch.js.map +1 -0
  377. package/dist/esm/eventHubBufferedProducerClient.d.ts +323 -0
  378. package/dist/esm/eventHubBufferedProducerClient.d.ts.map +1 -0
  379. package/dist/esm/eventHubBufferedProducerClient.js +283 -0
  380. package/dist/esm/eventHubBufferedProducerClient.js.map +1 -0
  381. package/dist/esm/eventHubConsumerClient.d.ts +277 -0
  382. package/dist/esm/eventHubConsumerClient.d.ts.map +1 -0
  383. package/dist/esm/eventHubConsumerClient.js +293 -0
  384. package/dist/esm/eventHubConsumerClient.js.map +1 -0
  385. package/dist/esm/eventHubConsumerClientModels.d.ts +218 -0
  386. package/dist/esm/eventHubConsumerClientModels.d.ts.map +1 -0
  387. package/dist/esm/eventHubConsumerClientModels.js +4 -0
  388. package/dist/esm/eventHubConsumerClientModels.js.map +1 -0
  389. package/dist/esm/eventHubProducerClient.d.ts +266 -0
  390. package/dist/esm/eventHubProducerClient.d.ts.map +1 -0
  391. package/dist/esm/eventHubProducerClient.js +313 -0
  392. package/dist/esm/eventHubProducerClient.js.map +1 -0
  393. package/dist/esm/eventHubSender.d.ts +227 -0
  394. package/dist/esm/eventHubSender.d.ts.map +1 -0
  395. package/dist/esm/eventHubSender.js +541 -0
  396. package/dist/esm/eventHubSender.js.map +1 -0
  397. package/dist/esm/eventPosition.d.ts +73 -0
  398. package/dist/esm/eventPosition.d.ts.map +1 -0
  399. package/dist/esm/eventPosition.js +121 -0
  400. package/dist/esm/eventPosition.js.map +1 -0
  401. package/dist/esm/eventProcessor.d.ts +232 -0
  402. package/dist/esm/eventProcessor.d.ts.map +1 -0
  403. package/dist/esm/eventProcessor.js +367 -0
  404. package/dist/esm/eventProcessor.js.map +1 -0
  405. package/dist/esm/eventhubConnectionConfig.d.ts +96 -0
  406. package/dist/esm/eventhubConnectionConfig.d.ts.map +1 -0
  407. package/dist/esm/eventhubConnectionConfig.js +98 -0
  408. package/dist/esm/eventhubConnectionConfig.js.map +1 -0
  409. package/dist/esm/impl/awaitableQueue.d.ts +25 -0
  410. package/dist/esm/impl/awaitableQueue.d.ts.map +1 -0
  411. package/dist/esm/impl/awaitableQueue.js +47 -0
  412. package/dist/esm/impl/awaitableQueue.js.map +1 -0
  413. package/dist/esm/impl/partitionAssigner.d.ts +29 -0
  414. package/dist/esm/impl/partitionAssigner.d.ts.map +1 -0
  415. package/dist/esm/impl/partitionAssigner.js +54 -0
  416. package/dist/esm/impl/partitionAssigner.js.map +1 -0
  417. package/dist/esm/impl/partitionGate.d.ts +27 -0
  418. package/dist/esm/impl/partitionGate.d.ts.map +1 -0
  419. package/dist/esm/impl/partitionGate.js +40 -0
  420. package/dist/esm/impl/partitionGate.js.map +1 -0
  421. package/dist/esm/impl/partitionKeyToIdMapper.d.ts +6 -0
  422. package/dist/esm/impl/partitionKeyToIdMapper.d.ts.map +1 -0
  423. package/dist/esm/impl/partitionKeyToIdMapper.js +111 -0
  424. package/dist/esm/impl/partitionKeyToIdMapper.js.map +1 -0
  425. package/dist/esm/inMemoryCheckpointStore.d.ts +44 -0
  426. package/dist/esm/inMemoryCheckpointStore.d.ts.map +1 -0
  427. package/dist/esm/inMemoryCheckpointStore.js +92 -0
  428. package/dist/esm/inMemoryCheckpointStore.js.map +1 -0
  429. package/dist/esm/index.d.ts +21 -0
  430. package/dist/esm/index.d.ts.map +1 -0
  431. package/dist/esm/index.js +12 -0
  432. package/dist/esm/index.js.map +1 -0
  433. package/dist/esm/loadBalancerStrategies/balancedStrategy.d.ts +30 -0
  434. package/dist/esm/loadBalancerStrategies/balancedStrategy.d.ts.map +1 -0
  435. package/dist/esm/loadBalancerStrategies/balancedStrategy.js +39 -0
  436. package/dist/esm/loadBalancerStrategies/balancedStrategy.js.map +1 -0
  437. package/dist/esm/loadBalancerStrategies/greedyStrategy.d.ts +24 -0
  438. package/dist/esm/loadBalancerStrategies/greedyStrategy.d.ts.map +1 -0
  439. package/dist/esm/loadBalancerStrategies/greedyStrategy.js +28 -0
  440. package/dist/esm/loadBalancerStrategies/greedyStrategy.js.map +1 -0
  441. package/dist/esm/loadBalancerStrategies/loadBalancingStrategy.d.ts +28 -0
  442. package/dist/esm/loadBalancerStrategies/loadBalancingStrategy.d.ts.map +1 -0
  443. package/dist/esm/loadBalancerStrategies/loadBalancingStrategy.js +245 -0
  444. package/dist/esm/loadBalancerStrategies/loadBalancingStrategy.js.map +1 -0
  445. package/dist/esm/loadBalancerStrategies/unbalancedStrategy.d.ts +20 -0
  446. package/dist/esm/loadBalancerStrategies/unbalancedStrategy.d.ts.map +1 -0
  447. package/dist/esm/loadBalancerStrategies/unbalancedStrategy.js +22 -0
  448. package/dist/esm/loadBalancerStrategies/unbalancedStrategy.js.map +1 -0
  449. package/dist/esm/logger.d.ts +37 -0
  450. package/dist/esm/logger.d.ts.map +1 -0
  451. package/dist/esm/logger.js +56 -0
  452. package/dist/esm/logger.js.map +1 -0
  453. package/dist/esm/managementClient.d.ts +145 -0
  454. package/dist/esm/managementClient.d.ts.map +1 -0
  455. package/dist/esm/managementClient.js +271 -0
  456. package/dist/esm/managementClient.js.map +1 -0
  457. package/dist/esm/models/private.d.ts +185 -0
  458. package/dist/esm/models/private.d.ts.map +1 -0
  459. package/dist/esm/models/private.js +4 -0
  460. package/dist/esm/models/private.js.map +1 -0
  461. package/dist/esm/models/public.d.ts +240 -0
  462. package/dist/esm/models/public.d.ts.map +1 -0
  463. package/dist/esm/models/public.js +18 -0
  464. package/dist/esm/models/public.js.map +1 -0
  465. package/dist/esm/package.json +3 -0
  466. package/dist/esm/partitionProcessor.d.ts +134 -0
  467. package/dist/esm/partitionProcessor.d.ts.map +1 -0
  468. package/dist/esm/partitionProcessor.js +134 -0
  469. package/dist/esm/partitionProcessor.js.map +1 -0
  470. package/dist/esm/partitionPump.d.ts +38 -0
  471. package/dist/esm/partitionPump.d.ts.map +1 -0
  472. package/dist/esm/partitionPump.js +166 -0
  473. package/dist/esm/partitionPump.js.map +1 -0
  474. package/dist/esm/partitionReceiver.d.ts +82 -0
  475. package/dist/esm/partitionReceiver.d.ts.map +1 -0
  476. package/dist/esm/partitionReceiver.js +330 -0
  477. package/dist/esm/partitionReceiver.js.map +1 -0
  478. package/dist/esm/pumpManager.d.ts +72 -0
  479. package/dist/esm/pumpManager.d.ts.map +1 -0
  480. package/dist/esm/pumpManager.js +118 -0
  481. package/dist/esm/pumpManager.js.map +1 -0
  482. package/dist/esm/util/connectionStringUtils.d.ts +52 -0
  483. package/dist/esm/util/connectionStringUtils.d.ts.map +1 -0
  484. package/dist/esm/util/connectionStringUtils.js +48 -0
  485. package/dist/esm/util/connectionStringUtils.js.map +1 -0
  486. package/dist/esm/util/constants.d.ts +23 -0
  487. package/dist/esm/util/constants.d.ts.map +1 -0
  488. package/dist/esm/util/constants.js +25 -0
  489. package/dist/esm/util/constants.js.map +1 -0
  490. package/dist/esm/util/delayWithoutThrow.d.ts +8 -0
  491. package/dist/esm/util/delayWithoutThrow.d.ts.map +1 -0
  492. package/dist/esm/util/delayWithoutThrow.js +17 -0
  493. package/dist/esm/util/delayWithoutThrow.js.map +1 -0
  494. package/dist/esm/util/error.d.ts +39 -0
  495. package/dist/esm/util/error.d.ts.map +1 -0
  496. package/dist/esm/util/error.js +103 -0
  497. package/dist/esm/util/error.js.map +1 -0
  498. package/dist/esm/util/getPromiseParts.d.ts +10 -0
  499. package/dist/esm/util/getPromiseParts.d.ts.map +1 -0
  500. package/dist/esm/util/getPromiseParts.js +20 -0
  501. package/dist/esm/util/getPromiseParts.js.map +1 -0
  502. package/dist/esm/util/operationOptions.d.ts +16 -0
  503. package/dist/esm/util/operationOptions.d.ts.map +1 -0
  504. package/dist/esm/util/operationOptions.js +4 -0
  505. package/dist/esm/util/operationOptions.js.map +1 -0
  506. package/dist/esm/util/parseEndpoint.d.ts +11 -0
  507. package/dist/esm/util/parseEndpoint.d.ts.map +1 -0
  508. package/dist/esm/util/parseEndpoint.js +17 -0
  509. package/dist/esm/util/parseEndpoint.js.map +1 -0
  510. package/dist/esm/util/retries.d.ts +6 -0
  511. package/dist/esm/util/retries.d.ts.map +1 -0
  512. package/dist/esm/util/retries.js +13 -0
  513. package/dist/esm/util/retries.js.map +1 -0
  514. package/dist/esm/util/runtimeInfo.d.ts +6 -0
  515. package/dist/esm/util/runtimeInfo.d.ts.map +1 -0
  516. package/dist/esm/util/timerLoop.d.ts +26 -0
  517. package/dist/esm/util/timerLoop.d.ts.map +1 -0
  518. package/dist/esm/util/timerLoop.js +27 -0
  519. package/dist/esm/util/timerLoop.js.map +1 -0
  520. package/dist/esm/util/typeGuards.d.ts +8 -0
  521. package/dist/esm/util/typeGuards.d.ts.map +1 -0
  522. package/dist/esm/util/typeGuards.js +12 -0
  523. package/dist/esm/util/typeGuards.js.map +1 -0
  524. package/dist/esm/util/utils.d.ts +7 -0
  525. package/dist/esm/util/utils.d.ts.map +1 -0
  526. package/dist/esm/util/utils.js +13 -0
  527. package/dist/esm/util/utils.js.map +1 -0
  528. package/dist/esm/withAuth.d.ts +25 -0
  529. package/dist/esm/withAuth.d.ts.map +1 -0
  530. package/dist/esm/withAuth.js +84 -0
  531. package/dist/esm/withAuth.js.map +1 -0
  532. package/package.json +77 -63
  533. package/dist/index.js +0 -5372
  534. package/dist/index.js.map +0 -1
  535. package/dist-esm/src/batchingPartitionChannel.js.map +0 -1
  536. package/dist-esm/src/connectionContext.js.map +0 -1
  537. package/dist-esm/src/dataTransformer.js.map +0 -1
  538. package/dist-esm/src/diagnostics/instrumentEventData.js.map +0 -1
  539. package/dist-esm/src/diagnostics/tracing.js.map +0 -1
  540. package/dist-esm/src/eventData.js.map +0 -1
  541. package/dist-esm/src/eventDataAdapter.js.map +0 -1
  542. package/dist-esm/src/eventDataBatch.js.map +0 -1
  543. package/dist-esm/src/eventHubBufferedProducerClient.js.map +0 -1
  544. package/dist-esm/src/eventHubConsumerClient.js.map +0 -1
  545. package/dist-esm/src/eventHubConsumerClientModels.js.map +0 -1
  546. package/dist-esm/src/eventHubProducerClient.js.map +0 -1
  547. package/dist-esm/src/eventHubSender.js.map +0 -1
  548. package/dist-esm/src/eventProcessor.js.map +0 -1
  549. package/dist-esm/src/eventhubConnectionConfig.js.map +0 -1
  550. package/dist-esm/src/impl/partitionAssigner.js.map +0 -1
  551. package/dist-esm/src/inMemoryCheckpointStore.js.map +0 -1
  552. package/dist-esm/src/index.js.map +0 -1
  553. package/dist-esm/src/loadBalancerStrategies/balancedStrategy.js.map +0 -1
  554. package/dist-esm/src/loadBalancerStrategies/greedyStrategy.js.map +0 -1
  555. package/dist-esm/src/loadBalancerStrategies/loadBalancingStrategy.js.map +0 -1
  556. package/dist-esm/src/loadBalancerStrategies/unbalancedStrategy.js.map +0 -1
  557. package/dist-esm/src/managementClient.js.map +0 -1
  558. package/dist-esm/src/models/private.js.map +0 -1
  559. package/dist-esm/src/models/public.js.map +0 -1
  560. package/dist-esm/src/partitionProcessor.js.map +0 -1
  561. package/dist-esm/src/partitionPump.js.map +0 -1
  562. package/dist-esm/src/partitionReceiver.js.map +0 -1
  563. package/dist-esm/src/pumpManager.js.map +0 -1
  564. package/dist-esm/src/util/error.js.map +0 -1
  565. package/dist-esm/src/util/runtimeInfo.browser.js.map +0 -1
  566. package/dist-esm/src/withAuth.js.map +0 -1
  567. /package/{dist-esm/src → dist/browser}/eventDataAdapter.js +0 -0
  568. /package/{dist-esm/src → dist/browser}/eventHubConsumerClientModels.js +0 -0
  569. /package/{dist-esm/src → dist/browser}/eventPosition.js +0 -0
  570. /package/{dist-esm/src → dist/browser}/eventPosition.js.map +0 -0
  571. /package/{dist-esm/src → dist/browser}/impl/awaitableQueue.js +0 -0
  572. /package/{dist-esm/src → dist/browser}/impl/awaitableQueue.js.map +0 -0
  573. /package/{dist-esm/src → dist/browser}/impl/partitionGate.js +0 -0
  574. /package/{dist-esm/src → dist/browser}/impl/partitionGate.js.map +0 -0
  575. /package/{dist-esm/src → dist/browser}/impl/partitionKeyToIdMapper.js +0 -0
  576. /package/{dist-esm/src → dist/browser}/impl/partitionKeyToIdMapper.js.map +0 -0
  577. /package/{dist-esm/src → dist/browser}/loadBalancerStrategies/unbalancedStrategy.js +0 -0
  578. /package/{dist-esm/src → dist/browser}/logger.js +0 -0
  579. /package/{dist-esm/src → dist/browser}/logger.js.map +0 -0
  580. /package/{dist-esm/src → dist/browser}/models/public.js +0 -0
  581. /package/{dist-esm/src → dist/browser}/util/connectionStringUtils.js +0 -0
  582. /package/{dist-esm/src → dist/browser}/util/connectionStringUtils.js.map +0 -0
  583. /package/{dist-esm/src → dist/browser}/util/constants.js +0 -0
  584. /package/{dist-esm/src → dist/browser}/util/constants.js.map +0 -0
  585. /package/{dist-esm/src → dist/browser}/util/delayWithoutThrow.js +0 -0
  586. /package/{dist-esm/src → dist/browser}/util/delayWithoutThrow.js.map +0 -0
  587. /package/{dist-esm/src → dist/browser}/util/getPromiseParts.js +0 -0
  588. /package/{dist-esm/src → dist/browser}/util/getPromiseParts.js.map +0 -0
  589. /package/{dist-esm/src → dist/browser}/util/operationOptions.js +0 -0
  590. /package/{dist-esm/src → dist/browser}/util/operationOptions.js.map +0 -0
  591. /package/{dist-esm/src → dist/browser}/util/parseEndpoint.js +0 -0
  592. /package/{dist-esm/src → dist/browser}/util/parseEndpoint.js.map +0 -0
  593. /package/{dist-esm/src → dist/browser}/util/retries.js +0 -0
  594. /package/{dist-esm/src → dist/browser}/util/retries.js.map +0 -0
  595. /package/{dist-esm/src → dist/browser}/util/timerLoop.js +0 -0
  596. /package/{dist-esm/src → dist/browser}/util/timerLoop.js.map +0 -0
  597. /package/{dist-esm/src → dist/browser}/util/typeGuards.js +0 -0
  598. /package/{dist-esm/src → dist/browser}/util/typeGuards.js.map +0 -0
  599. /package/{dist-esm/src → dist/browser}/util/utils.js +0 -0
  600. /package/{dist-esm/src → dist/browser}/util/utils.js.map +0 -0
  601. /package/{types/latest → dist/commonjs}/tsdoc-metadata.json +0 -0
  602. /package/{dist-esm/src → dist/esm}/util/runtimeInfo.js +0 -0
  603. /package/{dist-esm/src → dist/esm}/util/runtimeInfo.js.map +0 -0
  604. /package/{types/latest → dist}/event-hubs.d.ts +0 -0
@@ -0,0 +1,96 @@
1
+ import { ConnectionConfig } from "@azure/core-amqp";
2
+ /**
3
+ * Describes the connection config object that is created after parsing an EventHub connection
4
+ * string. It also provides some convenience methods for getting the address and audience for
5
+ * different entities.
6
+ * @internal
7
+ */
8
+ export interface EventHubConnectionConfig extends ConnectionConfig {
9
+ /**
10
+ * The name/path of the entity (event hub name) to which the
11
+ * connection needs to happen.
12
+ */
13
+ entityPath: string;
14
+ /**
15
+ * Provides the EventHub Sender address in one of the following forms based on the input:
16
+ * - `"<hubName>"`
17
+ * - `"<hubName>/Partitions/<partitionId>"`
18
+ *
19
+ * @param partitionId - The partitionId in the EventHub to which messages will be sent.
20
+ */
21
+ getSenderAddress(partitionId?: string | number): string;
22
+ /**
23
+ * Provides the EventHub Sender audience in one of the following forms based on the input:
24
+ * - `"sb://<yournamespace>.servicebus.windows.net/<hubName>"`
25
+ * - `"sb://<yournamespace>.servicebus.windows.net/<hubName>/Partitions/<partitionId>"`
26
+ *
27
+ * @param partitionId - The partitionId in the EventHub to which messages will be sent.
28
+ */
29
+ getSenderAudience(partitionId?: string | number): string;
30
+ /**
31
+ * Provides the EventHub Receiver address:
32
+ * - `"<hub-name>/ConsumerGroups/<consumer-group-name>/Partitions/<partition-id>"`
33
+ *
34
+ * @param partitionId - The partitionId in the EventHub from which messages will be received.
35
+ * @param consumergroup - The consumergroup in the EventHub from which the messages will
36
+ * be received. Default: `$default`.
37
+ */
38
+ getReceiverAddress(partitionId: string | number, consumergroup?: string): string;
39
+ /**
40
+ * Provides the EventHub Receiver audience.
41
+ * - `"sb://<your-namespace>.servicebus.windows.net/<hub-name>/ConsumerGroups/<consumer-group-name>/Partitions/<partition-id>"`
42
+ *
43
+ * @param partitionId - The partitionId in the EventHub from which messages will be received.
44
+ * @param consumergroup - The consumergroup in the EventHub from which the messages will
45
+ * be received. Default: `$default`.
46
+ */
47
+ getReceiverAudience(partitionId: string | number, consumergroup?: string): string;
48
+ /**
49
+ * Provides the EventHub Management address.
50
+ * - `"<hub-name>/$management"`
51
+ */
52
+ getManagementAddress(): string;
53
+ /**
54
+ * Provides the EventHub Management audience.
55
+ * - `"sb://<your-namespace>.servicebus.windows.net/<hub-name>/$management"`
56
+ */
57
+ getManagementAudience(): string;
58
+ }
59
+ /**
60
+ * Describes the connection config object that is created after parsing an EventHub connection
61
+ * string. It also provides some convenience methods for getting the address and audience for
62
+ * different entities.
63
+ * @internal
64
+ */
65
+ export declare const EventHubConnectionConfig: {
66
+ /**
67
+ * Creates the connection config.
68
+ * @param connectionString - The connection string for a given service like
69
+ * EventHub/ServiceBus.
70
+ * @param path - The name/path of the entity (hub name) to which the
71
+ * connection needs to happen. This will override the EntityPath in the connectionString
72
+ * if present.
73
+ * @returns EventHubConnectionConfig
74
+ */
75
+ create(connectionString: string, path?: string): EventHubConnectionConfig;
76
+ /**
77
+ * Creates an EventHubConnectionConfig from the provided base ConnectionConfig.
78
+ * @param config - The base connection config from which the EventHubConnectionConfig needs to be
79
+ * created.
80
+ * @returns EventHubConnectionConfig
81
+ */
82
+ createFromConnectionConfig(config: ConnectionConfig): EventHubConnectionConfig;
83
+ /**
84
+ * Updates the provided EventHubConnectionConfig to use the custom endpoint address.
85
+ * @param config - An existing connection configuration to be updated.
86
+ * @param customEndpointAddress - The custom endpoint address to use.
87
+ */
88
+ setCustomEndpointAddress(config: EventHubConnectionConfig, customEndpointAddress: string): void;
89
+ /**
90
+ * Validates the properties of connection config.
91
+ * @param config - The connection config to be validated.
92
+ * @returns void
93
+ */
94
+ validate(config: EventHubConnectionConfig): void;
95
+ };
96
+ //# sourceMappingURL=eventhubConnectionConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventhubConnectionConfig.d.ts","sourceRoot":"","sources":["../../src/eventhubConnectionConfig.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD;;;;;GAKG;AACH,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACxD;;;;;;OAMG;IACH,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACzD;;;;;;;OAOG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjF;;;;;;;OAOG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClF;;;OAGG;IACH,oBAAoB,IAAI,MAAM,CAAC;IAC/B;;;OAGG;IACH,qBAAqB,IAAI,MAAM,CAAC;CACjC;AAED;;;;;GAKG;AAEH,eAAO,MAAM,wBAAwB;IACnC;;;;;;;;OAQG;6BACsB,MAAM,SAAS,MAAM,GAAG,wBAAwB;IAWzE;;;;;OAKG;uCACgC,gBAAgB,GAAG,wBAAwB;IA+C9E;;;;OAIG;qCAC8B,wBAAwB,yBAAyB,MAAM,GAAG,IAAI;IAW/F;;;;OAIG;qBACc,wBAAwB,GAAG,IAAI;CAGjD,CAAC"}
@@ -2,7 +2,7 @@
2
2
  // Licensed under the MIT license.
3
3
  /* eslint-disable eqeqeq */
4
4
  import { ConnectionConfig } from "@azure/core-amqp";
5
- import { parseEndpoint } from "./util/parseEndpoint";
5
+ import { parseEndpoint } from "./util/parseEndpoint.js";
6
6
  /**
7
7
  * Describes the connection config object that is created after parsing an EventHub connection
8
8
  * string. It also provides some convenience methods for getting the address and audience for
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventhubConnectionConfig.js","sourceRoot":"","sources":["../../src/eventhubConnectionConfig.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/* eslint-disable eqeqeq */\n\nimport { ConnectionConfig } from \"@azure/core-amqp\";\nimport { parseEndpoint } from \"./util/parseEndpoint.js\";\n\n/**\n * Describes the connection config object that is created after parsing an EventHub connection\n * string. It also provides some convenience methods for getting the address and audience for\n * different entities.\n * @internal\n */\nexport interface EventHubConnectionConfig extends ConnectionConfig {\n /**\n * The name/path of the entity (event hub name) to which the\n * connection needs to happen.\n */\n entityPath: string;\n /**\n * Provides the EventHub Sender address in one of the following forms based on the input:\n * - `\"<hubName>\"`\n * - `\"<hubName>/Partitions/<partitionId>\"`\n *\n * @param partitionId - The partitionId in the EventHub to which messages will be sent.\n */\n getSenderAddress(partitionId?: string | number): string;\n /**\n * Provides the EventHub Sender audience in one of the following forms based on the input:\n * - `\"sb://<yournamespace>.servicebus.windows.net/<hubName>\"`\n * - `\"sb://<yournamespace>.servicebus.windows.net/<hubName>/Partitions/<partitionId>\"`\n *\n * @param partitionId - The partitionId in the EventHub to which messages will be sent.\n */\n getSenderAudience(partitionId?: string | number): string;\n /**\n * Provides the EventHub Receiver address:\n * - `\"<hub-name>/ConsumerGroups/<consumer-group-name>/Partitions/<partition-id>\"`\n *\n * @param partitionId - The partitionId in the EventHub from which messages will be received.\n * @param consumergroup - The consumergroup in the EventHub from which the messages will\n * be received. Default: `$default`.\n */\n getReceiverAddress(partitionId: string | number, consumergroup?: string): string;\n /**\n * Provides the EventHub Receiver audience.\n * - `\"sb://<your-namespace>.servicebus.windows.net/<hub-name>/ConsumerGroups/<consumer-group-name>/Partitions/<partition-id>\"`\n *\n * @param partitionId - The partitionId in the EventHub from which messages will be received.\n * @param consumergroup - The consumergroup in the EventHub from which the messages will\n * be received. Default: `$default`.\n */\n getReceiverAudience(partitionId: string | number, consumergroup?: string): string;\n /**\n * Provides the EventHub Management address.\n * - `\"<hub-name>/$management\"`\n */\n getManagementAddress(): string;\n /**\n * Provides the EventHub Management audience.\n * - `\"sb://<your-namespace>.servicebus.windows.net/<hub-name>/$management\"`\n */\n getManagementAudience(): string;\n}\n\n/**\n * Describes the connection config object that is created after parsing an EventHub connection\n * string. It also provides some convenience methods for getting the address and audience for\n * different entities.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- renaming constant would be a breaking change.\nexport const EventHubConnectionConfig = {\n /**\n * Creates the connection config.\n * @param connectionString - The connection string for a given service like\n * EventHub/ServiceBus.\n * @param path - The name/path of the entity (hub name) to which the\n * connection needs to happen. This will override the EntityPath in the connectionString\n * if present.\n * @returns EventHubConnectionConfig\n */\n create(connectionString: string, path?: string): EventHubConnectionConfig {\n const config = ConnectionConfig.create(connectionString, path);\n if (!config.entityPath) {\n throw new TypeError(\n `Either provide \"path\" or the \"connectionString\": \"${connectionString}\", ` +\n `must contain EntityPath=\"<path-to-the-entity>\".`,\n );\n }\n return EventHubConnectionConfig.createFromConnectionConfig(config);\n },\n\n /**\n * Creates an EventHubConnectionConfig from the provided base ConnectionConfig.\n * @param config - The base connection config from which the EventHubConnectionConfig needs to be\n * created.\n * @returns EventHubConnectionConfig\n */\n createFromConnectionConfig(config: ConnectionConfig): EventHubConnectionConfig {\n ConnectionConfig.validate(config, { isEntityPathRequired: true });\n\n (config as EventHubConnectionConfig).getManagementAudience = () => {\n return `${config.endpoint}${config.entityPath}/$management`;\n };\n (config as EventHubConnectionConfig).getManagementAddress = () => {\n return `${config.entityPath}/$management`;\n };\n\n (config as EventHubConnectionConfig).getSenderAudience = (partitionId?: string | number) => {\n if (partitionId != undefined) {\n return `${config.endpoint}${config.entityPath}/Partitions/${partitionId}`;\n } else {\n return `${config.endpoint}${config.entityPath}`;\n }\n };\n\n (config as EventHubConnectionConfig).getSenderAddress = (partitionId?: string | number) => {\n if (partitionId != undefined) {\n return `${config.entityPath}/Partitions/${partitionId}`;\n } else {\n return `${config.entityPath}`;\n }\n };\n\n (config as EventHubConnectionConfig).getReceiverAudience = (\n partitionId: string | number,\n consumergroup?: string,\n ) => {\n if (!consumergroup) consumergroup = \"$default\";\n return (\n `${config.endpoint}${config.entityPath}/ConsumerGroups/${consumergroup}/` +\n `Partitions/${partitionId}`\n );\n };\n\n (config as EventHubConnectionConfig).getReceiverAddress = (\n partitionId: string | number,\n consumergroup?: string,\n ) => {\n if (!consumergroup) consumergroup = \"$default\";\n return `${config.entityPath}/ConsumerGroups/${consumergroup}/Partitions/${partitionId}`;\n };\n return config as EventHubConnectionConfig;\n },\n\n /**\n * Updates the provided EventHubConnectionConfig to use the custom endpoint address.\n * @param config - An existing connection configuration to be updated.\n * @param customEndpointAddress - The custom endpoint address to use.\n */\n setCustomEndpointAddress(config: EventHubConnectionConfig, customEndpointAddress: string): void {\n // The amqpHostname should match the host prior to using the custom endpoint.\n config.amqpHostname = config.host;\n const { hostname, port } = parseEndpoint(customEndpointAddress);\n // Since we specify the port separately, set host to the customEndpointAddress hostname.\n config.host = hostname;\n if (port) {\n config.port = parseInt(port, 10);\n }\n },\n\n /**\n * Validates the properties of connection config.\n * @param config - The connection config to be validated.\n * @returns void\n */\n validate(config: EventHubConnectionConfig): void {\n return ConnectionConfig.validate(config, { isEntityPathRequired: true });\n },\n};\n"]}
@@ -0,0 +1,25 @@
1
+ import { AbortOptions } from "@azure/core-util";
2
+ /**
3
+ * `AwaitableQueue` stores items in the order that they are received.
4
+ *
5
+ * This differs from ordinary Queues in that `shift` returns a Promise for a value.
6
+ * This allows a consumer of the queue to request an item that the queue does not yet have.
7
+ *
8
+ * @internal
9
+ */
10
+ export declare class AwaitableQueue<T> {
11
+ private readonly _items;
12
+ private readonly _resolvers;
13
+ constructor();
14
+ size(): number;
15
+ /**
16
+ * Returns a Promise that will resolve with the next item in the queue.
17
+ */
18
+ shift(options?: AbortOptions): Promise<T>;
19
+ /**
20
+ * Appends new item to the queue.
21
+ */
22
+ push(item: T): void;
23
+ private _resolveNextItem;
24
+ }
25
+ //# sourceMappingURL=awaitableQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awaitableQueue.d.ts","sourceRoot":"","sources":["../../../src/impl/awaitableQueue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAA0B,MAAM,kBAAkB,CAAC;AAExE;;;;;;;GAOG;AACH,qBAAa,cAAc,CAAC,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAM;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;;IAMrD,IAAI,IAAI,MAAM;IAIrB;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC;IAYhD;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAM1B,OAAO,CAAC,gBAAgB;CASzB"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @internal
3
+ * Assigns a partition based on the partition ids it knows about and an optional partition id or partition key.
4
+ */
5
+ export declare class PartitionAssigner {
6
+ private _partitions;
7
+ private _lastRoundRobinPartitionIndex;
8
+ /**
9
+ * Set the partition ids that can be used when assigning a partition.
10
+ * @param partitionIds - All valid partition ids.
11
+ */
12
+ setPartitionIds(partitionIds: string[]): void;
13
+ /**
14
+ * Returns a partitionId from the list of partition ids set via `setPartitionIds`.
15
+ *
16
+ * If a partitionId is specified, then that will be returned directly.
17
+ * If a partitionKey is specified, then a partitionId will be calculated based on the partitionKey.
18
+ * Specifying both partitionId and partitionKey results in an error.
19
+ *
20
+ * If neither partitionId nor partitionKey are specified, then a partitionId will be selected
21
+ * based on a round-robin approach.
22
+ */
23
+ assignPartition({ partitionId, partitionKey, }: {
24
+ partitionId?: string;
25
+ partitionKey?: string;
26
+ }): string;
27
+ private _assignRoundRobinPartition;
28
+ }
29
+ //# sourceMappingURL=partitionAssigner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitionAssigner.d.ts","sourceRoot":"","sources":["../../../src/impl/partitionAssigner.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAgB;IAEnC,OAAO,CAAC,6BAA6B,CAAc;IAEnD;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI;IAIpD;;;;;;;;;OASG;IACH,eAAe,CAAC,EACd,WAAW,EACX,YAAY,GACb,EAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,MAAM;IAsBV,OAAO,CAAC,0BAA0B;CAUnC"}
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
  import { isDefined } from "@azure/core-util";
4
- import { mapPartitionKeyToId } from "./partitionKeyToIdMapper";
4
+ import { mapPartitionKeyToId } from "./partitionKeyToIdMapper.js";
5
5
  /**
6
6
  * @internal
7
7
  * Assigns a partition based on the partition ids it knows about and an optional partition id or partition key.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitionAssigner.js","sourceRoot":"","sources":["../../../src/impl/partitionAssigner.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QACU,gBAAW,GAAa,EAAE,CAAC;QAE3B,kCAA6B,GAAW,CAAC,CAAC,CAAC;IA0DrD,CAAC;IAxDC;;;OAGG;IACI,eAAe,CAAC,YAAsB;QAC3C,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;IAClC,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,EACd,WAAW,EACX,YAAY,GAIb;QACC,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,oBAAoB,WAAW,uBAAuB,YAAY,6BAA6B,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACrE,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,OAAO,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/E,CAAC;QAED,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAC3C,CAAC;IAEO,0BAA0B;QAChC,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QACtD,MAAM,sBAAsB,GAAG,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC;QAEtE,MAAM,kBAAkB,GACtB,sBAAsB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAE1E,IAAI,CAAC,6BAA6B,GAAG,kBAAkB,CAAC;QACxD,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { isDefined } from \"@azure/core-util\";\nimport { mapPartitionKeyToId } from \"./partitionKeyToIdMapper.js\";\n\n/**\n * @internal\n * Assigns a partition based on the partition ids it knows about and an optional partition id or partition key.\n */\nexport class PartitionAssigner {\n private _partitions: string[] = [];\n\n private _lastRoundRobinPartitionIndex: number = -1;\n\n /**\n * Set the partition ids that can be used when assigning a partition.\n * @param partitionIds - All valid partition ids.\n */\n public setPartitionIds(partitionIds: string[]): void {\n this._partitions = partitionIds;\n }\n\n /**\n * Returns a partitionId from the list of partition ids set via `setPartitionIds`.\n *\n * If a partitionId is specified, then that will be returned directly.\n * If a partitionKey is specified, then a partitionId will be calculated based on the partitionKey.\n * Specifying both partitionId and partitionKey results in an error.\n *\n * If neither partitionId nor partitionKey are specified, then a partitionId will be selected\n * based on a round-robin approach.\n */\n assignPartition({\n partitionId,\n partitionKey,\n }: {\n partitionId?: string;\n partitionKey?: string;\n }): string {\n if (isDefined(partitionId) && isDefined(partitionKey)) {\n throw new Error(\n `The partitionId (${partitionId}) and partitionKey (${partitionKey}) cannot both be specified.`,\n );\n }\n\n if (!this._partitions.length) {\n throw new Error(`Unable to determine partitionIds, can't assign partitionId.`);\n }\n\n if (isDefined(partitionId) && this._partitions.includes(partitionId)) {\n return partitionId;\n }\n\n if (isDefined(partitionKey)) {\n return mapPartitionKeyToId(partitionKey, this._partitions.length).toString();\n }\n\n return this._assignRoundRobinPartition();\n }\n\n private _assignRoundRobinPartition(): string {\n const maxPartitionIndex = this._partitions.length - 1;\n const proposedPartitionIndex = this._lastRoundRobinPartitionIndex + 1;\n\n const nextPartitionIndex =\n proposedPartitionIndex > maxPartitionIndex ? 0 : proposedPartitionIndex;\n\n this._lastRoundRobinPartitionIndex = nextPartitionIndex;\n return this._partitions[nextPartitionIndex];\n }\n}\n"]}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Used by EventHubConsumerClient to prevent accidentally spinning up multiple
3
+ * subscriptions against the same set of partitions.
4
+ *
5
+ * This is needed now that EventHubConsumerClient only uses a single CheckpointStore
6
+ * instance - otherwise users will see unpredictable results as their event processor
7
+ * continually steals/overwrites checkpointing and ownership with itself.
8
+ *
9
+ * @internal
10
+ */
11
+ export declare class PartitionGate {
12
+ private _partitions;
13
+ /**
14
+ * Adds a partition, throwing an Error if there is a conflict with partitions (including "all")
15
+ * that are already added.
16
+ *
17
+ * @param partitionId - A partition ID or the constant "all"
18
+ */
19
+ add(partitionId: string | "all"): void;
20
+ /**
21
+ * Removes a partition
22
+ *
23
+ * @param partitionId - A partition ID or the constant "all"
24
+ */
25
+ remove(partitionId: string | "all"): void;
26
+ }
27
+ //# sourceMappingURL=partitionGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitionGate.d.ts","sourceRoot":"","sources":["../../../src/impl/partitionGate.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAqB;IAExC;;;;;OAKG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAYtC;;;;OAIG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;CAG1C"}
@@ -0,0 +1,6 @@
1
+ export declare function mapPartitionKeyToId(partitionKey: string, partitionCount: number): number;
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare function hashPartitionKey(partitionKey: string): number;
6
+ //# sourceMappingURL=partitionKeyToIdMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partitionKeyToIdMapper.d.ts","sourceRoot":"","sources":["../../../src/impl/partitionKeyToIdMapper.ts"],"names":[],"mappings":"AAKA,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAGxF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG7D"}
@@ -0,0 +1,44 @@
1
+ import { CheckpointStore, PartitionOwnership } from "./eventProcessor.js";
2
+ import { Checkpoint } from "./partitionProcessor.js";
3
+ /**
4
+ * The `EventProcessor` relies on a `CheckpointStore` to store checkpoints and handle partition
5
+ * ownerships. `InMemoryCheckpointStore` is simple partition manager that stores checkpoints and
6
+ * partition ownerships in memory of your program.
7
+ *
8
+ * You can use the `InMemoryCheckpointStore` to get started with using the `EventProcessor`.
9
+ * But in production, you should choose an implementation of the `CheckpointStore` interface that will
10
+ * store the checkpoints and partition ownerships to a durable store instead.
11
+ *
12
+ * @internal
13
+ */
14
+ export declare class InMemoryCheckpointStore implements CheckpointStore {
15
+ private _partitionOwnershipMap;
16
+ private _committedCheckpoints;
17
+ /**
18
+ * Get the list of all existing partition ownership from the underlying data store. Could return empty
19
+ * results if there are is no existing ownership information.
20
+ *
21
+ * @param fullyQualifiedNamespace - The fully qualified Event Hubs namespace. This is likely to be similar to
22
+ * <yournamespace>.servicebus.windows.net.
23
+ * @param eventHubName - The event hub name.
24
+ * @param consumerGroup - The consumer group name.
25
+ * @returns Partition ownership details of all the partitions that have/had an owner..
26
+ */
27
+ listOwnership(_fullyQualifiedNamespace: string, _eventHubName: string, _consumerGroup: string): Promise<PartitionOwnership[]>;
28
+ /**
29
+ * Claim ownership of a list of partitions. This will return the list of partitions that were owned
30
+ * successfully.
31
+ *
32
+ * @param partitionOwnership - The list of partition ownership this instance is claiming to own.
33
+ * @returns A list partitions this instance successfully claimed ownership.
34
+ */
35
+ claimOwnership(partitionOwnership: PartitionOwnership[]): Promise<PartitionOwnership[]>;
36
+ /**
37
+ * Updates the checkpoint in the data store for a partition.
38
+ *
39
+ * @param checkpoint - The checkpoint.
40
+ */
41
+ updateCheckpoint(checkpoint: Checkpoint): Promise<void>;
42
+ listCheckpoints(fullyQualifiedNamespace: string, eventHubName: string, consumerGroup: string): Promise<Checkpoint[]>;
43
+ }
44
+ //# sourceMappingURL=inMemoryCheckpointStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inMemoryCheckpointStore.d.ts","sourceRoot":"","sources":["../../src/inMemoryCheckpointStore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;;;;;;;;GAUG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,qBAAqB,CAAmD;IAEhF;;;;;;;;;OASG;IACG,aAAa,CACjB,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAUhC;;;;;;OAMG;IACG,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAuB7F;;;;OAIG;IACG,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvD,eAAe,CACnB,uBAAuB,EAAE,MAAM,EAC/B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,EAAE,CAAC;CAiBzB"}
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { throwTypeErrorIfParameterMissing } from "./util/error";
4
- import { getRandomName } from "./util/utils";
3
+ import { throwTypeErrorIfParameterMissing } from "./util/error.js";
4
+ import { getRandomName } from "./util/utils.js";
5
5
  /**
6
6
  * The `EventProcessor` relies on a `CheckpointStore` to store checkpoints and handle partition
7
7
  * ownerships. `InMemoryCheckpointStore` is simple partition manager that stores checkpoints and
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inMemoryCheckpointStore.js","sourceRoot":"","sources":["../../src/inMemoryCheckpointStore.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CheckpointStore, PartitionOwnership } from \"./eventProcessor.js\";\nimport { Checkpoint } from \"./partitionProcessor.js\";\nimport { throwTypeErrorIfParameterMissing } from \"./util/error.js\";\nimport { getRandomName } from \"./util/utils.js\";\n\n/**\n * The `EventProcessor` relies on a `CheckpointStore` to store checkpoints and handle partition\n * ownerships. `InMemoryCheckpointStore` is simple partition manager that stores checkpoints and\n * partition ownerships in memory of your program.\n *\n * You can use the `InMemoryCheckpointStore` to get started with using the `EventProcessor`.\n * But in production, you should choose an implementation of the `CheckpointStore` interface that will\n * store the checkpoints and partition ownerships to a durable store instead.\n *\n * @internal\n */\nexport class InMemoryCheckpointStore implements CheckpointStore {\n private _partitionOwnershipMap: Map<string, PartitionOwnership> = new Map();\n private _committedCheckpoints: Map<string, Map<string, Checkpoint>> = new Map();\n\n /**\n * Get the list of all existing partition ownership from the underlying data store. Could return empty\n * results if there are is no existing ownership information.\n *\n * @param fullyQualifiedNamespace - The fully qualified Event Hubs namespace. This is likely to be similar to\n * <yournamespace>.servicebus.windows.net.\n * @param eventHubName - The event hub name.\n * @param consumerGroup - The consumer group name.\n * @returns Partition ownership details of all the partitions that have/had an owner..\n */\n async listOwnership(\n _fullyQualifiedNamespace: string,\n _eventHubName: string,\n _consumerGroup: string,\n ): Promise<PartitionOwnership[]> {\n const ownerships = [];\n\n for (const value of this._partitionOwnershipMap.values()) {\n ownerships.push({ ...value });\n }\n\n return ownerships;\n }\n\n /**\n * Claim ownership of a list of partitions. This will return the list of partitions that were owned\n * successfully.\n *\n * @param partitionOwnership - The list of partition ownership this instance is claiming to own.\n * @returns A list partitions this instance successfully claimed ownership.\n */\n async claimOwnership(partitionOwnership: PartitionOwnership[]): Promise<PartitionOwnership[]> {\n const claimedOwnerships = [];\n\n for (const ownership of partitionOwnership) {\n if (\n !this._partitionOwnershipMap.has(ownership.partitionId) ||\n this._partitionOwnershipMap.get(ownership.partitionId)!.etag === ownership.etag\n ) {\n const date = new Date();\n\n const newOwnership = {\n ...ownership,\n etag: getRandomName(),\n lastModifiedTimeInMs: date.getTime(),\n };\n\n this._partitionOwnershipMap.set(newOwnership.partitionId, newOwnership);\n claimedOwnerships.push(newOwnership);\n }\n }\n return claimedOwnerships;\n }\n\n /**\n * Updates the checkpoint in the data store for a partition.\n *\n * @param checkpoint - The checkpoint.\n */\n async updateCheckpoint(checkpoint: Checkpoint): Promise<void> {\n throwTypeErrorIfParameterMissing(\n \"\",\n \"updateCheckpoint\",\n \"sequenceNumber\",\n checkpoint.sequenceNumber,\n );\n throwTypeErrorIfParameterMissing(\"\", \"updateCheckpoint\", \"offset\", checkpoint.offset);\n\n checkpoint = { ...checkpoint };\n\n const partitionOwnership = this._partitionOwnershipMap.get(checkpoint.partitionId);\n if (partitionOwnership) {\n partitionOwnership.etag = getRandomName();\n\n const key = `${checkpoint.fullyQualifiedNamespace}:${checkpoint.eventHubName}:${checkpoint.consumerGroup}`;\n let partitionMap = this._committedCheckpoints.get(key);\n\n if (partitionMap == null) {\n partitionMap = new Map();\n this._committedCheckpoints.set(key, partitionMap);\n }\n\n partitionMap.set(checkpoint.partitionId, checkpoint);\n }\n }\n\n async listCheckpoints(\n fullyQualifiedNamespace: string,\n eventHubName: string,\n consumerGroup: string,\n ): Promise<Checkpoint[]> {\n const key = `${fullyQualifiedNamespace}:${eventHubName}:${consumerGroup}`;\n\n const partitionMap = this._committedCheckpoints.get(key);\n\n if (partitionMap == null) {\n return [];\n }\n\n const checkpoints = [];\n\n for (const value of partitionMap.values()) {\n checkpoints.push({ ...value });\n }\n\n return checkpoints;\n }\n}\n"]}
@@ -0,0 +1,21 @@
1
+ export { EventData, ReceivedEventData } from "./eventData.js";
2
+ export { WebSocketImpl } from "rhea-promise";
3
+ export { LastEnqueuedEventProperties } from "./partitionReceiver.js";
4
+ export { OperationOptions } from "./util/operationOptions.js";
5
+ export { EventHubClientOptions, EventHubConsumerClientOptions, LoadBalancingOptions, SendBatchOptions, CreateBatchOptions, GetPartitionIdsOptions, GetPartitionPropertiesOptions, GetEventHubPropertiesOptions, } from "./models/public.js";
6
+ export { EventHubConsumerClient } from "./eventHubConsumerClient.js";
7
+ export { EventHubProducerClient } from "./eventHubProducerClient.js";
8
+ export { BufferedCloseOptions, EventHubBufferedProducerClient, EventHubBufferedProducerClientOptions, EnqueueEventOptions, BufferedFlushOptions, OnSendEventsErrorContext, OnSendEventsSuccessContext, } from "./eventHubBufferedProducerClient.js";
9
+ export { SubscribeOptions, Subscription, SubscriptionEventHandlers, PartitionContext, ProcessErrorHandler, ProcessInitializeHandler, ProcessCloseHandler, ProcessEventsHandler, } from "./eventHubConsumerClientModels.js";
10
+ export { EventPosition, latestEventPosition, earliestEventPosition } from "./eventPosition.js";
11
+ export { PartitionProperties, EventHubProperties } from "./managementClient.js";
12
+ export { EventDataBatch, TryAddOptions } from "./eventDataBatch.js";
13
+ export { Checkpoint } from "./partitionProcessor.js";
14
+ export { CheckpointStore, PartitionOwnership } from "./eventProcessor.js";
15
+ export { CloseReason } from "./models/public.js";
16
+ export { MessagingError, RetryOptions, RetryMode, WebSocketOptions } from "@azure/core-amqp";
17
+ export { TokenCredential } from "@azure/core-auth";
18
+ export { logger } from "./logger.js";
19
+ export { parseEventHubConnectionString, EventHubConnectionStringProperties, } from "./util/connectionStringUtils.js";
20
+ export * from "./eventDataAdapter.js";
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,qCAAqC,EACrC,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,iCAAiC,CAAC;AAEzC,cAAc,uBAAuB,CAAC"}
@@ -1,12 +1,12 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- export { EventHubConsumerClient } from "./eventHubConsumerClient";
4
- export { EventHubProducerClient } from "./eventHubProducerClient";
5
- export { EventHubBufferedProducerClient, } from "./eventHubBufferedProducerClient";
6
- export { latestEventPosition, earliestEventPosition } from "./eventPosition";
7
- export { CloseReason } from "./models/public";
3
+ export { EventHubConsumerClient } from "./eventHubConsumerClient.js";
4
+ export { EventHubProducerClient } from "./eventHubProducerClient.js";
5
+ export { EventHubBufferedProducerClient, } from "./eventHubBufferedProducerClient.js";
6
+ export { latestEventPosition, earliestEventPosition } from "./eventPosition.js";
7
+ export { CloseReason } from "./models/public.js";
8
8
  export { MessagingError, RetryMode } from "@azure/core-amqp";
9
- export { logger } from "./logger";
10
- export { parseEventHubConnectionString, } from "./util/connectionStringUtils";
11
- export * from "./eventDataAdapter";
9
+ export { logger } from "./logger.js";
10
+ export { parseEventHubConnectionString, } from "./util/connectionStringUtils.js";
11
+ export * from "./eventDataAdapter.js";
12
12
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAkBlC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAEL,8BAA8B,GAM/B,MAAM,qCAAqC,CAAC;AAW7C,OAAO,EAAiB,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAK/F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAgB,SAAS,EAAoB,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,6BAA6B,GAE9B,MAAM,iCAAiC,CAAC;AAEzC,cAAc,uBAAuB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/// <reference lib=\"esnext.asynciterable\" />\n\nexport { EventData, ReceivedEventData } from \"./eventData.js\";\nexport { WebSocketImpl } from \"rhea-promise\";\nexport { LastEnqueuedEventProperties } from \"./partitionReceiver.js\";\nexport { OperationOptions } from \"./util/operationOptions.js\";\nexport {\n EventHubClientOptions,\n EventHubConsumerClientOptions,\n LoadBalancingOptions,\n SendBatchOptions,\n CreateBatchOptions,\n GetPartitionIdsOptions,\n GetPartitionPropertiesOptions,\n GetEventHubPropertiesOptions,\n} from \"./models/public.js\";\nexport { EventHubConsumerClient } from \"./eventHubConsumerClient.js\";\nexport { EventHubProducerClient } from \"./eventHubProducerClient.js\";\nexport {\n BufferedCloseOptions,\n EventHubBufferedProducerClient,\n EventHubBufferedProducerClientOptions,\n EnqueueEventOptions,\n BufferedFlushOptions,\n OnSendEventsErrorContext,\n OnSendEventsSuccessContext,\n} from \"./eventHubBufferedProducerClient.js\";\nexport {\n SubscribeOptions,\n Subscription,\n SubscriptionEventHandlers,\n PartitionContext,\n ProcessErrorHandler,\n ProcessInitializeHandler,\n ProcessCloseHandler,\n ProcessEventsHandler,\n} from \"./eventHubConsumerClientModels.js\";\nexport { EventPosition, latestEventPosition, earliestEventPosition } from \"./eventPosition.js\";\nexport { PartitionProperties, EventHubProperties } from \"./managementClient.js\";\nexport { EventDataBatch, TryAddOptions } from \"./eventDataBatch.js\";\nexport { Checkpoint } from \"./partitionProcessor.js\";\nexport { CheckpointStore, PartitionOwnership } from \"./eventProcessor.js\";\nexport { CloseReason } from \"./models/public.js\";\nexport { MessagingError, RetryOptions, RetryMode, WebSocketOptions } from \"@azure/core-amqp\";\nexport { TokenCredential } from \"@azure/core-auth\";\nexport { logger } from \"./logger.js\";\nexport {\n parseEventHubConnectionString,\n EventHubConnectionStringProperties,\n} from \"./util/connectionStringUtils.js\";\n\nexport * from \"./eventDataAdapter.js\";\n"]}
@@ -0,0 +1,30 @@
1
+ import { LoadBalancingStrategy } from "./loadBalancingStrategy.js";
2
+ import { PartitionOwnership } from "../eventProcessor.js";
3
+ /**
4
+ * The BalancedLoadBalancerStrategy is meant to be used when the user
5
+ * wants to reach a load balanced state with less partition 'thrashing'.
6
+ *
7
+ * Partition thrashing - where a partition changes owners - is minimized
8
+ * by only returning a single partition to claim at a time.
9
+ * This minimizes the number of times a partition should need to be stolen.
10
+ * @internal
11
+ */
12
+ export declare class BalancedLoadBalancingStrategy implements LoadBalancingStrategy {
13
+ private readonly _partitionOwnershipExpirationIntervalInMs;
14
+ /**
15
+ * Creates an instance of BalancedLoadBalancingStrategy.
16
+ *
17
+ * @param _partitionOwnershipExpirationIntervalInMs - The length of time a partition claim is valid.
18
+ */
19
+ constructor(_partitionOwnershipExpirationIntervalInMs: number);
20
+ /**
21
+ * Implements load balancing by taking into account current ownership and
22
+ * the full set of partitions in the Event Hub.
23
+ * @param ourOwnerId - The id we should assume is _our_ id when checking for ownership.
24
+ * @param claimedPartitionOwnershipMap - The current claimed ownerships for partitions.
25
+ * @param partitionIds - Partitions to assign owners to.
26
+ * @returns Partition ids to claim.
27
+ */
28
+ getPartitionsToClaim(ourOwnerId: string, claimedPartitionOwnershipMap: Map<string, PartitionOwnership>, partitionIds: string[]): string[];
29
+ }
30
+ //# sourceMappingURL=balancedStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balancedStrategy.d.ts","sourceRoot":"","sources":["../../../src/loadBalancerStrategies/balancedStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAA2B,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;GAQG;AACH,qBAAa,6BAA8B,YAAW,qBAAqB;IAM7D,OAAO,CAAC,QAAQ,CAAC,yCAAyC;IALtE;;;;OAIG;gBAC0B,yCAAyC,EAAE,MAAM;IAE9E;;;;;;;OAOG;IACI,oBAAoB,CACzB,UAAU,EAAE,MAAM,EAClB,4BAA4B,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7D,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,EAAE;CAeZ"}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { listAvailablePartitions } from "./loadBalancingStrategy";
3
+ import { listAvailablePartitions } from "./loadBalancingStrategy.js";
4
4
  /**
5
5
  * The BalancedLoadBalancerStrategy is meant to be used when the user
6
6
  * wants to reach a load balanced state with less partition 'thrashing'.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balancedStrategy.js","sourceRoot":"","sources":["../../../src/loadBalancerStrategies/balancedStrategy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAyB,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAG5F;;;;;;;;GAQG;AACH,MAAM,OAAO,6BAA6B;IACxC;;;;OAIG;IACH,YAA6B,yCAAiD;QAAjD,8CAAyC,GAAzC,yCAAyC,CAAQ;IAAG,CAAC;IAElF;;;;;;;OAOG;IACI,oBAAoB,CACzB,UAAkB,EAClB,4BAA6D,EAC7D,YAAsB;QAEtB,MAAM,mBAAmB,GAAG,uBAAuB,CACjD,UAAU,EACV,4BAA4B,EAC5B,YAAY,EACZ,IAAI,CAAC,yCAAyC,CAC/C,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC3E,OAAO,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { LoadBalancingStrategy, listAvailablePartitions } from \"./loadBalancingStrategy.js\";\nimport { PartitionOwnership } from \"../eventProcessor.js\";\n\n/**\n * The BalancedLoadBalancerStrategy is meant to be used when the user\n * wants to reach a load balanced state with less partition 'thrashing'.\n *\n * Partition thrashing - where a partition changes owners - is minimized\n * by only returning a single partition to claim at a time.\n * This minimizes the number of times a partition should need to be stolen.\n * @internal\n */\nexport class BalancedLoadBalancingStrategy implements LoadBalancingStrategy {\n /**\n * Creates an instance of BalancedLoadBalancingStrategy.\n *\n * @param _partitionOwnershipExpirationIntervalInMs - The length of time a partition claim is valid.\n */\n constructor(private readonly _partitionOwnershipExpirationIntervalInMs: number) {}\n\n /**\n * Implements load balancing by taking into account current ownership and\n * the full set of partitions in the Event Hub.\n * @param ourOwnerId - The id we should assume is _our_ id when checking for ownership.\n * @param claimedPartitionOwnershipMap - The current claimed ownerships for partitions.\n * @param partitionIds - Partitions to assign owners to.\n * @returns Partition ids to claim.\n */\n public getPartitionsToClaim(\n ourOwnerId: string,\n claimedPartitionOwnershipMap: Map<string, PartitionOwnership>,\n partitionIds: string[],\n ): string[] {\n const claimablePartitions = listAvailablePartitions(\n ourOwnerId,\n claimedPartitionOwnershipMap,\n partitionIds,\n this._partitionOwnershipExpirationIntervalInMs,\n );\n\n if (!claimablePartitions.length) {\n return [];\n }\n\n const randomIndex = Math.floor(Math.random() * claimablePartitions.length);\n return [claimablePartitions[randomIndex]];\n }\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { LoadBalancingStrategy } from "./loadBalancingStrategy.js";
2
+ import { PartitionOwnership } from "../eventProcessor.js";
3
+ /**
4
+ * @internal
5
+ */
6
+ export declare class GreedyLoadBalancingStrategy implements LoadBalancingStrategy {
7
+ private readonly _partitionOwnershipExpirationIntervalInMs;
8
+ /**
9
+ * Creates an instance of GreedyLoadBalancingStrategy.
10
+ *
11
+ * @param _partitionOwnershipExpirationIntervalInMs - The length of time a partition claim is valid.
12
+ */
13
+ constructor(_partitionOwnershipExpirationIntervalInMs: number);
14
+ /**
15
+ * Implements load balancing by taking into account current ownership and
16
+ * the new set of partitions to add.
17
+ * @param ourOwnerId - The id we should assume is _our_ id when checking for ownership.
18
+ * @param claimedPartitionOwnershipMap - The current claimed ownerships for partitions.
19
+ * @param partitionIds - Partitions to assign owners to.
20
+ * @returns Partition ids to claim.
21
+ */
22
+ getPartitionsToClaim(ourOwnerId: string, claimedPartitionOwnershipMap: Map<string, PartitionOwnership>, partitionIds: string[]): string[];
23
+ }
24
+ //# sourceMappingURL=greedyStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"greedyStrategy.d.ts","sourceRoot":"","sources":["../../../src/loadBalancerStrategies/greedyStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAA2B,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,qBAAa,2BAA4B,YAAW,qBAAqB;IAM3D,OAAO,CAAC,QAAQ,CAAC,yCAAyC;IALtE;;;;OAIG;gBAC0B,yCAAyC,EAAE,MAAM;IAE9E;;;;;;;OAOG;IACI,oBAAoB,CACzB,UAAU,EAAE,MAAM,EAClB,4BAA4B,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7D,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,EAAE;CAQZ"}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { listAvailablePartitions } from "./loadBalancingStrategy";
3
+ import { listAvailablePartitions } from "./loadBalancingStrategy.js";
4
4
  /**
5
5
  * @internal
6
6
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"greedyStrategy.js","sourceRoot":"","sources":["../../../src/loadBalancerStrategies/greedyStrategy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAyB,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAG5F;;GAEG;AACH,MAAM,OAAO,2BAA2B;IACtC;;;;OAIG;IACH,YAA6B,yCAAiD;QAAjD,8CAAyC,GAAzC,yCAAyC,CAAQ;IAAG,CAAC;IAElF;;;;;;;OAOG;IACI,oBAAoB,CACzB,UAAkB,EAClB,4BAA6D,EAC7D,YAAsB;QAEtB,OAAO,uBAAuB,CAC5B,UAAU,EACV,4BAA4B,EAC5B,YAAY,EACZ,IAAI,CAAC,yCAAyC,CAC/C,CAAC;IACJ,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { LoadBalancingStrategy, listAvailablePartitions } from \"./loadBalancingStrategy.js\";\nimport { PartitionOwnership } from \"../eventProcessor.js\";\n\n/**\n * @internal\n */\nexport class GreedyLoadBalancingStrategy implements LoadBalancingStrategy {\n /**\n * Creates an instance of GreedyLoadBalancingStrategy.\n *\n * @param _partitionOwnershipExpirationIntervalInMs - The length of time a partition claim is valid.\n */\n constructor(private readonly _partitionOwnershipExpirationIntervalInMs: number) {}\n\n /**\n * Implements load balancing by taking into account current ownership and\n * the new set of partitions to add.\n * @param ourOwnerId - The id we should assume is _our_ id when checking for ownership.\n * @param claimedPartitionOwnershipMap - The current claimed ownerships for partitions.\n * @param partitionIds - Partitions to assign owners to.\n * @returns Partition ids to claim.\n */\n public getPartitionsToClaim(\n ourOwnerId: string,\n claimedPartitionOwnershipMap: Map<string, PartitionOwnership>,\n partitionIds: string[],\n ): string[] {\n return listAvailablePartitions(\n ourOwnerId,\n claimedPartitionOwnershipMap,\n partitionIds,\n this._partitionOwnershipExpirationIntervalInMs,\n );\n }\n}\n"]}
@@ -0,0 +1,28 @@
1
+ import { PartitionOwnership } from "../eventProcessor.js";
2
+ /**
3
+ * Determines which partitions to claim as part of load balancing.
4
+ * @internal
5
+ */
6
+ export interface LoadBalancingStrategy {
7
+ /**
8
+ * Implements load balancing by taking into account current ownership and
9
+ * the full set of partitions in the Event Hub.
10
+ * @param ourOwnerId - The id we should assume is _our_ id when checking for ownership.
11
+ * @param claimedPartitionOwnershipMap - The current claimed ownerships for partitions.
12
+ * @param partitionIds - Partitions to assign owners to.
13
+ * @returns Partition ids to claim.
14
+ */
15
+ getPartitionsToClaim(ownerId: string, claimedPartitionOwnershipMap: Map<string, PartitionOwnership>, partitionIds: string[]): string[];
16
+ }
17
+ /**
18
+ * Identifies all of the partitions that can be claimed by the specified owner for
19
+ * that owner to reach a balanced state.
20
+ * @param OwnerId - The id we should assume is _our_ id when checking for ownership.
21
+ * @param claimedPartitionOwnershipMap - The current claimed ownerships for partitions.
22
+ * @param partitionIds - Partitions to assign owners to.
23
+ * @param expirationIntervalInMs - The length of time a partition claim is valid.
24
+ * @returns Partition ids that may be claimed.
25
+ * @internal
26
+ */
27
+ export declare function listAvailablePartitions(ownerId: string, claimedPartitionOwnershipMap: Map<string, PartitionOwnership>, partitionIds: string[], expirationIntervalInMs: number): string[];
28
+ //# sourceMappingURL=loadBalancingStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadBalancingStrategy.d.ts","sourceRoot":"","sources":["../../../src/loadBalancerStrategies/loadBalancingStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;OAOG;IACH,oBAAoB,CAClB,OAAO,EAAE,MAAM,EACf,4BAA4B,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7D,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,EAAE,CAAC;CACb;AA2PD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,4BAA4B,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7D,YAAY,EAAE,MAAM,EAAE,EACtB,sBAAsB,EAAE,MAAM,GAC7B,MAAM,EAAE,CA8FV"}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { logger } from "../logger";
3
+ import { logger } from "../logger.js";
4
4
  /**
5
5
  * This method will create a new map of partition id and PartitionOwnership containing only those partitions
6
6
  * that are actively owned.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadBalancingStrategy.js","sourceRoot":"","sources":["../../../src/loadBalancerStrategies/loadBalancingStrategy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AA+CtC;;;;;;;;;GASG;AACH,SAAS,4BAA4B,CACnC,qBAAsD,EACtD,sBAA8B;IAE9B,MAAM,2BAA2B,GAAoC,IAAI,GAAG,EAAE,CAAC;IAC/E,qBAAqB,CAAC,OAAO,CAAC,CAAC,kBAAsC,EAAE,WAAmB,EAAE,EAAE;QAC5F,6DAA6D;QAC7D,IACE,OAAO,kBAAkB,CAAC,oBAAoB,KAAK,WAAW;YAC9D,kBAAkB,CAAC,oBAAoB,KAAK,IAAI,EAChD,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,yBAAyB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC,oBAAoB,CAAC;QACvF,IAAI,yBAAyB,GAAG,sBAAsB,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YACrF,2BAA2B,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,2BAA2B,CAClC,mBAAsD,EACtD,YAAsB;IAEtB,2FAA2F;IAC3F,yBAAyB;IACzB,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEzF,+FAA+F;IAC/F,iGAAiG;IACjG,oBAAoB;IACpB,gFAAgF;IAChF,MAAM,wCAAwC,GAAG,YAAY,CAAC,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC;IAEhG,OAAO;QACL,qBAAqB;QACrB,wCAAwC;KACzC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,uBAAuB,CAC9B,qBAA6B,EAC7B,mBAAsD;IAEtD,MAAM,MAAM,GAAyB;QACnC,sBAAsB,EAAE,CAAC;QACzB,uBAAuB,EAAE,CAAC;QAC1B,qBAAqB,EAAE,CAAC;KACzB,CAAC;IAEF,KAAK,MAAM,aAAa,IAAI,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;QACzD,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC;QAEhD,sDAAsD;QACtD,mBAAmB;QAEnB,IAAI,kBAAkB,KAAK,qBAAqB,EAAE,CAAC;YACjD,qDAAqD;YACrD,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC;aAAM,IAAI,kBAAkB,KAAK,qBAAqB,GAAG,CAAC,EAAE,CAAC;YAC5D,+DAA+D;YAC/D,2DAA2D;YAC3D,wBAAwB;YACxB,MAAM,CAAC,uBAAuB,EAAE,CAAC;QACnC,CAAC;aAAM,IAAI,kBAAkB,GAAG,qBAAqB,GAAG,CAAC,EAAE,CAAC;YAC1D,yDAAyD;YACzD,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,cAAc,CACrB,wCAAgD,EAChD,4BAAoC,EACpC,EAAE,uBAAuB,EAAE,sBAAsB,EAAwB;IAEzE,OAAO,CACL,uBAAuB,KAAK,wCAAwC;QACpE,sBAAsB,GAAG,uBAAuB,KAAK,4BAA4B,CAClF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,4BAA4B,CACnC,yBAAiC,EACjC,wCAAgD,EAChD,sBAA8B,EAC9B,EAAE,uBAAuB,EAAE,qBAAqB,EAAwB;IAExE,IAAI,4BAA4B,GAAG,yBAAyB,CAAC;IAE7D,IACE,wCAAwC,GAAG,CAAC;QAC5C,mFAAmF;QACnF,8EAA8E;QAC9E,yFAAyF;QACzF,uBAAuB,GAAG,qBAAqB,GAAG,wCAAwC,EAC1F,CAAC;QACD,0FAA0F;QAC1F,2BAA2B;QAC3B,4BAA4B,GAAG,yBAAyB,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,4BAA4B,GAAG,sBAAsB,CAAC;AAC/D,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,qBAAqB,CAC5B,yBAAiC,EACjC,qBAA6B,EAC7B,wCAAgD,EAChD,UAAkB,EAClB,mBAAsD;IAEtD,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,oEAAoE;IACpE,MAAM,yBAAyB,GAAgC,EAAE,CAAC;IAClE,mBAAmB,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,OAAO,EAAE,EAAE;QAC3D,IAAI,OAAO,KAAK,UAAU,IAAI,mBAAmB,CAAC,MAAM,IAAI,qBAAqB;YAAE,OAAO;QAC1F,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,sFAAsF;IACtF,0BAA0B;IAC1B,IAAI,oCAAoC,GAAG,CAAC,CAAC;IAC7C,IAAI,6BAA6B,GAAG,yBAAyB,CAAC,KAAK,EAAE,CAAC;IACtE,OAAO,yBAAyB,GAAG,CAAC,IAAI,6BAA6B,EAAE,CAAC;QACtE,IAAI,4BAA4B,GAAG,qBAAqB,CAAC;QACzD,+EAA+E;QAC/E,IAAI,oCAAoC,GAAG,wCAAwC,EAAE,CAAC;YACpF,4BAA4B,EAAE,CAAC;QACjC,CAAC;QACD,oCAAoC,EAAE,CAAC;QAEvC,IAAI,sBAAsB,GACxB,6BAA6B,CAAC,MAAM,GAAG,4BAA4B,CAAC;QACtE,+CAA+C;QAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,EAAE,CAAC;YACnE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;YACtF,iBAAiB,CAAC,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC7F,yBAAyB,EAAE,CAAC;YAC5B,sBAAsB,EAAE,CAAC;QAC3B,CAAC;QAED,kDAAkD;QAClD,6BAA6B,GAAG,yBAAyB,CAAC,KAAK,EAAE,CAAC;IACpE,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAe,EACf,4BAA6D,EAC7D,YAAsB,EACtB,sBAA8B;IAE9B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,6FAA6F;IAC7F,+FAA+F;IAC/F,MAAM,2BAA2B,GAAG,4BAA4B,CAC9D,4BAA4B,EAC5B,sBAAsB,CACvB,CAAC;IACF,MAAM,CAAC,OAAO,CACZ,IAAI,OAAO,yCAAyC,2BAA2B,CAAC,IAAI,GAAG,CACxF,CAAC;IAEF,IAAI,2BAA2B,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3C,2DAA2D;QAC3D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,4FAA4F;IAC5F,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAgC,CAAC;IACpE,KAAK,MAAM,eAAe,IAAI,2BAA2B,CAAC,MAAM,EAAE,EAAE,CAAC;QACnE,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEtF,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7C,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IAC3E,CAAC;IAED,yFAAyF;IACzF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,wCAAwC,mBAAmB,CAAC,IAAI,GAAG,CAAC,CAAC;IAE5F,MAAM,EAAE,qBAAqB,EAAE,wCAAwC,EAAE,GACvE,2BAA2B,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAEjE,MAAM,CAAC,OAAO,CACZ,IAAI,OAAO,gEAAgE,qBAAqB,GAAG;QACjG,kEAAkE,wCAAwC,GAAG,CAChH,CAAC;IAEF,2FAA2F;IAC3F,yCAAyC;IACzC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;IAEjG,IACE,cAAc,CACZ,wCAAwC,EACxC,mBAAmB,CAAC,IAAI,EACxB,oBAAoB,CACrB,EACD,CAAC;QACD,kEAAkE;QAClE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,yBAAyB,GAAG,4BAA4B,CAC1D,qBAAqB,EACrB,wCAAwC,EACxC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,MAAM,EACxC,oBAAoB,CACrB,CAAC;IAEF,IAAI,yBAAyB,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,MAAM,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhG,iDAAiD;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC9E,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,yBAAyB,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,yBAAyB,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,iEAAiE;IACjE,MAAM,iBAAiB,GAAG,qBAAqB,CAC7C,yBAAyB,EACzB,qBAAqB,EACrB,wCAAwC,EACxC,OAAO,EACP,mBAAmB,CACpB,CAAC;IAEF,OAAO,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACrD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PartitionOwnership } from \"../eventProcessor.js\";\nimport { logger } from \"../logger.js\";\n\n/**\n * Determines which partitions to claim as part of load balancing.\n * @internal\n */\nexport interface LoadBalancingStrategy {\n /**\n * Implements load balancing by taking into account current ownership and\n * the full set of partitions in the Event Hub.\n * @param ourOwnerId - The id we should assume is _our_ id when checking for ownership.\n * @param claimedPartitionOwnershipMap - The current claimed ownerships for partitions.\n * @param partitionIds - Partitions to assign owners to.\n * @returns Partition ids to claim.\n */\n getPartitionsToClaim(\n ownerId: string,\n claimedPartitionOwnershipMap: Map<string, PartitionOwnership>,\n partitionIds: string[],\n ): string[];\n}\n\n/**\n * Counts of the EventProcessors that currently own partitions.\n * @internal\n */\ninterface EventProcessorCounts {\n /**\n * The # of EventProcessors that only own the required # of\n * partitions.\n */\n haveRequiredPartitions: number;\n /**\n * The # of EventProcessors that currently own the required #\n * of partitions + 1 additional (ie, handling the case where\n * the number of partitions is not evenly divisible by the # of\n * EventProcessors).\n */\n haveAdditionalPartition: number;\n /**\n * EventProcessors which have more than the required or even required + 1\n * number of partitions. These will eventually be downsized by other\n * EventProcessors as they acquire their required number of partitions.\n */\n haveTooManyPartitions: number;\n}\n\n/**\n * This method will create a new map of partition id and PartitionOwnership containing only those partitions\n * that are actively owned.\n * All entries in the original map that haven't been modified for a duration of time greater than the allowed\n * inactivity time limit are assumed to be owned by dead event processors.\n * These will not be included in the map returned by this method.\n *\n * @param partitionOwnershipMap - The existing PartitionOwnerships mapped by partition.\n * @param expirationIntervalInMs - The length of time a PartitionOwnership claim is valid.\n */\nfunction getActivePartitionOwnerships(\n partitionOwnershipMap: Map<string, PartitionOwnership>,\n expirationIntervalInMs: number,\n): Map<string, PartitionOwnership> {\n const activePartitionOwnershipMap: Map<string, PartitionOwnership> = new Map();\n partitionOwnershipMap.forEach((partitionOwnership: PartitionOwnership, partitionId: string) => {\n // If lastModifiedtimeInMs is missing, assume it is inactive.\n if (\n typeof partitionOwnership.lastModifiedTimeInMs === \"undefined\" ||\n partitionOwnership.lastModifiedTimeInMs === null\n ) {\n return;\n }\n\n const timeSincePartitionClaimed = Date.now() - partitionOwnership.lastModifiedTimeInMs;\n if (timeSincePartitionClaimed < expirationIntervalInMs && partitionOwnership.ownerId) {\n activePartitionOwnershipMap.set(partitionId, partitionOwnership);\n }\n });\n\n return activePartitionOwnershipMap;\n}\n\n/**\n * Calculates the minimum number of partitions each EventProcessor should own,\n * and the number of EventProcessors that should have an extra partition assigned.\n * @param ownerToOwnershipMap - The current ownerships for partitions.\n * @param partitionIds - The full list of the Event Hub's partition ids.\n * @internal\n */\nfunction calculateBalancedLoadCounts(\n ownerToOwnershipMap: Map<string, PartitionOwnership[]>,\n partitionIds: string[],\n): { minPartitionsPerOwner: number; requiredNumberOfOwnersWithExtraPartition: number } {\n // Calculate the minimum number of partitions every EventProcessor should own when the load\n // is evenly distributed.\n const minPartitionsPerOwner = Math.floor(partitionIds.length / ownerToOwnershipMap.size);\n\n // If the number of partitions in the Event Hub is not evenly divisible by the number of active\n // EventProcesrrors, some EventProcessors may own 1 partition in addition to the minimum when the\n // load is balanced.\n // Calculate the number of EventProcessors that can own an additional partition.\n const requiredNumberOfOwnersWithExtraPartition = partitionIds.length % ownerToOwnershipMap.size;\n\n return {\n minPartitionsPerOwner,\n requiredNumberOfOwnersWithExtraPartition,\n };\n}\n\n/**\n * Counts the EventProcessors and tallies them by type.\n *\n * To be in balance we need to make sure that each EventProcessor is only consuming\n * their fair share.\n *\n * When the partitions are divvied up we will sometimes end up with some EventProcessors\n * that will have 1 more partition than others.\n * This can happen if the number of partitions is not evenly divisible by the number of EventProcessors.\n *\n * So this function largely exists to support isLoadBalanced() and\n * shouldOwnMorePartitions(), both of which depend on knowing if our current list\n * of EventProcessors is actually in the proper state.\n *\n * @param minPartitionsPerOwner - The number of required partitions per EventProcessor.\n * @param ownerToOwnershipMap - The current ownerships for partitions.\n * @internal\n */\nfunction getEventProcessorCounts(\n minPartitionsPerOwner: number,\n ownerToOwnershipMap: Map<string, PartitionOwnership[]>,\n): EventProcessorCounts {\n const counts: EventProcessorCounts = {\n haveRequiredPartitions: 0,\n haveAdditionalPartition: 0,\n haveTooManyPartitions: 0,\n };\n\n for (const ownershipList of ownerToOwnershipMap.values()) {\n const numberOfPartitions = ownershipList.length;\n\n // there are basically three kinds of partition counts\n // for a processor:\n\n if (numberOfPartitions === minPartitionsPerOwner) {\n // 1. Has _exactly_ the required number of partitions\n counts.haveRequiredPartitions++;\n } else if (numberOfPartitions === minPartitionsPerOwner + 1) {\n // 2. Has the required number plus one extra (correct in cases)\n // where the # of partitions is not evenly divisible by the\n // number of processors.\n counts.haveAdditionalPartition++;\n } else if (numberOfPartitions > minPartitionsPerOwner + 1) {\n // 3. has more than the possible # of partitions required\n counts.haveTooManyPartitions++;\n }\n }\n\n return counts;\n}\n\n/**\n * Validates that we are currently in a balanced state - all EventProcessors own the\n * minimum required number of partitions (and additional partitions, if the # of partitions\n * is not evenly divisible by the # of EventProcessors).\n *\n * @param requiredNumberOfOwnersWithExtraPartition - The # of EventProcessors that process an additional partition, in addition to the required minimum.\n * @param totalExpectedProcessors - The total # of EventProcessors we expect.\n * @param eventProcessorCounts - EventProcessor counts, grouped by criteria.\n * @internal\n */\nfunction isLoadBalanced(\n requiredNumberOfOwnersWithExtraPartition: number,\n totalExpectedEventProcessors: number,\n { haveAdditionalPartition, haveRequiredPartitions }: EventProcessorCounts,\n): boolean {\n return (\n haveAdditionalPartition === requiredNumberOfOwnersWithExtraPartition &&\n haveRequiredPartitions + haveAdditionalPartition === totalExpectedEventProcessors\n );\n}\n\n/**\n * Determines the number of new partitions to claim for this particular processor.\n *\n * @param minRequired - The minimum required number of partitions.\n * @param requiredNumberOfOwnersWithExtraPartition - The current number of processors that should have an additional partition.\n * @param numPartitionsOwnedByUs - The number of partitions we currently own.\n * @param eventProcessorCounts - Processors, grouped by criteria.\n * @internal\n */\nfunction getNumberOfPartitionsToClaim(\n minRequiredPartitionCount: number,\n requiredNumberOfOwnersWithExtraPartition: number,\n numPartitionsOwnedByUs: number,\n { haveAdditionalPartition, haveTooManyPartitions }: EventProcessorCounts,\n): number {\n let actualRequiredPartitionCount = minRequiredPartitionCount;\n\n if (\n requiredNumberOfOwnersWithExtraPartition > 0 &&\n // Eventually the `haveTooManyPartitions` will decay into `haveAdditionalPartition`\n // EventProcessors as partitions are balanced to consumers that aren't at par.\n // We can consider them to be `haveAdditionalPartition` EventProcessors for our purposes.\n haveAdditionalPartition + haveTooManyPartitions < requiredNumberOfOwnersWithExtraPartition\n ) {\n // Overall we don't have enough EventProcessors that are taking on an additional partition\n // so we should attempt to.\n actualRequiredPartitionCount = minRequiredPartitionCount + 1;\n }\n return actualRequiredPartitionCount - numPartitionsOwnedByUs;\n}\n\n/**\n * Determines which partitions can be stolen from other owners while maintaining\n * a balanced state.\n * @param numberOfPartitionsToClaim - The number of partitions the owner needs to claim to reach a balanced state.\n * @param minPartitionsPerOwner - The minimum number of partitions each owner needs for the partition load to be balanced.\n * @param requiredNumberOfOwnersWithExtraPartition - The number of owners that should have 1 extra partition.\n * @param ourOwnerId - The id of _our_ owner.\n * @param ownerToOwnershipMap - The current ownerships for partitions.\n * @internal\n */\nfunction findPartitionsToSteal(\n numberOfPartitionsToClaim: number,\n minPartitionsPerOwner: number,\n requiredNumberOfOwnersWithExtraPartition: number,\n ourOwnerId: string,\n ownerToOwnershipMap: Map<string, PartitionOwnership[]>,\n): string[] {\n const partitionsToSteal: string[] = [];\n // Create a list of PartitionOwnership lists that we can steal from.\n const listOfPartitionOwnerships: Array<PartitionOwnership[]> = [];\n ownerToOwnershipMap.forEach((partitionOwnerships, ownerId) => {\n if (ownerId === ourOwnerId || partitionOwnerships.length <= minPartitionsPerOwner) return;\n listOfPartitionOwnerships.push(partitionOwnerships);\n });\n\n // Sort the list in descending order based on the length of each element.\n listOfPartitionOwnerships.sort((a, b) => {\n if (a.length > b.length) return -1;\n if (a.length < b.length) return 1;\n return 0;\n });\n\n // Attempt to steal partitions from EventProcessors that have the most partitions 1st,\n // then work our way down.\n let ownersEncounteredWithExtraPartitions = 0;\n let currentPartitionOwnershipList = listOfPartitionOwnerships.shift();\n while (numberOfPartitionsToClaim > 0 && currentPartitionOwnershipList) {\n let ownersExpectedPartitionCount = minPartitionsPerOwner;\n // Determine if the current owner should be allowed to have an extra partition.\n if (ownersEncounteredWithExtraPartitions < requiredNumberOfOwnersWithExtraPartition) {\n ownersExpectedPartitionCount++;\n }\n ownersEncounteredWithExtraPartitions++;\n\n let numberAvailableToSteal =\n currentPartitionOwnershipList.length - ownersExpectedPartitionCount;\n // Claim as many random partitions as possible.\n while (Math.min(numberOfPartitionsToClaim, numberAvailableToSteal)) {\n const indexToClaim = Math.floor(Math.random() * currentPartitionOwnershipList.length);\n partitionsToSteal.push(currentPartitionOwnershipList.splice(indexToClaim, 1)[0].partitionId);\n numberOfPartitionsToClaim--;\n numberAvailableToSteal--;\n }\n\n // Move on to the next list of PartitionOwnership.\n currentPartitionOwnershipList = listOfPartitionOwnerships.shift();\n }\n\n return partitionsToSteal;\n}\n\n/**\n * Identifies all of the partitions that can be claimed by the specified owner for\n * that owner to reach a balanced state.\n * @param OwnerId - The id we should assume is _our_ id when checking for ownership.\n * @param claimedPartitionOwnershipMap - The current claimed ownerships for partitions.\n * @param partitionIds - Partitions to assign owners to.\n * @param expirationIntervalInMs - The length of time a partition claim is valid.\n * @returns Partition ids that may be claimed.\n * @internal\n */\nexport function listAvailablePartitions(\n ownerId: string,\n claimedPartitionOwnershipMap: Map<string, PartitionOwnership>,\n partitionIds: string[],\n expirationIntervalInMs: number,\n): string[] {\n if (!partitionIds.length) {\n return [];\n }\n\n // Collect only the PartitionOwnership that have been updated within the expiration interval.\n // Any PartitionOwnership that has been updated outside the expiration interval can be claimed.\n const activePartitionOwnershipMap = getActivePartitionOwnerships(\n claimedPartitionOwnershipMap,\n expirationIntervalInMs,\n );\n logger.verbose(\n `[${ownerId}] Number of active ownership records: ${activePartitionOwnershipMap.size}.`,\n );\n\n if (activePartitionOwnershipMap.size === 0) {\n // All partitions in this Event Hub are available to claim.\n return partitionIds;\n }\n\n // Map ownerIds to the partitions they own so that we can determine how many each owner has.\n const ownerToOwnershipMap = new Map<string, PartitionOwnership[]>();\n for (const activeOwnership of activePartitionOwnershipMap.values()) {\n const partitionOwnershipList = ownerToOwnershipMap.get(activeOwnership.ownerId) || [];\n\n partitionOwnershipList.push(activeOwnership);\n ownerToOwnershipMap.set(activeOwnership.ownerId, partitionOwnershipList);\n }\n\n // Add the current EventProcessor to the map of owners to ownerships if it doesn't exist.\n if (!ownerToOwnershipMap.has(ownerId)) {\n ownerToOwnershipMap.set(ownerId, []);\n }\n\n logger.info(`[${ownerId}] Number of active event processors: ${ownerToOwnershipMap.size}.`);\n\n const { minPartitionsPerOwner, requiredNumberOfOwnersWithExtraPartition } =\n calculateBalancedLoadCounts(ownerToOwnershipMap, partitionIds);\n\n logger.verbose(\n `[${ownerId}] Expected minimum number of partitions per event processor: ${minPartitionsPerOwner},` +\n `expected number of event processors with additional partition: ${requiredNumberOfOwnersWithExtraPartition}.`,\n );\n\n // Get some stats representing the current state the world with regards to how balanced the\n // partitions are across EventProcessors.\n const eventProcessorCounts = getEventProcessorCounts(minPartitionsPerOwner, ownerToOwnershipMap);\n\n if (\n isLoadBalanced(\n requiredNumberOfOwnersWithExtraPartition,\n ownerToOwnershipMap.size,\n eventProcessorCounts,\n )\n ) {\n // When the partitions are evenly distributed, no change required.\n return [];\n }\n\n let numberOfPartitionsToClaim = getNumberOfPartitionsToClaim(\n minPartitionsPerOwner,\n requiredNumberOfOwnersWithExtraPartition,\n ownerToOwnershipMap.get(ownerId)!.length,\n eventProcessorCounts,\n );\n\n if (numberOfPartitionsToClaim <= 0) {\n return [];\n }\n\n const partitionsToClaim: string[] = [];\n const unclaimedPartitionIds = partitionIds.filter((id) => !activePartitionOwnershipMap.has(id));\n\n // Prioritize getting unclaimed partitions first.\n while (Math.min(numberOfPartitionsToClaim, unclaimedPartitionIds.length)) {\n const indexToClaim = Math.floor(Math.random() * unclaimedPartitionIds.length);\n partitionsToClaim.push(unclaimedPartitionIds.splice(indexToClaim, 1)[0]);\n numberOfPartitionsToClaim--;\n }\n\n if (numberOfPartitionsToClaim === 0) {\n return partitionsToClaim;\n }\n\n // Find partitions that can be stolen from other EventProcessors.\n const partitionsToSteal = findPartitionsToSteal(\n numberOfPartitionsToClaim,\n minPartitionsPerOwner,\n requiredNumberOfOwnersWithExtraPartition,\n ownerId,\n ownerToOwnershipMap,\n );\n\n return partitionsToClaim.concat(partitionsToSteal);\n}\n"]}