@azure/event-hubs 5.13.0-alpha.20240729.1 → 5.13.0-alpha.20240730.2

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 @@
1
+ {"version":3,"file":"eventData.js","sourceRoot":"","sources":["../../src/eventData.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AmqpAnnotatedMessage, Constants } from \"@azure/core-amqp\";\nimport { BodyTypes, defaultDataTransformer } from \"./dataTransformer.js\";\nimport {\n DeliveryAnnotations,\n MessageAnnotations,\n Message as RheaMessage,\n types,\n} from \"rhea-promise\";\nimport { isDefined, isObjectWithProperties, objectHasProperty } from \"@azure/core-util\";\nimport {\n idempotentProducerAmqpPropertyNames,\n PENDING_PUBLISH_SEQ_NUM_SYMBOL,\n} from \"./util/constants.js\";\n\n/**\n * Describes the delivery annotations.\n * @internal\n */\nexport interface EventHubDeliveryAnnotations extends DeliveryAnnotations {\n /**\n * The offset of the last event.\n */\n last_enqueued_offset?: string;\n /**\n * The sequence number of the last event.\n */\n last_enqueued_sequence_number?: number;\n /**\n * The enqueued time of the last event.\n */\n last_enqueued_time_utc?: number;\n /**\n * The retrieval time of the last event.\n */\n runtime_info_retrieval_time_utc?: number;\n /**\n * Any unknown delivery annotations.\n */\n [x: string]: any;\n}\n\n/**\n * Map containing message attributes that will be held in the message header.\n * @internal\n */\nexport interface EventHubMessageAnnotations extends MessageAnnotations {\n /**\n * Annotation for the partition key set for the event.\n */\n \"x-opt-partition-key\"?: string | null;\n /**\n * Annotation for the sequence number of the event.\n */\n \"x-opt-sequence-number\"?: number;\n /**\n * Annotation for the enqueued time of the event.\n */\n \"x-opt-enqueued-time\"?: number;\n /**\n * Annotation for the offset of the event.\n */\n \"x-opt-offset\"?: string;\n /**\n * Any other annotation that can be added to the message.\n */\n [x: string]: any;\n}\n\n/**\n * Describes the structure of an event to be sent or received from the EventHub.\n * @internal\n */\nexport interface EventDataInternal {\n /**\n * The message body that needs to be sent or is received.\n */\n body: any;\n /**\n * The enqueued time of the event.\n */\n enqueuedTimeUtc?: Date;\n /**\n * If specified EventHub will hash this to a partitionId.\n * It guarantees that messages end up in a specific partition on the event hub.\n */\n partitionKey?: string | null;\n /**\n * The offset of the event.\n */\n offset?: string;\n /**\n * The sequence number of the event.\n */\n sequenceNumber?: number;\n /**\n * The application specific properties.\n */\n properties?: { [property: string]: any };\n /**\n * The last sequence number of the event within the partition stream of the Event Hub.\n */\n lastSequenceNumber?: number;\n /**\n * The offset of the last enqueued event.\n */\n lastEnqueuedOffset?: string;\n /**\n * The enqueued UTC time of the last event.\n */\n lastEnqueuedTime?: Date;\n /**\n * The time when the runtime info was retrieved\n */\n retrievalTime?: Date;\n /**\n * The properties set by the service.\n */\n systemProperties?: { [property: string]: any };\n /**\n * The content type of the message. Optionally describes\n * the payload of the message, with a descriptor following the format of RFC2045, Section 5, for\n * example \"application/json\".\n */\n contentType?: string;\n\n /**\n * The correlation identifier that allows an\n * application to specify a context for the message for the purposes of correlation, for example\n * reflecting the MessageId of a message that is being replied to.\n */\n correlationId?: string | number | Buffer;\n\n /**\n * The message identifier is an\n * application-defined value that uniquely identifies the message and its payload.\n *\n * Note: Numbers that are not whole integers are not allowed.\n */\n messageId?: string | number | Buffer;\n /**\n * Returns the underlying raw amqp message.\n */\n getRawAmqpMessage(): AmqpAnnotatedMessage;\n /**\n * The pending publish sequence number, set while the event\n * is being published with idempotent partitions enabled.\n */\n [PENDING_PUBLISH_SEQ_NUM_SYMBOL]?: number;\n /**\n * The sequence number the event was published with\n * when idempotent partitions are enabled.\n */\n _publishedSequenceNumber?: number;\n}\n\nconst messagePropertiesMap = {\n message_id: \"messageId\",\n user_id: \"userId\",\n to: \"to\",\n subject: \"subject\",\n reply_to: \"replyTo\",\n correlation_id: \"correlationId\",\n content_type: \"contentType\",\n content_encoding: \"contentEncoding\",\n absolute_expiry_time: \"absoluteExpiryTime\",\n creation_time: \"creationTime\",\n group_id: \"groupId\",\n group_sequence: \"groupSequence\",\n reply_to_group_id: \"replyToGroupId\",\n} as const;\n\n/**\n * Converts the AMQP message to an EventData.\n * @param msg - The AMQP message that needs to be converted to EventData.\n * @param skipParsingBodyAsJson - Boolean to skip running JSON.parse() on message body when body type is `content`.\n * @internal\n */\nexport function fromRheaMessage(\n msg: RheaMessage,\n skipParsingBodyAsJson: boolean,\n): EventDataInternal {\n const rawMessage = AmqpAnnotatedMessage.fromRheaMessage(msg);\n const { body, bodyType } = defaultDataTransformer.decode(msg.body, skipParsingBodyAsJson);\n rawMessage.bodyType = bodyType;\n\n const data: EventDataInternal = {\n body,\n getRawAmqpMessage() {\n return rawMessage;\n },\n };\n\n if (msg.message_annotations) {\n for (const annotationKey of Object.keys(msg.message_annotations)) {\n switch (annotationKey) {\n case Constants.partitionKey:\n data.partitionKey = msg.message_annotations[annotationKey];\n break;\n case Constants.sequenceNumber:\n data.sequenceNumber = msg.message_annotations[annotationKey];\n break;\n case Constants.enqueuedTime:\n data.enqueuedTimeUtc = new Date(msg.message_annotations[annotationKey]);\n break;\n case Constants.offset:\n data.offset = msg.message_annotations[annotationKey];\n break;\n default:\n if (!data.systemProperties) {\n data.systemProperties = {};\n }\n data.systemProperties[annotationKey] = convertDatesToNumbers(\n msg.message_annotations[annotationKey],\n );\n break;\n }\n }\n }\n if (msg.application_properties) {\n data.properties = convertDatesToNumbers(msg.application_properties);\n }\n if (msg.delivery_annotations) {\n data.lastEnqueuedOffset = msg.delivery_annotations.last_enqueued_offset;\n data.lastSequenceNumber = msg.delivery_annotations.last_enqueued_sequence_number;\n data.lastEnqueuedTime = new Date(msg.delivery_annotations.last_enqueued_time_utc as number);\n data.retrievalTime = new Date(\n msg.delivery_annotations.runtime_info_retrieval_time_utc as number,\n );\n }\n\n const messageProperties = Object.keys(messagePropertiesMap) as Array<\n keyof typeof messagePropertiesMap\n >;\n for (const messageProperty of messageProperties) {\n if (!data.systemProperties) {\n data.systemProperties = {};\n }\n if (msg[messageProperty] != null) {\n data.systemProperties[messagePropertiesMap[messageProperty]] = convertDatesToNumbers(\n msg[messageProperty],\n );\n }\n }\n\n if (msg.content_type != null) {\n data.contentType = msg.content_type;\n }\n if (msg.correlation_id != null) {\n data.correlationId = msg.correlation_id;\n }\n if (msg.message_id != null) {\n data.messageId = msg.message_id;\n }\n\n return data;\n}\n\n/**\n * Converts an EventData object to an AMQP message.\n * @param data - The EventData object that needs to be converted to an AMQP message.\n * @param partitionKey - An optional key to determine the partition that this event should land in.\n * @internal\n */\nexport function toRheaMessage(\n data: EventData | AmqpAnnotatedMessage,\n partitionKey?: string,\n): RheaMessage {\n let rheaMessage: RheaMessage;\n if (isAmqpAnnotatedMessage(data)) {\n rheaMessage = {\n ...AmqpAnnotatedMessage.toRheaMessage(data),\n body: defaultDataTransformer.encode(data.body, data.bodyType ?? \"data\"),\n };\n } else {\n let bodyType: BodyTypes = \"data\";\n if (typeof (data as EventDataInternal).getRawAmqpMessage === \"function\") {\n /*\n If the event is being round-tripped, then we respect the `bodyType` of the\n underlying AMQP message.\n */\n bodyType = (data as EventDataInternal).getRawAmqpMessage().bodyType ?? \"data\";\n }\n\n rheaMessage = {\n body: defaultDataTransformer.encode(data.body, bodyType),\n };\n // As per the AMQP 1.0 spec If the message-annotations or delivery-annotations section is omitted,\n // it is equivalent to a message-annotations section containing anempty map of annotations.\n rheaMessage.message_annotations = {};\n\n if (data.properties) {\n rheaMessage.application_properties = data.properties;\n }\n\n if (isDefined(partitionKey)) {\n rheaMessage.message_annotations[Constants.partitionKey] = partitionKey;\n // Event Hub service cannot route messages to a specific partition based on the partition key\n // if AMQP message header is an empty object. Hence we make sure that header is always present\n // with atleast one property. Setting durable to true, helps us achieve that.\n rheaMessage.durable = true;\n }\n\n if (data.contentType != null) {\n rheaMessage.content_type = data.contentType;\n }\n if (data.correlationId != null) {\n rheaMessage.correlation_id = data.correlationId;\n }\n if (data.messageId != null) {\n if (\n typeof data.messageId === \"string\" &&\n data.messageId.length > Constants.maxMessageIdLength\n ) {\n throw new Error(\n `Length of 'messageId' property on the event cannot be greater than ${Constants.maxMessageIdLength} characters.`,\n );\n }\n rheaMessage.message_id = data.messageId;\n }\n }\n\n return rheaMessage;\n}\n\n/**\n * The interface that describes the data to be sent to Event Hub.\n * Use this as a reference when creating the object to be sent when using the `EventHubProducerClient`.\n * For example, `{ body: \"your-data\" }` or\n * ```\n * {\n * body: \"your-data\",\n * properties: {\n * propertyName: \"property value\"\n * }\n * }\n * ```\n */\nexport interface EventData {\n /**\n * The message body that needs to be sent.\n * If the application reading the events is not using this SDK,\n * convert your body payload to a byte array or Buffer for better\n * cross-language compatibility.\n */\n body: any;\n\n /**\n * The content type of the message. Optionally describes\n * the payload of the message, with a descriptor following the format of RFC2045, Section 5, for\n * example \"application/json\".\n */\n contentType?: string;\n\n /**\n * The correlation identifier that allows an\n * application to specify a context for the message for the purposes of correlation, for example\n * reflecting the MessageId of a message that is being replied to.\n */\n correlationId?: string | number | Buffer;\n\n /**\n * The message identifier is an\n * application-defined value that uniquely identifies the message and its payload.\n *\n * Note: Numbers that are not whole integers are not allowed.\n */\n messageId?: string | number | Buffer;\n\n /**\n * Set of key value pairs that can be used to set properties specific to user application.\n */\n properties?: {\n [key: string]: any;\n };\n}\n\n/**\n * The interface that describes the structure of the event received from Event Hub.\n * Use this as a reference when creating the `processEvents` function to process the events\n * recieved from an Event Hub when using the `EventHubConsumerClient`.\n */\nexport interface ReceivedEventData {\n /**\n * The message body that needs to be sent or is received.\n */\n body: any;\n /**\n * The application specific properties.\n */\n properties?: {\n [key: string]: any;\n };\n /**\n * The enqueued time of the event.\n */\n enqueuedTimeUtc: Date;\n /**\n * When specified Event Hub will hash this to a partitionId.\n * It guarantees that messages end up in a specific partition on the event hub.\n */\n partitionKey: string | null;\n /**\n * The offset of the event.\n */\n offset: string;\n /**\n * The sequence number of the event.\n */\n sequenceNumber: number;\n /**\n * The properties set by the service.\n */\n systemProperties?: {\n [key: string]: any;\n };\n\n /**\n * The content type of the message. Optionally describes\n * the payload of the message, with a descriptor following the format of RFC2045, Section 5, for\n * example \"application/json\".\n */\n contentType?: string;\n\n /**\n * The correlation identifier that allows an\n * application to specify a context for the message for the purposes of correlation, for example\n * reflecting the MessageId of a message that is being replied to.\n */\n correlationId?: string | number | Buffer;\n\n /**\n * The message identifier is an\n * application-defined value that uniquely identifies the message and its payload.\n */\n messageId?: string | number | Buffer;\n\n /**\n * Returns the underlying raw amqp message.\n */\n getRawAmqpMessage(): AmqpAnnotatedMessage;\n}\n\n/**\n * @internal\n */\nexport function isAmqpAnnotatedMessage(possible: unknown): possible is AmqpAnnotatedMessage {\n return (\n isObjectWithProperties(possible, [\"body\", \"bodyType\"]) &&\n !objectHasProperty(possible, \"getRawAmqpMessage\")\n );\n}\n\n/**\n * Converts any Date objects into a number representing date.getTime().\n * Recursively checks for any Date objects in arrays and objects.\n * @internal\n */\nfunction convertDatesToNumbers<T = unknown>(thing: T): T {\n // fast exit\n if (!isDefined(thing)) return thing;\n\n // When 'thing' is a Date, return the number representation\n if (\n typeof thing === \"object\" &&\n objectHasProperty(thing, \"getTime\") &&\n typeof thing.getTime === \"function\"\n ) {\n return thing.getTime();\n }\n\n /*\n Examples:\n [0, 'foo', new Date(), { nested: new Date()}]\n */\n if (Array.isArray(thing)) {\n return thing.map(convertDatesToNumbers) as unknown as T;\n }\n\n /*\n Examples:\n { foo: new Date(), children: { nested: new Date() }}\n */\n if (typeof thing === \"object\" && isDefined<object>(thing)) {\n const thingShallowCopy = { ...thing };\n for (const key of Object.keys(thingShallowCopy)) {\n (thingShallowCopy as any)[key] = convertDatesToNumbers((thingShallowCopy as any)[key]);\n }\n return thingShallowCopy;\n }\n\n return thing;\n}\n\n/**\n * @internal\n */\nexport interface PopulateIdempotentMessageAnnotationsParameters {\n isIdempotentPublishingEnabled: boolean;\n ownerLevel?: number;\n producerGroupId?: number;\n publishSequenceNumber?: number;\n}\n\n/**\n * Populates a rhea message with idempotent producer properties.\n * @internal\n */\nexport function populateIdempotentMessageAnnotations(\n rheaMessage: RheaMessage,\n {\n isIdempotentPublishingEnabled,\n ownerLevel,\n producerGroupId,\n publishSequenceNumber,\n }: PopulateIdempotentMessageAnnotationsParameters,\n): void {\n if (!isIdempotentPublishingEnabled) {\n return;\n }\n\n const messageAnnotations = rheaMessage.message_annotations || {};\n if (!rheaMessage.message_annotations) {\n rheaMessage.message_annotations = messageAnnotations;\n }\n\n if (isDefined(ownerLevel)) {\n messageAnnotations[idempotentProducerAmqpPropertyNames.epoch] = types.wrap_short(ownerLevel);\n }\n if (isDefined(producerGroupId)) {\n messageAnnotations[idempotentProducerAmqpPropertyNames.producerId] =\n types.wrap_long(producerGroupId);\n }\n if (isDefined(publishSequenceNumber)) {\n messageAnnotations[idempotentProducerAmqpPropertyNames.producerSequenceNumber] =\n types.wrap_int(publishSequenceNumber);\n }\n}\n"]}
@@ -0,0 +1,69 @@
1
+ import { EventData } from "./eventData.js";
2
+ /**
3
+ * A message with payload and content type fields
4
+ *
5
+ * This interface is hidden because it is already exported by `@azure/schema-registry-avro`
6
+ *
7
+ * @hidden
8
+ */
9
+ export interface MessageContent {
10
+ /**
11
+ * The message's binary data
12
+ */
13
+ data: Uint8Array;
14
+ /**
15
+ * The message's content type
16
+ */
17
+ contentType: string;
18
+ }
19
+ /**
20
+ * A message adapter interface that specifies methods for producing and consuming
21
+ * messages with payloads and content type fields.
22
+ *
23
+ * This interface is hidden because it is already exported by `@azure/schema-registry-avro`
24
+ *
25
+ * @hidden
26
+ */
27
+ export interface MessageAdapter<MessageT> {
28
+ /**
29
+ * defines how to create a message from a payload and a content type
30
+ */
31
+ produce: (MessageContent: MessageContent) => MessageT;
32
+ /**
33
+ * defines how to access the payload and the content type of a message
34
+ */
35
+ consume: (message: MessageT) => MessageContent;
36
+ }
37
+ /**
38
+ * Parameters to the `createEventDataAdapter` function that creates an event data adapter.
39
+ */
40
+ export interface EventDataAdapterParameters {
41
+ /**
42
+ * The correlation identifier that allows an
43
+ * application to specify a context for the message for the purposes of correlation, for example
44
+ * reflecting the MessageId of a message that is being replied to.
45
+ */
46
+ correlationId?: string | number | Buffer;
47
+ /**
48
+ * The message identifier is an
49
+ * application-defined value that uniquely identifies the message and its payload.
50
+ *
51
+ * Note: Numbers that are not whole integers are not allowed.
52
+ */
53
+ messageId?: string | number | Buffer;
54
+ /**
55
+ * Set of key value pairs that can be used to set properties specific to user application.
56
+ */
57
+ properties?: {
58
+ [key: string]: any;
59
+ };
60
+ }
61
+ /**
62
+ * A function that constructs an event data adapter. That adapter can be used
63
+ * with `@azure/schema-registry-avro` to encode and decode body in event data.
64
+ *
65
+ * @param params - parameters to create the event data
66
+ * @returns An event data adapter that can produce and consume event data
67
+ */
68
+ export declare function createEventDataAdapter(params?: EventDataAdapterParameters): MessageAdapter<EventData>;
69
+ //# sourceMappingURL=eventDataAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventDataAdapter.d.ts","sourceRoot":"","sources":["../../src/eventDataAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC;;OAEG;IACH,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,QAAQ,CAAC;IACtD;;OAEG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,cAAc,CAAC;CAChD;AAGD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAEzC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAErC;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,0BAA+B,GACtC,cAAc,CAAC,SAAS,CAAC,CA2B3B"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.createEventDataAdapter = createEventDataAdapter;
6
+ /**
7
+ * A function that constructs an event data adapter. That adapter can be used
8
+ * with `@azure/schema-registry-avro` to encode and decode body in event data.
9
+ *
10
+ * @param params - parameters to create the event data
11
+ * @returns An event data adapter that can produce and consume event data
12
+ */
13
+ function createEventDataAdapter(params = {}) {
14
+ return {
15
+ produce: ({ data: body, contentType }) => {
16
+ return Object.assign(Object.assign({}, params), { body,
17
+ contentType });
18
+ },
19
+ consume: (message) => {
20
+ const { body, contentType } = message;
21
+ if (body === undefined) {
22
+ throw new Error("Expected the body field to be defined");
23
+ }
24
+ if (contentType === undefined) {
25
+ throw new Error("Expected the contentType field to be defined");
26
+ }
27
+ return {
28
+ /**
29
+ * If the raw response was parsed as JSON, we need to convert it to a Uint8Array,
30
+ * otherwise, leave the payload as is.
31
+ */
32
+ data: typeof body === "object" ? Uint8Array.from(Object.values(body)) : body,
33
+ contentType,
34
+ };
35
+ },
36
+ };
37
+ }
38
+ //# sourceMappingURL=eventDataAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventDataAdapter.js","sourceRoot":"","sources":["../../src/eventDataAdapter.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AA4ElC,wDA6BC;AApCD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,SAAqC,EAAE;IAEvC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAkB,EAAE,EAAE;YACvD,uCACK,MAAM,KACT,IAAI;gBACJ,WAAW,IACX;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,OAAkB,EAAkB,EAAE;YAC9C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;YACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,OAAO;gBACL;;;mBAGG;gBACH,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC5E,WAAW;aACZ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { EventData } from \"./eventData.js\";\n\n/**\n * A message with payload and content type fields\n *\n * This interface is hidden because it is already exported by `@azure/schema-registry-avro`\n *\n * @hidden\n */\nexport interface MessageContent {\n /**\n * The message's binary data\n */\n data: Uint8Array;\n /**\n * The message's content type\n */\n contentType: string;\n}\n\n/**\n * A message adapter interface that specifies methods for producing and consuming\n * messages with payloads and content type fields.\n *\n * This interface is hidden because it is already exported by `@azure/schema-registry-avro`\n *\n * @hidden\n */\nexport interface MessageAdapter<MessageT> {\n /**\n * defines how to create a message from a payload and a content type\n */\n produce: (MessageContent: MessageContent) => MessageT;\n /**\n * defines how to access the payload and the content type of a message\n */\n consume: (message: MessageT) => MessageContent;\n}\n\n// This type should always be equivalent to Omit<Omit<EventData, \"body\">, \"contentType\">\n/**\n * Parameters to the `createEventDataAdapter` function that creates an event data adapter.\n */\nexport interface EventDataAdapterParameters {\n /**\n * The correlation identifier that allows an\n * application to specify a context for the message for the purposes of correlation, for example\n * reflecting the MessageId of a message that is being replied to.\n */\n correlationId?: string | number | Buffer;\n\n /**\n * The message identifier is an\n * application-defined value that uniquely identifies the message and its payload.\n *\n * Note: Numbers that are not whole integers are not allowed.\n */\n messageId?: string | number | Buffer;\n\n /**\n * Set of key value pairs that can be used to set properties specific to user application.\n */\n properties?: {\n [key: string]: any;\n };\n}\n\n/**\n * A function that constructs an event data adapter. That adapter can be used\n * with `@azure/schema-registry-avro` to encode and decode body in event data.\n *\n * @param params - parameters to create the event data\n * @returns An event data adapter that can produce and consume event data\n */\nexport function createEventDataAdapter(\n params: EventDataAdapterParameters = {},\n): MessageAdapter<EventData> {\n return {\n produce: ({ data: body, contentType }: MessageContent) => {\n return {\n ...params,\n body,\n contentType,\n };\n },\n consume: (message: EventData): MessageContent => {\n const { body, contentType } = message;\n if (body === undefined) {\n throw new Error(\"Expected the body field to be defined\");\n }\n if (contentType === undefined) {\n throw new Error(\"Expected the contentType field to be defined\");\n }\n return {\n /**\n * If the raw response was parsed as JSON, we need to convert it to a Uint8Array,\n * otherwise, leave the payload as is.\n */\n data: typeof body === \"object\" ? Uint8Array.from(Object.values(body)) : body,\n contentType,\n };\n },\n };\n}\n"]}
@@ -0,0 +1,225 @@
1
+ import { AmqpAnnotatedMessage } from "@azure/core-amqp";
2
+ import { EventData } from "./eventData.js";
3
+ import { ConnectionContext } from "./connectionContext.js";
4
+ import { OperationTracingOptions, TracingContext } from "@azure/core-tracing";
5
+ import { PartitionPublishingProperties } from "./models/private.js";
6
+ /**
7
+ * Checks if the provided eventDataBatch is an instance of `EventDataBatch`.
8
+ * @param eventDataBatch - The instance of `EventDataBatch` to verify.
9
+ * @internal
10
+ */
11
+ export declare function isEventDataBatch(eventDataBatch: unknown): eventDataBatch is EventDataBatch;
12
+ /**
13
+ * Options to configure the behavior of the `tryAdd` method on the `EventDataBatch` class.
14
+ */
15
+ export interface TryAddOptions {
16
+ /**
17
+ * The options to use when creating Spans for tracing.
18
+ */
19
+ tracingOptions?: OperationTracingOptions;
20
+ }
21
+ /**
22
+ * An interface representing a batch of events which can be used to send events to Event Hub.
23
+ *
24
+ * To create the batch, use the `createBatch()` method on the `EventHubProducerClient`.
25
+ * To send the batch, use the `sendBatch()` method on the same client.
26
+ * To fill the batch, use the `tryAdd()` method on the batch itself.
27
+ *
28
+ */
29
+ export interface EventDataBatch {
30
+ /**
31
+ * A value that is hashed and used by the Azure Event Hubs service to determine the partition to
32
+ * which the events are sent. Use the `createBatch()` method on the `EventHubProducerClient` to
33
+ * set the partitionKey.
34
+ * @readonly
35
+ * @internal
36
+ */
37
+ readonly partitionKey?: string;
38
+ /**
39
+ * Id of the partition to which the batch of events are sent. Use the `createBatch()` method on
40
+ * the `EventHubProducerClient` to set the partitionId.
41
+ * @readonly
42
+ * @internal
43
+ */
44
+ readonly partitionId?: string;
45
+ /**
46
+ * Size of the batch in bytes after the events added to it have been encoded into a single AMQP
47
+ * message.
48
+ * @readonly
49
+ */
50
+ readonly sizeInBytes: number;
51
+ /**
52
+ * Number of events added to the batch.
53
+ * @readonly
54
+ */
55
+ readonly count: number;
56
+ /**
57
+ * The maximum size of the batch, in bytes. The `tryAdd` function on the batch will return `false`
58
+ * if the event being added causes the size of the batch to exceed this limit. Use the `createBatch()` method on
59
+ * the `EventHubProducerClient` to set the maxSizeInBytes.
60
+ * @readonly
61
+ */
62
+ readonly maxSizeInBytes: number;
63
+ /**
64
+ * Adds an event to the batch if permitted by the batch's size limit.
65
+ * **NOTE**: Always remember to check the return value of this method, before calling it again
66
+ * for the next event.
67
+ *
68
+ * @param eventData - An individual event data object or AmqpAnnotatedMessage.
69
+ * @returns A boolean value indicating if the event data has been added to the batch or not.
70
+ */
71
+ tryAdd(eventData: EventData | AmqpAnnotatedMessage, options?: TryAddOptions): boolean;
72
+ }
73
+ /**
74
+ * An internal class representing a batch of events which can be used to send events to Event Hub.
75
+ *
76
+ * @internal
77
+ */
78
+ export declare class EventDataBatchImpl implements EventDataBatch {
79
+ /**
80
+ * Describes the amqp connection context for the Client.
81
+ */
82
+ private _context;
83
+ /**
84
+ * The Id of the partition to which the batch is expected to be sent to.
85
+ * Specifying this will throw an error if the batch was created using a `partitionKey`.
86
+ */
87
+ private _partitionId?;
88
+ /**
89
+ * A value that is hashed to produce a partition assignment.
90
+ * It guarantees that messages with the same partitionKey end up in the same partition.
91
+ * Specifying this will throw an error if the batch was created using a `partitionId`.
92
+ */
93
+ private _partitionKey?;
94
+ /**
95
+ * The maximum size allowed for the batch.
96
+ */
97
+ private _maxSizeInBytes;
98
+ /**
99
+ * Current size of the batch in bytes.
100
+ */
101
+ private _sizeInBytes;
102
+ /**
103
+ * Encoded amqp messages.
104
+ */
105
+ private _encodedMessages;
106
+ /**
107
+ * Number of events in the batch.
108
+ */
109
+ private _count;
110
+ /**
111
+ * List of 'message' span contexts.
112
+ */
113
+ private _spanContexts;
114
+ /**
115
+ * The message annotations to apply on the batch envelope.
116
+ * This will reflect the message annotations on the first event
117
+ * that was added to the batch.
118
+ * A common annotation is the partition key.
119
+ */
120
+ private _batchAnnotations?;
121
+ /**
122
+ * Indicates that the batch should be treated as idempotent.
123
+ */
124
+ private _isIdempotent;
125
+ /**
126
+ * The sequence number assigned to the first event in the batch while
127
+ * the batch is being sent to the service.
128
+ */
129
+ private _pendingStartingSequenceNumber?;
130
+ /**
131
+ * The publishing sequence number assigned to the first event in the batch at the time
132
+ * the batch was successfully published.
133
+ * If the producer was not configured to apply sequence numbering or if the batch
134
+ * has not yet been successfully published, the value will be `undefined`.
135
+ */
136
+ private _startingPublishSequenceNumber?;
137
+ /**
138
+ * EventDataBatch should not be constructed using `new EventDataBatch()`
139
+ * Use the `createBatch()` method on your `EventHubProducer` instead.
140
+ * @internal
141
+ */
142
+ constructor(context: ConnectionContext, maxSizeInBytes: number, isIdempotent: boolean, partitionKey?: string, partitionId?: string);
143
+ /**
144
+ * The maximum size of the batch, in bytes.
145
+ * @readonly
146
+ */
147
+ get maxSizeInBytes(): number;
148
+ /**
149
+ * The partitionKey set during `EventDataBatch` creation. This value is hashed to
150
+ * produce a partition assignment when the producer is created without a `partitionId`
151
+ * @readonly
152
+ */
153
+ get partitionKey(): string | undefined;
154
+ /**
155
+ * The partitionId set during `EventDataBatch` creation.
156
+ * If this value is set then partitionKey can not be set.
157
+ * @readonly
158
+ */
159
+ get partitionId(): string | undefined;
160
+ /**
161
+ * Size of the `EventDataBatch` instance after the events added to it have been
162
+ * encoded into a single AMQP message.
163
+ * @readonly
164
+ */
165
+ get sizeInBytes(): number;
166
+ /**
167
+ * Number of events in the `EventDataBatch` instance.
168
+ * @readonly
169
+ */
170
+ get count(): number;
171
+ /**
172
+ * The publishing sequence number assigned to the first event in the batch at the time
173
+ * the batch was successfully published.
174
+ * If the producer was not configured to apply sequence numbering or if the batch
175
+ * has not yet been successfully published, the value will be `undefined`.
176
+ */
177
+ get startingPublishedSequenceNumber(): number | undefined;
178
+ /**
179
+ * Gets the "message" span contexts that were created when adding events to the batch.
180
+ * @internal
181
+ */
182
+ get _messageSpanContexts(): TracingContext[];
183
+ /**
184
+ * Generates an AMQP message that contains the provided encoded events and annotations.
185
+ * @param encodedEvents - The already encoded events to include in the AMQP batch.
186
+ * @param annotations - The message annotations to set on the batch.
187
+ * @param publishingProps - Idempotent publishing properties used to decorate the events in the batch while sending.
188
+ */
189
+ private _generateBatch;
190
+ /**
191
+ * Uses the publishingProps to add idempotent properties as message annotations to rhea messages.
192
+ */
193
+ private _decorateRheaMessagesWithPublishingProps;
194
+ /**
195
+ * Annotates a rhea message with placeholder idempotent properties if the batch is idempotent.
196
+ * This is necessary so that we can accurately calculate the size of the batch while adding events.
197
+ * Placeholder values are used because real values won't be known until we attempt to send the batch.
198
+ */
199
+ private _decorateRheaMessageWithPlaceholderIdempotencyProps;
200
+ /**
201
+ * Generates the single AMQP message which is the result of encoding all the events
202
+ * added into the `EventDataBatch` instance.
203
+ *
204
+ * This is not meant for the user to use directly.
205
+ *
206
+ * When the `EventDataBatch` instance is passed to the `send()` method on the `EventHubProducer`,
207
+ * this single batched AMQP message is what gets sent over the wire to the service.
208
+ * @readonly
209
+ */
210
+ _generateMessage(publishingProps?: PartitionPublishingProperties): Buffer;
211
+ /**
212
+ * Sets startingPublishSequenceNumber to the pending publish sequence number.
213
+ */
214
+ _commitPublish(): void;
215
+ /**
216
+ * Tries to add an event data to the batch if permitted by the batch's size limit.
217
+ * **NOTE**: Always remember to check the return value of this method, before calling it again
218
+ * for the next event.
219
+ *
220
+ * @param eventData - An individual event data object.
221
+ * @returns A boolean value indicating if the event data has been added to the batch or not.
222
+ */
223
+ tryAdd(eventData: EventData | AmqpAnnotatedMessage, options?: TryAddOptions): boolean;
224
+ }
225
+ //# sourceMappingURL=eventDataBatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventDataBatch.d.ts","sourceRoot":"","sources":["../../src/eventDataBatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.EventDataBatchImpl = void 0;
6
+ exports.isEventDataBatch = isEventDataBatch;
7
+ const eventData_js_1 = require("./eventData.js");
8
+ const rhea_promise_1 = require("rhea-promise");
9
+ const core_util_1 = require("@azure/core-util");
10
+ const instrumentEventData_js_1 = require("./diagnostics/instrumentEventData.js");
11
+ const error_js_1 = require("./util/error.js");
12
+ /**
13
+ * The amount of bytes to reserve as overhead for a small message.
14
+ */
15
+ const smallMessageOverhead = 5;
16
+ /**
17
+ * The amount of bytes to reserve as overhead for a large message.
18
+ */
19
+ const largeMessageOverhead = 8;
20
+ /**
21
+ * The maximum number of bytes that a message may be to be considered small.
22
+ */
23
+ const smallMessageMaxBytes = 255;
24
+ /**
25
+ * Checks if the provided eventDataBatch is an instance of `EventDataBatch`.
26
+ * @param eventDataBatch - The instance of `EventDataBatch` to verify.
27
+ * @internal
28
+ */
29
+ function isEventDataBatch(eventDataBatch) {
30
+ return ((0, core_util_1.isObjectWithProperties)(eventDataBatch, ["count", "sizeInBytes", "tryAdd"]) &&
31
+ typeof eventDataBatch.tryAdd === "function" &&
32
+ typeof eventDataBatch.count === "number" &&
33
+ typeof eventDataBatch.sizeInBytes === "number");
34
+ }
35
+ /**
36
+ * An internal class representing a batch of events which can be used to send events to Event Hub.
37
+ *
38
+ * @internal
39
+ */
40
+ class EventDataBatchImpl {
41
+ /**
42
+ * EventDataBatch should not be constructed using `new EventDataBatch()`
43
+ * Use the `createBatch()` method on your `EventHubProducer` instead.
44
+ * @internal
45
+ */
46
+ constructor(context, maxSizeInBytes, isIdempotent, partitionKey, partitionId) {
47
+ /**
48
+ * Encoded amqp messages.
49
+ */
50
+ this._encodedMessages = [];
51
+ /**
52
+ * List of 'message' span contexts.
53
+ */
54
+ this._spanContexts = [];
55
+ this._context = context;
56
+ this._maxSizeInBytes = maxSizeInBytes;
57
+ this._isIdempotent = isIdempotent;
58
+ this._partitionKey = (0, core_util_1.isDefined)(partitionKey) ? String(partitionKey) : partitionKey;
59
+ this._partitionId = (0, core_util_1.isDefined)(partitionId) ? String(partitionId) : partitionId;
60
+ this._sizeInBytes = 0;
61
+ this._count = 0;
62
+ }
63
+ /**
64
+ * The maximum size of the batch, in bytes.
65
+ * @readonly
66
+ */
67
+ get maxSizeInBytes() {
68
+ return this._maxSizeInBytes;
69
+ }
70
+ /**
71
+ * The partitionKey set during `EventDataBatch` creation. This value is hashed to
72
+ * produce a partition assignment when the producer is created without a `partitionId`
73
+ * @readonly
74
+ */
75
+ get partitionKey() {
76
+ return this._partitionKey;
77
+ }
78
+ /**
79
+ * The partitionId set during `EventDataBatch` creation.
80
+ * If this value is set then partitionKey can not be set.
81
+ * @readonly
82
+ */
83
+ get partitionId() {
84
+ return this._partitionId;
85
+ }
86
+ /**
87
+ * Size of the `EventDataBatch` instance after the events added to it have been
88
+ * encoded into a single AMQP message.
89
+ * @readonly
90
+ */
91
+ get sizeInBytes() {
92
+ return this._sizeInBytes;
93
+ }
94
+ /**
95
+ * Number of events in the `EventDataBatch` instance.
96
+ * @readonly
97
+ */
98
+ get count() {
99
+ return this._count;
100
+ }
101
+ /**
102
+ * The publishing sequence number assigned to the first event in the batch at the time
103
+ * the batch was successfully published.
104
+ * If the producer was not configured to apply sequence numbering or if the batch
105
+ * has not yet been successfully published, the value will be `undefined`.
106
+ */
107
+ get startingPublishedSequenceNumber() {
108
+ return this._startingPublishSequenceNumber;
109
+ }
110
+ /**
111
+ * Gets the "message" span contexts that were created when adding events to the batch.
112
+ * @internal
113
+ */
114
+ get _messageSpanContexts() {
115
+ return this._spanContexts;
116
+ }
117
+ /**
118
+ * Generates an AMQP message that contains the provided encoded events and annotations.
119
+ * @param encodedEvents - The already encoded events to include in the AMQP batch.
120
+ * @param annotations - The message annotations to set on the batch.
121
+ * @param publishingProps - Idempotent publishing properties used to decorate the events in the batch while sending.
122
+ */
123
+ _generateBatch(encodedEvents, annotations, publishingProps) {
124
+ if (this._isIdempotent && publishingProps) {
125
+ // We need to decode the encoded events, add the idempotent annotations, and re-encode them.
126
+ // We can't lazily encode the events because we rely on `message.encode` to capture the
127
+ // byte length of anything not in `event.body`.
128
+ // Events can't be decorated ahead of time because the publishing properties aren't known
129
+ // until the events are being sent to the service.
130
+ const decodedEvents = encodedEvents.map(rhea_promise_1.message.decode);
131
+ const decoratedEvents = this._decorateRheaMessagesWithPublishingProps(decodedEvents, publishingProps);
132
+ encodedEvents = decoratedEvents.map(rhea_promise_1.message.encode);
133
+ }
134
+ const batchEnvelope = {
135
+ body: rhea_promise_1.message.data_sections(encodedEvents),
136
+ };
137
+ if (annotations) {
138
+ batchEnvelope.message_annotations = annotations;
139
+ }
140
+ return rhea_promise_1.message.encode(batchEnvelope);
141
+ }
142
+ /**
143
+ * Uses the publishingProps to add idempotent properties as message annotations to rhea messages.
144
+ */
145
+ _decorateRheaMessagesWithPublishingProps(events, publishingProps) {
146
+ if (!this._isIdempotent) {
147
+ return events;
148
+ }
149
+ const { lastPublishedSequenceNumber = 0, ownerLevel, producerGroupId } = publishingProps;
150
+ const startingSequenceNumber = lastPublishedSequenceNumber + 1;
151
+ for (let i = 0; i < events.length; i++) {
152
+ const event = events[i];
153
+ (0, eventData_js_1.populateIdempotentMessageAnnotations)(event, {
154
+ isIdempotentPublishingEnabled: this._isIdempotent,
155
+ ownerLevel,
156
+ producerGroupId,
157
+ publishSequenceNumber: startingSequenceNumber + i,
158
+ });
159
+ }
160
+ this._pendingStartingSequenceNumber = startingSequenceNumber;
161
+ return events;
162
+ }
163
+ /**
164
+ * Annotates a rhea message with placeholder idempotent properties if the batch is idempotent.
165
+ * This is necessary so that we can accurately calculate the size of the batch while adding events.
166
+ * Placeholder values are used because real values won't be known until we attempt to send the batch.
167
+ */
168
+ _decorateRheaMessageWithPlaceholderIdempotencyProps(event) {
169
+ if (!this._isIdempotent) {
170
+ return event;
171
+ }
172
+ if (!event.message_annotations) {
173
+ event.message_annotations = {};
174
+ }
175
+ // Set placeholder values for these annotations.
176
+ (0, eventData_js_1.populateIdempotentMessageAnnotations)(event, {
177
+ isIdempotentPublishingEnabled: this._isIdempotent,
178
+ ownerLevel: 0,
179
+ publishSequenceNumber: 0,
180
+ producerGroupId: 0,
181
+ });
182
+ return event;
183
+ }
184
+ /**
185
+ * Generates the single AMQP message which is the result of encoding all the events
186
+ * added into the `EventDataBatch` instance.
187
+ *
188
+ * This is not meant for the user to use directly.
189
+ *
190
+ * When the `EventDataBatch` instance is passed to the `send()` method on the `EventHubProducer`,
191
+ * this single batched AMQP message is what gets sent over the wire to the service.
192
+ * @readonly
193
+ */
194
+ _generateMessage(publishingProps) {
195
+ return this._generateBatch(this._encodedMessages, this._batchAnnotations, publishingProps);
196
+ }
197
+ /**
198
+ * Sets startingPublishSequenceNumber to the pending publish sequence number.
199
+ */
200
+ _commitPublish() {
201
+ this._startingPublishSequenceNumber = this._pendingStartingSequenceNumber;
202
+ }
203
+ /**
204
+ * Tries to add an event data to the batch if permitted by the batch's size limit.
205
+ * **NOTE**: Always remember to check the return value of this method, before calling it again
206
+ * for the next event.
207
+ *
208
+ * @param eventData - An individual event data object.
209
+ * @returns A boolean value indicating if the event data has been added to the batch or not.
210
+ */
211
+ tryAdd(eventData, options = {}) {
212
+ (0, error_js_1.throwTypeErrorIfParameterMissing)(this._context.connectionId, "tryAdd", "eventData", eventData);
213
+ const { entityPath, host } = this._context.config;
214
+ const { event: instrumentedEvent, spanContext } = (0, instrumentEventData_js_1.instrumentEventData)(eventData, options, entityPath, host);
215
+ // Convert EventData to RheaMessage.
216
+ const amqpMessage = (0, eventData_js_1.toRheaMessage)(instrumentedEvent, this._partitionKey);
217
+ const originalAnnotations = amqpMessage.message_annotations && Object.assign({}, amqpMessage.message_annotations);
218
+ this._decorateRheaMessageWithPlaceholderIdempotencyProps(amqpMessage);
219
+ const encodedMessage = rhea_promise_1.message.encode(amqpMessage);
220
+ let currentSize = this._sizeInBytes;
221
+ // The first time an event is added, we need to calculate
222
+ // the overhead of creating an AMQP batch, including the
223
+ // message_annotations that are taken from the 1st message.
224
+ if (this.count === 0) {
225
+ if (originalAnnotations) {
226
+ this._batchAnnotations = originalAnnotations;
227
+ }
228
+ // Figure out the overhead of creating a batch by generating an empty batch
229
+ // with the expected batch annotations.
230
+ currentSize += this._generateBatch([], this._batchAnnotations).length;
231
+ }
232
+ const messageSize = encodedMessage.length;
233
+ const messageOverhead = messageSize <= smallMessageMaxBytes ? smallMessageOverhead : largeMessageOverhead;
234
+ currentSize += messageSize + messageOverhead;
235
+ // Check if the size of the batch exceeds the maximum allowed size
236
+ // once we add the new event to it.
237
+ if (currentSize > this._maxSizeInBytes) {
238
+ return false;
239
+ }
240
+ // The event will fit in the batch, so it is now safe to store it.
241
+ this._encodedMessages.push(encodedMessage);
242
+ if (spanContext) {
243
+ this._spanContexts.push(spanContext);
244
+ }
245
+ this._sizeInBytes = currentSize;
246
+ this._count++;
247
+ return true;
248
+ }
249
+ }
250
+ exports.EventDataBatchImpl = EventDataBatchImpl;
251
+ //# sourceMappingURL=eventDataBatch.js.map