@azure/service-bus 7.10.0-beta.1 → 7.10.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (848) hide show
  1. package/README.md +114 -57
  2. package/dist/browser/connectionContext.d.ts +109 -0
  3. package/dist/browser/connectionContext.d.ts.map +1 -0
  4. package/{dist-esm/src → dist/browser}/connectionContext.js +9 -9
  5. package/dist/browser/connectionContext.js.map +1 -0
  6. package/dist/browser/constructorHelpers.d.ts +79 -0
  7. package/dist/browser/constructorHelpers.d.ts.map +1 -0
  8. package/{dist-esm/src → dist/browser}/constructorHelpers.js +5 -5
  9. package/dist/browser/constructorHelpers.js.map +1 -0
  10. package/dist/browser/core/autoLockRenewer.d.ts +58 -0
  11. package/dist/browser/core/autoLockRenewer.d.ts.map +1 -0
  12. package/{dist-esm/src → dist/browser}/core/autoLockRenewer.js +12 -8
  13. package/dist/browser/core/autoLockRenewer.js.map +1 -0
  14. package/dist/browser/core/batchingReceiver.d.ts +120 -0
  15. package/dist/browser/core/batchingReceiver.d.ts.map +1 -0
  16. package/{dist-esm/src → dist/browser}/core/batchingReceiver.js +23 -13
  17. package/dist/browser/core/batchingReceiver.js.map +1 -0
  18. package/dist/browser/core/linkEntity.d.ts +192 -0
  19. package/dist/browser/core/linkEntity.d.ts.map +1 -0
  20. package/{dist-esm/src → dist/browser}/core/linkEntity.js +77 -14
  21. package/dist/browser/core/linkEntity.js.map +1 -0
  22. package/dist/browser/core/managementClient.d.ts +312 -0
  23. package/dist/browser/core/managementClient.d.ts.map +1 -0
  24. package/{dist-esm/src → dist/browser}/core/managementClient.js +37 -33
  25. package/dist/browser/core/managementClient.js.map +1 -0
  26. package/dist/browser/core/messageReceiver.d.ts +147 -0
  27. package/dist/browser/core/messageReceiver.d.ts.map +1 -0
  28. package/{dist-esm/src → dist/browser}/core/messageReceiver.js +36 -14
  29. package/dist/browser/core/messageReceiver.js.map +1 -0
  30. package/dist/browser/core/messageSender.d.ts +93 -0
  31. package/dist/browser/core/messageSender.d.ts.map +1 -0
  32. package/{dist-esm/src → dist/browser}/core/messageSender.js +36 -12
  33. package/dist/browser/core/messageSender.js.map +1 -0
  34. package/dist/browser/core/receiverHelper.d.ts +45 -0
  35. package/dist/browser/core/receiverHelper.d.ts.map +1 -0
  36. package/{dist-esm/src → dist/browser}/core/receiverHelper.js +6 -5
  37. package/dist/browser/core/receiverHelper.js.map +1 -0
  38. package/dist/browser/core/shared.d.ts +34 -0
  39. package/dist/browser/core/shared.d.ts.map +1 -0
  40. package/{dist-esm/src → dist/browser}/core/shared.js +3 -3
  41. package/dist/browser/core/shared.js.map +1 -0
  42. package/dist/browser/core/streamingReceiver.d.ts +142 -0
  43. package/dist/browser/core/streamingReceiver.d.ts.map +1 -0
  44. package/{dist-esm/src → dist/browser}/core/streamingReceiver.js +73 -36
  45. package/dist/browser/core/streamingReceiver.js.map +1 -0
  46. package/dist/browser/dataTransformer.d.ts +77 -0
  47. package/dist/browser/dataTransformer.d.ts.map +1 -0
  48. package/{dist-esm/src → dist/browser}/dataTransformer.js +2 -2
  49. package/dist/browser/dataTransformer.js.map +1 -0
  50. package/dist/browser/diagnostics/instrumentServiceBusMessage.d.ts +50 -0
  51. package/dist/browser/diagnostics/instrumentServiceBusMessage.d.ts.map +1 -0
  52. package/{dist-esm/src → dist/browser}/diagnostics/instrumentServiceBusMessage.js +2 -2
  53. package/dist/browser/diagnostics/instrumentServiceBusMessage.js.map +1 -0
  54. package/dist/browser/diagnostics/tracing.d.ts +21 -0
  55. package/dist/browser/diagnostics/tracing.d.ts.map +1 -0
  56. package/{dist-esm/src → dist/browser}/diagnostics/tracing.js +2 -2
  57. package/dist/browser/diagnostics/tracing.js.map +1 -0
  58. package/dist/browser/experimental/index.d.ts +10 -0
  59. package/dist/browser/experimental/index.d.ts.map +1 -0
  60. package/dist/browser/experimental/index.js +4 -0
  61. package/dist/browser/experimental/index.js.map +1 -0
  62. package/dist/browser/index.d.ts +26 -0
  63. package/dist/browser/index.d.ts.map +1 -0
  64. package/{dist-esm/src → dist/browser}/index.js +5 -5
  65. package/dist/browser/index.js.map +1 -0
  66. package/dist/browser/log.d.ts +70 -0
  67. package/dist/browser/log.d.ts.map +1 -0
  68. package/{dist-esm/src → dist/browser}/log.js +1 -1
  69. package/dist/browser/log.js.map +1 -0
  70. package/dist/browser/models.d.ts +328 -0
  71. package/dist/browser/models.d.ts.map +1 -0
  72. package/dist/browser/models.js +4 -0
  73. package/dist/browser/models.js.map +1 -0
  74. package/dist/browser/modelsToBeSharedWithEventHubs.d.ts +18 -0
  75. package/dist/browser/modelsToBeSharedWithEventHubs.d.ts.map +1 -0
  76. package/dist/browser/modelsToBeSharedWithEventHubs.js +4 -0
  77. package/dist/browser/modelsToBeSharedWithEventHubs.js.map +1 -0
  78. package/dist/browser/package.json +3 -0
  79. package/dist/browser/receivers/receiver.d.ts +299 -0
  80. package/dist/browser/receivers/receiver.d.ts.map +1 -0
  81. package/{dist-esm/src → dist/browser}/receivers/receiver.js +40 -22
  82. package/dist/browser/receivers/receiver.js.map +1 -0
  83. package/dist/browser/receivers/receiverCommon.d.ts +81 -0
  84. package/dist/browser/receivers/receiverCommon.d.ts.map +1 -0
  85. package/{dist-esm/src → dist/browser}/receivers/receiverCommon.js +7 -8
  86. package/dist/browser/receivers/receiverCommon.js.map +1 -0
  87. package/dist/browser/receivers/sessionReceiver.d.ts +189 -0
  88. package/dist/browser/receivers/sessionReceiver.d.ts.map +1 -0
  89. package/{dist-esm/src → dist/browser}/receivers/sessionReceiver.js +32 -24
  90. package/dist/browser/receivers/sessionReceiver.js.map +1 -0
  91. package/dist/browser/sender.d.ts +125 -0
  92. package/dist/browser/sender.d.ts.map +1 -0
  93. package/{dist-esm/src → dist/browser}/sender.js +19 -13
  94. package/dist/browser/sender.js.map +1 -0
  95. package/dist/browser/serializers/namespaceResourceSerializer.d.ts +46 -0
  96. package/dist/browser/serializers/namespaceResourceSerializer.d.ts.map +1 -0
  97. package/{dist-esm/src → dist/browser}/serializers/namespaceResourceSerializer.js +3 -3
  98. package/dist/browser/serializers/namespaceResourceSerializer.js.map +1 -0
  99. package/dist/browser/serializers/queueResourceSerializer.d.ts +461 -0
  100. package/dist/browser/serializers/queueResourceSerializer.d.ts.map +1 -0
  101. package/{dist-esm/src → dist/browser}/serializers/queueResourceSerializer.js +4 -4
  102. package/dist/browser/serializers/queueResourceSerializer.js.map +1 -0
  103. package/dist/browser/serializers/ruleResourceSerializer.d.ts +135 -0
  104. package/dist/browser/serializers/ruleResourceSerializer.d.ts.map +1 -0
  105. package/{dist-esm/src → dist/browser}/serializers/ruleResourceSerializer.js +4 -4
  106. package/dist/browser/serializers/ruleResourceSerializer.js.map +1 -0
  107. package/dist/browser/serializers/subscriptionResourceSerializer.d.ts +396 -0
  108. package/dist/browser/serializers/subscriptionResourceSerializer.d.ts.map +1 -0
  109. package/{dist-esm/src → dist/browser}/serializers/subscriptionResourceSerializer.js +5 -5
  110. package/dist/browser/serializers/subscriptionResourceSerializer.js.map +1 -0
  111. package/dist/browser/serializers/topicResourceSerializer.d.ts +335 -0
  112. package/dist/browser/serializers/topicResourceSerializer.d.ts.map +1 -0
  113. package/{dist-esm/src → dist/browser}/serializers/topicResourceSerializer.js +4 -4
  114. package/dist/browser/serializers/topicResourceSerializer.js.map +1 -0
  115. package/dist/browser/serviceBusAtomManagementClient.d.ts +652 -0
  116. package/dist/browser/serviceBusAtomManagementClient.d.ts.map +1 -0
  117. package/{dist-esm/src → dist/browser}/serviceBusAtomManagementClient.js +78 -109
  118. package/dist/browser/serviceBusAtomManagementClient.js.map +1 -0
  119. package/dist/browser/serviceBusClient.d.ts +231 -0
  120. package/dist/browser/serviceBusClient.d.ts.map +1 -0
  121. package/{dist-esm/src → dist/browser}/serviceBusClient.js +24 -11
  122. package/dist/browser/serviceBusClient.js.map +1 -0
  123. package/dist/browser/serviceBusError.d.ts +119 -0
  124. package/dist/browser/serviceBusError.d.ts.map +1 -0
  125. package/{dist-esm/src → dist/browser}/serviceBusError.js +21 -1
  126. package/dist/browser/serviceBusError.js.map +1 -0
  127. package/dist/browser/serviceBusMessage.d.ts +529 -0
  128. package/dist/browser/serviceBusMessage.d.ts.map +1 -0
  129. package/{dist-esm/src → dist/browser}/serviceBusMessage.js +193 -5
  130. package/dist/browser/serviceBusMessage.js.map +1 -0
  131. package/dist/browser/serviceBusMessageBatch.d.ts +153 -0
  132. package/dist/browser/serviceBusMessageBatch.d.ts.map +1 -0
  133. package/{dist-esm/src → dist/browser}/serviceBusMessageBatch.js +37 -13
  134. package/dist/browser/serviceBusMessageBatch.js.map +1 -0
  135. package/dist/browser/serviceBusRuleManager.d.ts +103 -0
  136. package/dist/browser/serviceBusRuleManager.d.ts.map +1 -0
  137. package/{dist-esm/src → dist/browser}/serviceBusRuleManager.js +16 -13
  138. package/dist/browser/serviceBusRuleManager.js.map +1 -0
  139. package/dist/browser/session/messageSession.d.ts +236 -0
  140. package/dist/browser/session/messageSession.d.ts.map +1 -0
  141. package/{dist-esm/src → dist/browser}/session/messageSession.js +145 -30
  142. package/dist/browser/session/messageSession.js.map +1 -0
  143. package/dist/browser/util/atomXmlHelper.d.ts +56 -0
  144. package/dist/browser/util/atomXmlHelper.d.ts.map +1 -0
  145. package/{dist-esm/src → dist/browser}/util/atomXmlHelper.js +7 -7
  146. package/dist/browser/util/atomXmlHelper.js.map +1 -0
  147. package/dist/browser/util/compat/compatibility.d.ts +109 -0
  148. package/dist/browser/util/compat/compatibility.d.ts.map +1 -0
  149. package/{dist-esm/src → dist/browser}/util/compat/compatibility.js +2 -2
  150. package/dist/browser/util/compat/compatibility.js.map +1 -0
  151. package/dist/browser/util/compat/httpHeaders.d.ts +136 -0
  152. package/dist/browser/util/compat/httpHeaders.d.ts.map +1 -0
  153. package/{dist-esm/src → dist/browser}/util/compat/httpHeaders.js +2 -1
  154. package/dist/browser/util/compat/httpHeaders.js.map +1 -0
  155. package/dist/browser/util/compat/index.d.ts +3 -0
  156. package/dist/browser/util/compat/index.d.ts.map +1 -0
  157. package/dist/browser/util/compat/index.js +5 -0
  158. package/dist/browser/util/compat/index.js.map +1 -0
  159. package/dist/browser/util/connectionStringUtils.d.ts +53 -0
  160. package/dist/browser/util/connectionStringUtils.d.ts.map +1 -0
  161. package/{dist-esm/src → dist/browser}/util/connectionStringUtils.js +8 -2
  162. package/dist/browser/util/connectionStringUtils.js.map +1 -0
  163. package/dist/browser/util/constants.d.ts +322 -0
  164. package/dist/browser/util/constants.d.ts.map +1 -0
  165. package/{dist-esm/src → dist/browser}/util/constants.js +3 -3
  166. package/{dist-esm/src → dist/browser}/util/constants.js.map +1 -1
  167. package/dist/browser/util/crypto-browser.d.mts.map +1 -0
  168. package/dist/browser/util/crypto-browser.mjs.map +1 -0
  169. package/dist/browser/util/crypto.d.ts +5 -0
  170. package/{dist-esm/src/util/crypto.browser.js → dist/browser/util/crypto.js} +2 -4
  171. package/dist/browser/util/errors.d.ts +130 -0
  172. package/dist/browser/util/errors.d.ts.map +1 -0
  173. package/{dist-esm/src → dist/browser}/util/errors.js +4 -4
  174. package/dist/browser/util/errors.js.map +1 -0
  175. package/dist/browser/util/parseUrl-browser.d.mts.map +1 -0
  176. package/dist/browser/util/parseUrl-browser.mjs.map +1 -0
  177. package/dist/browser/util/parseUrl.d.ts +5 -0
  178. package/{dist-esm/src/util/parseUrl.browser.js → dist/browser/util/parseUrl.js} +1 -3
  179. package/dist/browser/util/runtimeInfo-browser.d.mts.map +1 -0
  180. package/dist/browser/util/runtimeInfo-browser.mjs.map +1 -0
  181. package/dist/browser/util/runtimeInfo.d.ts +7 -0
  182. package/{dist-esm/src/util/runtimeInfo.browser.js → dist/browser/util/runtimeInfo.js} +2 -2
  183. package/dist/browser/util/sasServiceClientCredentials.d.ts +31 -0
  184. package/dist/browser/util/sasServiceClientCredentials.d.ts.map +1 -0
  185. package/{dist-esm/src → dist/browser}/util/sasServiceClientCredentials.js +9 -3
  186. package/dist/browser/util/sasServiceClientCredentials.js.map +1 -0
  187. package/dist/browser/util/semaphore.d.ts +38 -0
  188. package/dist/browser/util/semaphore.d.ts.map +1 -0
  189. package/{dist-esm/src → dist/browser}/util/semaphore.js +7 -3
  190. package/dist/browser/util/semaphore.js.map +1 -0
  191. package/dist/browser/util/typeGuards.d.ts +8 -0
  192. package/dist/browser/util/typeGuards.d.ts.map +1 -0
  193. package/{dist-esm/src → dist/browser}/util/typeGuards.js +2 -2
  194. package/dist/browser/util/typeGuards.js.map +1 -0
  195. package/dist/browser/util/utils.d.ts +247 -0
  196. package/dist/browser/util/utils.d.ts.map +1 -0
  197. package/{dist-esm/src → dist/browser}/util/utils.js +5 -7
  198. package/dist/browser/util/utils.js.map +1 -0
  199. package/dist/commonjs/connectionContext.d.ts +109 -0
  200. package/dist/commonjs/connectionContext.d.ts.map +1 -0
  201. package/dist/commonjs/connectionContext.js +358 -0
  202. package/dist/commonjs/connectionContext.js.map +1 -0
  203. package/dist/commonjs/constructorHelpers.d.ts +79 -0
  204. package/dist/commonjs/constructorHelpers.d.ts.map +1 -0
  205. package/dist/commonjs/constructorHelpers.js +103 -0
  206. package/dist/commonjs/constructorHelpers.js.map +1 -0
  207. package/dist/commonjs/core/autoLockRenewer.d.ts +58 -0
  208. package/dist/commonjs/core/autoLockRenewer.d.ts.map +1 -0
  209. package/dist/commonjs/core/autoLockRenewer.js +178 -0
  210. package/dist/commonjs/core/autoLockRenewer.js.map +1 -0
  211. package/dist/commonjs/core/batchingReceiver.d.ts +120 -0
  212. package/dist/commonjs/core/batchingReceiver.d.ts.map +1 -0
  213. package/dist/commonjs/core/batchingReceiver.js +405 -0
  214. package/dist/commonjs/core/batchingReceiver.js.map +1 -0
  215. package/dist/commonjs/core/linkEntity.d.ts +192 -0
  216. package/dist/commonjs/core/linkEntity.d.ts.map +1 -0
  217. package/dist/commonjs/core/linkEntity.js +344 -0
  218. package/dist/commonjs/core/linkEntity.js.map +1 -0
  219. package/dist/commonjs/core/managementClient.d.ts +312 -0
  220. package/dist/commonjs/core/managementClient.d.ts.map +1 -0
  221. package/dist/commonjs/core/managementClient.js +1078 -0
  222. package/dist/commonjs/core/managementClient.js.map +1 -0
  223. package/dist/commonjs/core/messageReceiver.d.ts +147 -0
  224. package/dist/commonjs/core/messageReceiver.d.ts.map +1 -0
  225. package/dist/commonjs/core/messageReceiver.js +169 -0
  226. package/dist/commonjs/core/messageReceiver.js.map +1 -0
  227. package/dist/commonjs/core/messageSender.d.ts +93 -0
  228. package/dist/commonjs/core/messageSender.d.ts.map +1 -0
  229. package/dist/commonjs/core/messageSender.js +307 -0
  230. package/dist/commonjs/core/messageSender.js.map +1 -0
  231. package/dist/commonjs/core/receiverHelper.d.ts +45 -0
  232. package/dist/commonjs/core/receiverHelper.d.ts.map +1 -0
  233. package/dist/commonjs/core/receiverHelper.js +123 -0
  234. package/dist/commonjs/core/receiverHelper.js.map +1 -0
  235. package/dist/commonjs/core/shared.d.ts +34 -0
  236. package/dist/commonjs/core/shared.d.ts.map +1 -0
  237. package/dist/commonjs/core/shared.js +70 -0
  238. package/dist/commonjs/core/shared.js.map +1 -0
  239. package/dist/commonjs/core/streamingReceiver.d.ts +142 -0
  240. package/dist/commonjs/core/streamingReceiver.d.ts.map +1 -0
  241. package/dist/commonjs/core/streamingReceiver.js +526 -0
  242. package/dist/commonjs/core/streamingReceiver.js.map +1 -0
  243. package/dist/commonjs/dataTransformer.d.ts +77 -0
  244. package/dist/commonjs/dataTransformer.d.ts.map +1 -0
  245. package/dist/commonjs/dataTransformer.js +169 -0
  246. package/dist/commonjs/dataTransformer.js.map +1 -0
  247. package/dist/commonjs/diagnostics/instrumentServiceBusMessage.d.ts +50 -0
  248. package/dist/commonjs/diagnostics/instrumentServiceBusMessage.d.ts.map +1 -0
  249. package/dist/commonjs/diagnostics/instrumentServiceBusMessage.js +107 -0
  250. package/dist/commonjs/diagnostics/instrumentServiceBusMessage.js.map +1 -0
  251. package/dist/commonjs/diagnostics/tracing.d.ts +21 -0
  252. package/dist/commonjs/diagnostics/tracing.d.ts.map +1 -0
  253. package/dist/commonjs/diagnostics/tracing.js +41 -0
  254. package/dist/commonjs/diagnostics/tracing.js.map +1 -0
  255. package/dist/commonjs/experimental/index.d.ts +10 -0
  256. package/dist/commonjs/experimental/index.d.ts.map +1 -0
  257. package/dist/commonjs/experimental/index.js +5 -0
  258. package/dist/commonjs/experimental/index.js.map +1 -0
  259. package/dist/commonjs/index.d.ts +26 -0
  260. package/dist/commonjs/index.d.ts.map +1 -0
  261. package/dist/commonjs/index.js +22 -0
  262. package/dist/commonjs/index.js.map +1 -0
  263. package/dist/commonjs/log.d.ts +70 -0
  264. package/dist/commonjs/log.d.ts.map +1 -0
  265. package/dist/commonjs/log.js +94 -0
  266. package/dist/commonjs/log.js.map +1 -0
  267. package/dist/commonjs/models.d.ts +328 -0
  268. package/dist/commonjs/models.d.ts.map +1 -0
  269. package/dist/commonjs/models.js +5 -0
  270. package/dist/commonjs/models.js.map +1 -0
  271. package/dist/commonjs/modelsToBeSharedWithEventHubs.d.ts +18 -0
  272. package/dist/commonjs/modelsToBeSharedWithEventHubs.d.ts.map +1 -0
  273. package/dist/commonjs/modelsToBeSharedWithEventHubs.js +5 -0
  274. package/dist/commonjs/modelsToBeSharedWithEventHubs.js.map +1 -0
  275. package/dist/commonjs/package.json +3 -0
  276. package/dist/commonjs/receivers/receiver.d.ts +299 -0
  277. package/dist/commonjs/receivers/receiver.d.ts.map +1 -0
  278. package/dist/commonjs/receivers/receiver.js +383 -0
  279. package/dist/commonjs/receivers/receiver.js.map +1 -0
  280. package/dist/commonjs/receivers/receiverCommon.d.ts +81 -0
  281. package/dist/commonjs/receivers/receiverCommon.d.ts.map +1 -0
  282. package/dist/commonjs/receivers/receiverCommon.js +269 -0
  283. package/dist/commonjs/receivers/receiverCommon.js.map +1 -0
  284. package/dist/commonjs/receivers/sessionReceiver.d.ts +189 -0
  285. package/dist/commonjs/receivers/sessionReceiver.d.ts.map +1 -0
  286. package/dist/commonjs/receivers/sessionReceiver.js +432 -0
  287. package/dist/commonjs/receivers/sessionReceiver.js.map +1 -0
  288. package/dist/commonjs/sender.d.ts +125 -0
  289. package/dist/commonjs/sender.d.ts.map +1 -0
  290. package/dist/commonjs/sender.js +191 -0
  291. package/dist/commonjs/sender.js.map +1 -0
  292. package/dist/commonjs/serializers/namespaceResourceSerializer.d.ts +46 -0
  293. package/dist/commonjs/serializers/namespaceResourceSerializer.d.ts.map +1 -0
  294. package/dist/commonjs/serializers/namespaceResourceSerializer.js +39 -0
  295. package/dist/commonjs/serializers/namespaceResourceSerializer.js.map +1 -0
  296. package/dist/commonjs/serializers/queueResourceSerializer.d.ts +461 -0
  297. package/dist/commonjs/serializers/queueResourceSerializer.d.ts.map +1 -0
  298. package/dist/commonjs/serializers/queueResourceSerializer.js +107 -0
  299. package/dist/commonjs/serializers/queueResourceSerializer.js.map +1 -0
  300. package/dist/commonjs/serializers/ruleResourceSerializer.d.ts +135 -0
  301. package/dist/commonjs/serializers/ruleResourceSerializer.d.ts.map +1 -0
  302. package/dist/commonjs/serializers/ruleResourceSerializer.js +287 -0
  303. package/dist/commonjs/serializers/ruleResourceSerializer.js.map +1 -0
  304. package/dist/commonjs/serializers/subscriptionResourceSerializer.d.ts +396 -0
  305. package/dist/commonjs/serializers/subscriptionResourceSerializer.d.ts.map +1 -0
  306. package/dist/commonjs/serializers/subscriptionResourceSerializer.js +103 -0
  307. package/dist/commonjs/serializers/subscriptionResourceSerializer.js.map +1 -0
  308. package/dist/commonjs/serializers/topicResourceSerializer.d.ts +335 -0
  309. package/dist/commonjs/serializers/topicResourceSerializer.d.ts.map +1 -0
  310. package/dist/commonjs/serializers/topicResourceSerializer.js +97 -0
  311. package/dist/commonjs/serializers/topicResourceSerializer.js.map +1 -0
  312. package/dist/commonjs/serviceBusAtomManagementClient.d.ts +652 -0
  313. package/dist/commonjs/serviceBusAtomManagementClient.d.ts.map +1 -0
  314. package/dist/commonjs/serviceBusAtomManagementClient.js +1648 -0
  315. package/dist/commonjs/serviceBusAtomManagementClient.js.map +1 -0
  316. package/dist/commonjs/serviceBusClient.d.ts +231 -0
  317. package/dist/commonjs/serviceBusClient.d.ts.map +1 -0
  318. package/dist/commonjs/serviceBusClient.js +221 -0
  319. package/dist/commonjs/serviceBusClient.js.map +1 -0
  320. package/dist/commonjs/serviceBusError.d.ts +119 -0
  321. package/dist/commonjs/serviceBusError.d.ts.map +1 -0
  322. package/dist/commonjs/serviceBusError.js +109 -0
  323. package/dist/commonjs/serviceBusError.js.map +1 -0
  324. package/dist/commonjs/serviceBusMessage.d.ts +529 -0
  325. package/dist/commonjs/serviceBusMessage.d.ts.map +1 -0
  326. package/dist/commonjs/serviceBusMessage.js +611 -0
  327. package/dist/commonjs/serviceBusMessage.js.map +1 -0
  328. package/dist/commonjs/serviceBusMessageBatch.d.ts +153 -0
  329. package/dist/commonjs/serviceBusMessageBatch.d.ts.map +1 -0
  330. package/dist/commonjs/serviceBusMessageBatch.js +196 -0
  331. package/dist/commonjs/serviceBusMessageBatch.js.map +1 -0
  332. package/dist/commonjs/serviceBusRuleManager.d.ts +103 -0
  333. package/dist/commonjs/serviceBusRuleManager.d.ts.map +1 -0
  334. package/dist/commonjs/serviceBusRuleManager.js +153 -0
  335. package/dist/commonjs/serviceBusRuleManager.js.map +1 -0
  336. package/dist/commonjs/session/messageSession.d.ts +236 -0
  337. package/dist/commonjs/session/messageSession.d.ts.map +1 -0
  338. package/dist/commonjs/session/messageSession.js +759 -0
  339. package/dist/commonjs/session/messageSession.js.map +1 -0
  340. package/dist/commonjs/tsdoc-metadata.json +11 -0
  341. package/dist/commonjs/util/atomXmlHelper.d.ts +56 -0
  342. package/dist/commonjs/util/atomXmlHelper.d.ts.map +1 -0
  343. package/dist/commonjs/util/atomXmlHelper.js +386 -0
  344. package/dist/commonjs/util/atomXmlHelper.js.map +1 -0
  345. package/dist/commonjs/util/compat/compatibility.d.ts +109 -0
  346. package/dist/commonjs/util/compat/compatibility.d.ts.map +1 -0
  347. package/dist/commonjs/util/compat/compatibility.js +30 -0
  348. package/dist/commonjs/util/compat/compatibility.js.map +1 -0
  349. package/dist/commonjs/util/compat/httpHeaders.d.ts +136 -0
  350. package/dist/commonjs/util/compat/httpHeaders.d.ts.map +1 -0
  351. package/dist/commonjs/util/compat/httpHeaders.js +157 -0
  352. package/dist/commonjs/util/compat/httpHeaders.js.map +1 -0
  353. package/dist/commonjs/util/compat/index.d.ts +3 -0
  354. package/dist/commonjs/util/compat/index.d.ts.map +1 -0
  355. package/dist/commonjs/util/compat/index.js +8 -0
  356. package/dist/commonjs/util/compat/index.js.map +1 -0
  357. package/dist/commonjs/util/connectionStringUtils.d.ts +53 -0
  358. package/dist/commonjs/util/connectionStringUtils.d.ts.map +1 -0
  359. package/dist/commonjs/util/connectionStringUtils.js +51 -0
  360. package/dist/commonjs/util/connectionStringUtils.js.map +1 -0
  361. package/dist/commonjs/util/constants.d.ts +322 -0
  362. package/dist/commonjs/util/constants.d.ts.map +1 -0
  363. package/dist/commonjs/util/constants.js +327 -0
  364. package/dist/commonjs/util/constants.js.map +1 -0
  365. package/dist/commonjs/util/crypto.d.ts +5 -0
  366. package/dist/commonjs/util/crypto.d.ts.map +1 -0
  367. package/dist/commonjs/util/crypto.js +15 -0
  368. package/dist/commonjs/util/crypto.js.map +1 -0
  369. package/dist/commonjs/util/errors.d.ts +130 -0
  370. package/dist/commonjs/util/errors.d.ts.map +1 -0
  371. package/dist/commonjs/util/errors.js +236 -0
  372. package/dist/commonjs/util/errors.js.map +1 -0
  373. package/dist/commonjs/util/parseUrl.d.ts +5 -0
  374. package/dist/commonjs/util/parseUrl.d.ts.map +1 -0
  375. package/dist/commonjs/util/parseUrl.js +13 -0
  376. package/dist/commonjs/util/parseUrl.js.map +1 -0
  377. package/dist/commonjs/util/runtimeInfo.d.ts +7 -0
  378. package/dist/commonjs/util/runtimeInfo.d.ts.map +1 -0
  379. package/dist/commonjs/util/runtimeInfo.js +24 -0
  380. package/dist/commonjs/util/runtimeInfo.js.map +1 -0
  381. package/dist/commonjs/util/sasServiceClientCredentials.d.ts +31 -0
  382. package/dist/commonjs/util/sasServiceClientCredentials.d.ts.map +1 -0
  383. package/dist/commonjs/util/sasServiceClientCredentials.js +56 -0
  384. package/dist/commonjs/util/sasServiceClientCredentials.js.map +1 -0
  385. package/dist/commonjs/util/semaphore.d.ts +38 -0
  386. package/dist/commonjs/util/semaphore.d.ts.map +1 -0
  387. package/dist/commonjs/util/semaphore.js +85 -0
  388. package/dist/commonjs/util/semaphore.js.map +1 -0
  389. package/dist/commonjs/util/typeGuards.d.ts +8 -0
  390. package/dist/commonjs/util/typeGuards.d.ts.map +1 -0
  391. package/dist/commonjs/util/typeGuards.js +15 -0
  392. package/dist/commonjs/util/typeGuards.js.map +1 -0
  393. package/dist/commonjs/util/utils.d.ts +247 -0
  394. package/dist/commonjs/util/utils.d.ts.map +1 -0
  395. package/dist/commonjs/util/utils.js +524 -0
  396. package/dist/commonjs/util/utils.js.map +1 -0
  397. package/dist/esm/connectionContext.d.ts +109 -0
  398. package/dist/esm/connectionContext.d.ts.map +1 -0
  399. package/dist/esm/connectionContext.js +355 -0
  400. package/dist/esm/connectionContext.js.map +1 -0
  401. package/dist/esm/constructorHelpers.d.ts +79 -0
  402. package/dist/esm/constructorHelpers.d.ts.map +1 -0
  403. package/dist/esm/constructorHelpers.js +96 -0
  404. package/dist/esm/constructorHelpers.js.map +1 -0
  405. package/dist/esm/core/autoLockRenewer.d.ts +58 -0
  406. package/dist/esm/core/autoLockRenewer.d.ts.map +1 -0
  407. package/dist/esm/core/autoLockRenewer.js +174 -0
  408. package/dist/esm/core/autoLockRenewer.js.map +1 -0
  409. package/dist/esm/core/batchingReceiver.d.ts +120 -0
  410. package/dist/esm/core/batchingReceiver.d.ts.map +1 -0
  411. package/dist/esm/core/batchingReceiver.js +399 -0
  412. package/dist/esm/core/batchingReceiver.js.map +1 -0
  413. package/dist/esm/core/linkEntity.d.ts +192 -0
  414. package/dist/esm/core/linkEntity.d.ts.map +1 -0
  415. package/dist/esm/core/linkEntity.js +340 -0
  416. package/dist/esm/core/linkEntity.js.map +1 -0
  417. package/dist/esm/core/managementClient.d.ts +312 -0
  418. package/dist/esm/core/managementClient.d.ts.map +1 -0
  419. package/dist/esm/core/managementClient.js +1072 -0
  420. package/dist/esm/core/managementClient.js.map +1 -0
  421. package/dist/esm/core/messageReceiver.d.ts +147 -0
  422. package/dist/esm/core/messageReceiver.d.ts.map +1 -0
  423. package/dist/esm/core/messageReceiver.js +165 -0
  424. package/dist/esm/core/messageReceiver.js.map +1 -0
  425. package/dist/esm/core/messageSender.d.ts +93 -0
  426. package/dist/esm/core/messageSender.d.ts.map +1 -0
  427. package/dist/esm/core/messageSender.js +303 -0
  428. package/dist/esm/core/messageSender.js.map +1 -0
  429. package/dist/esm/core/receiverHelper.d.ts +45 -0
  430. package/dist/esm/core/receiverHelper.d.ts.map +1 -0
  431. package/dist/esm/core/receiverHelper.js +119 -0
  432. package/dist/esm/core/receiverHelper.js.map +1 -0
  433. package/dist/esm/core/shared.d.ts +34 -0
  434. package/dist/esm/core/shared.d.ts.map +1 -0
  435. package/dist/esm/core/shared.js +66 -0
  436. package/dist/esm/core/shared.js.map +1 -0
  437. package/dist/esm/core/streamingReceiver.d.ts +142 -0
  438. package/dist/esm/core/streamingReceiver.d.ts.map +1 -0
  439. package/dist/esm/core/streamingReceiver.js +522 -0
  440. package/dist/esm/core/streamingReceiver.js.map +1 -0
  441. package/dist/esm/dataTransformer.d.ts +77 -0
  442. package/dist/esm/dataTransformer.d.ts.map +1 -0
  443. package/dist/esm/dataTransformer.js +163 -0
  444. package/dist/esm/dataTransformer.js.map +1 -0
  445. package/dist/esm/diagnostics/instrumentServiceBusMessage.d.ts +50 -0
  446. package/dist/esm/diagnostics/instrumentServiceBusMessage.d.ts.map +1 -0
  447. package/dist/esm/diagnostics/instrumentServiceBusMessage.js +101 -0
  448. package/dist/esm/diagnostics/instrumentServiceBusMessage.js.map +1 -0
  449. package/dist/esm/diagnostics/tracing.d.ts +21 -0
  450. package/dist/esm/diagnostics/tracing.d.ts.map +1 -0
  451. package/dist/esm/diagnostics/tracing.js +37 -0
  452. package/dist/esm/diagnostics/tracing.js.map +1 -0
  453. package/dist/esm/experimental/index.d.ts +10 -0
  454. package/dist/esm/experimental/index.d.ts.map +1 -0
  455. package/dist/esm/experimental/index.js +4 -0
  456. package/dist/esm/experimental/index.js.map +1 -0
  457. package/dist/esm/index.d.ts +26 -0
  458. package/dist/esm/index.d.ts.map +1 -0
  459. package/dist/esm/index.js +10 -0
  460. package/dist/esm/index.js.map +1 -0
  461. package/dist/esm/log.d.ts +70 -0
  462. package/dist/esm/log.d.ts.map +1 -0
  463. package/dist/esm/log.js +89 -0
  464. package/dist/esm/log.js.map +1 -0
  465. package/dist/esm/models.d.ts +328 -0
  466. package/dist/esm/models.d.ts.map +1 -0
  467. package/dist/esm/models.js +4 -0
  468. package/dist/esm/models.js.map +1 -0
  469. package/dist/esm/modelsToBeSharedWithEventHubs.d.ts +18 -0
  470. package/dist/esm/modelsToBeSharedWithEventHubs.d.ts.map +1 -0
  471. package/dist/esm/modelsToBeSharedWithEventHubs.js +4 -0
  472. package/dist/esm/modelsToBeSharedWithEventHubs.js.map +1 -0
  473. package/dist/esm/package.json +3 -0
  474. package/dist/esm/receivers/receiver.d.ts +299 -0
  475. package/dist/esm/receivers/receiver.d.ts.map +1 -0
  476. package/dist/esm/receivers/receiver.js +379 -0
  477. package/dist/esm/receivers/receiver.js.map +1 -0
  478. package/dist/esm/receivers/receiverCommon.d.ts +81 -0
  479. package/dist/esm/receivers/receiverCommon.d.ts.map +1 -0
  480. package/dist/esm/receivers/receiverCommon.js +257 -0
  481. package/dist/esm/receivers/receiverCommon.js.map +1 -0
  482. package/dist/esm/receivers/sessionReceiver.d.ts +189 -0
  483. package/dist/esm/receivers/sessionReceiver.d.ts.map +1 -0
  484. package/dist/esm/receivers/sessionReceiver.js +428 -0
  485. package/dist/esm/receivers/sessionReceiver.js.map +1 -0
  486. package/dist/esm/sender.d.ts +125 -0
  487. package/dist/esm/sender.d.ts.map +1 -0
  488. package/dist/esm/sender.js +186 -0
  489. package/dist/esm/sender.js.map +1 -0
  490. package/dist/esm/serializers/namespaceResourceSerializer.d.ts +46 -0
  491. package/dist/esm/serializers/namespaceResourceSerializer.d.ts.map +1 -0
  492. package/dist/esm/serializers/namespaceResourceSerializer.js +34 -0
  493. package/dist/esm/serializers/namespaceResourceSerializer.js.map +1 -0
  494. package/dist/esm/serializers/queueResourceSerializer.d.ts +461 -0
  495. package/dist/esm/serializers/queueResourceSerializer.d.ts.map +1 -0
  496. package/dist/esm/serializers/queueResourceSerializer.js +99 -0
  497. package/dist/esm/serializers/queueResourceSerializer.js.map +1 -0
  498. package/dist/esm/serializers/ruleResourceSerializer.d.ts +135 -0
  499. package/dist/esm/serializers/ruleResourceSerializer.d.ts.map +1 -0
  500. package/dist/esm/serializers/ruleResourceSerializer.js +278 -0
  501. package/dist/esm/serializers/ruleResourceSerializer.js.map +1 -0
  502. package/dist/esm/serializers/subscriptionResourceSerializer.d.ts +396 -0
  503. package/dist/esm/serializers/subscriptionResourceSerializer.d.ts.map +1 -0
  504. package/dist/esm/serializers/subscriptionResourceSerializer.js +95 -0
  505. package/dist/esm/serializers/subscriptionResourceSerializer.js.map +1 -0
  506. package/dist/esm/serializers/topicResourceSerializer.d.ts +335 -0
  507. package/dist/esm/serializers/topicResourceSerializer.d.ts.map +1 -0
  508. package/dist/esm/serializers/topicResourceSerializer.js +89 -0
  509. package/dist/esm/serializers/topicResourceSerializer.js.map +1 -0
  510. package/dist/esm/serviceBusAtomManagementClient.d.ts +652 -0
  511. package/dist/esm/serviceBusAtomManagementClient.d.ts.map +1 -0
  512. package/dist/esm/serviceBusAtomManagementClient.js +1643 -0
  513. package/dist/esm/serviceBusAtomManagementClient.js.map +1 -0
  514. package/dist/esm/serviceBusClient.d.ts +231 -0
  515. package/dist/esm/serviceBusClient.d.ts.map +1 -0
  516. package/dist/esm/serviceBusClient.js +216 -0
  517. package/dist/esm/serviceBusClient.js.map +1 -0
  518. package/dist/esm/serviceBusError.d.ts +119 -0
  519. package/dist/esm/serviceBusError.d.ts.map +1 -0
  520. package/dist/esm/serviceBusError.js +103 -0
  521. package/dist/esm/serviceBusError.js.map +1 -0
  522. package/dist/esm/serviceBusMessage.d.ts +529 -0
  523. package/dist/esm/serviceBusMessage.d.ts.map +1 -0
  524. package/dist/esm/serviceBusMessage.js +598 -0
  525. package/dist/esm/serviceBusMessage.js.map +1 -0
  526. package/dist/esm/serviceBusMessageBatch.d.ts +153 -0
  527. package/dist/esm/serviceBusMessageBatch.d.ts.map +1 -0
  528. package/dist/esm/serviceBusMessageBatch.js +192 -0
  529. package/dist/esm/serviceBusMessageBatch.js.map +1 -0
  530. package/dist/esm/serviceBusRuleManager.d.ts +103 -0
  531. package/dist/esm/serviceBusRuleManager.d.ts.map +1 -0
  532. package/dist/esm/serviceBusRuleManager.js +149 -0
  533. package/dist/esm/serviceBusRuleManager.js.map +1 -0
  534. package/dist/esm/session/messageSession.d.ts +236 -0
  535. package/dist/esm/session/messageSession.d.ts.map +1 -0
  536. package/dist/esm/session/messageSession.js +755 -0
  537. package/dist/esm/session/messageSession.js.map +1 -0
  538. package/dist/esm/util/atomXmlHelper.d.ts +56 -0
  539. package/dist/esm/util/atomXmlHelper.d.ts.map +1 -0
  540. package/dist/esm/util/atomXmlHelper.js +378 -0
  541. package/dist/esm/util/atomXmlHelper.js.map +1 -0
  542. package/dist/esm/util/compat/compatibility.d.ts +109 -0
  543. package/dist/esm/util/compat/compatibility.d.ts.map +1 -0
  544. package/dist/esm/util/compat/compatibility.js +27 -0
  545. package/dist/esm/util/compat/compatibility.js.map +1 -0
  546. package/dist/esm/util/compat/httpHeaders.d.ts +136 -0
  547. package/dist/esm/util/compat/httpHeaders.d.ts.map +1 -0
  548. package/dist/esm/util/compat/httpHeaders.js +152 -0
  549. package/dist/esm/util/compat/httpHeaders.js.map +1 -0
  550. package/dist/esm/util/compat/index.d.ts +3 -0
  551. package/dist/esm/util/compat/index.d.ts.map +1 -0
  552. package/dist/esm/util/compat/index.js +5 -0
  553. package/dist/esm/util/compat/index.js.map +1 -0
  554. package/dist/esm/util/connectionStringUtils.d.ts +53 -0
  555. package/dist/esm/util/connectionStringUtils.d.ts.map +1 -0
  556. package/dist/esm/util/connectionStringUtils.js +48 -0
  557. package/dist/esm/util/connectionStringUtils.js.map +1 -0
  558. package/dist/esm/util/constants.d.ts +322 -0
  559. package/dist/esm/util/constants.d.ts.map +1 -0
  560. package/dist/esm/util/constants.js +324 -0
  561. package/dist/esm/util/constants.js.map +1 -0
  562. package/dist/esm/util/crypto.d.ts +5 -0
  563. package/dist/esm/util/crypto.d.ts.map +1 -0
  564. package/{dist-esm/src → dist/esm}/util/crypto.js +1 -3
  565. package/dist/esm/util/crypto.js.map +1 -0
  566. package/dist/esm/util/errors.d.ts +130 -0
  567. package/dist/esm/util/errors.d.ts.map +1 -0
  568. package/dist/esm/util/errors.js +220 -0
  569. package/dist/esm/util/errors.js.map +1 -0
  570. package/dist/esm/util/parseUrl.d.ts +5 -0
  571. package/dist/esm/util/parseUrl.d.ts.map +1 -0
  572. package/{dist-esm/src → dist/esm}/util/parseUrl.js +0 -6
  573. package/dist/esm/util/parseUrl.js.map +1 -0
  574. package/dist/esm/util/runtimeInfo.d.ts +7 -0
  575. package/dist/esm/util/runtimeInfo.d.ts.map +1 -0
  576. package/{dist-esm/src → dist/esm}/util/runtimeInfo.js +2 -2
  577. package/dist/esm/util/runtimeInfo.js.map +1 -0
  578. package/dist/esm/util/sasServiceClientCredentials.d.ts +31 -0
  579. package/dist/esm/util/sasServiceClientCredentials.d.ts.map +1 -0
  580. package/dist/esm/util/sasServiceClientCredentials.js +52 -0
  581. package/dist/esm/util/sasServiceClientCredentials.js.map +1 -0
  582. package/dist/esm/util/semaphore.d.ts +38 -0
  583. package/dist/esm/util/semaphore.d.ts.map +1 -0
  584. package/dist/esm/util/semaphore.js +81 -0
  585. package/dist/esm/util/semaphore.js.map +1 -0
  586. package/dist/esm/util/typeGuards.d.ts +8 -0
  587. package/dist/esm/util/typeGuards.d.ts.map +1 -0
  588. package/dist/esm/util/typeGuards.js +12 -0
  589. package/dist/esm/util/typeGuards.js.map +1 -0
  590. package/dist/esm/util/utils.d.ts +247 -0
  591. package/dist/esm/util/utils.d.ts.map +1 -0
  592. package/dist/esm/util/utils.js +496 -0
  593. package/dist/esm/util/utils.js.map +1 -0
  594. package/dist/react-native/connectionContext.d.ts +109 -0
  595. package/dist/react-native/connectionContext.d.ts.map +1 -0
  596. package/dist/react-native/connectionContext.js +355 -0
  597. package/dist/react-native/connectionContext.js.map +1 -0
  598. package/dist/react-native/constructorHelpers.d.ts +79 -0
  599. package/dist/react-native/constructorHelpers.d.ts.map +1 -0
  600. package/dist/react-native/constructorHelpers.js +96 -0
  601. package/dist/react-native/constructorHelpers.js.map +1 -0
  602. package/dist/react-native/core/autoLockRenewer.d.ts +58 -0
  603. package/dist/react-native/core/autoLockRenewer.d.ts.map +1 -0
  604. package/dist/react-native/core/autoLockRenewer.js +174 -0
  605. package/dist/react-native/core/autoLockRenewer.js.map +1 -0
  606. package/dist/react-native/core/batchingReceiver.d.ts +120 -0
  607. package/dist/react-native/core/batchingReceiver.d.ts.map +1 -0
  608. package/dist/react-native/core/batchingReceiver.js +399 -0
  609. package/dist/react-native/core/batchingReceiver.js.map +1 -0
  610. package/dist/react-native/core/linkEntity.d.ts +192 -0
  611. package/dist/react-native/core/linkEntity.d.ts.map +1 -0
  612. package/dist/react-native/core/linkEntity.js +340 -0
  613. package/dist/react-native/core/linkEntity.js.map +1 -0
  614. package/dist/react-native/core/managementClient.d.ts +312 -0
  615. package/dist/react-native/core/managementClient.d.ts.map +1 -0
  616. package/dist/react-native/core/managementClient.js +1072 -0
  617. package/dist/react-native/core/managementClient.js.map +1 -0
  618. package/dist/react-native/core/messageReceiver.d.ts +147 -0
  619. package/dist/react-native/core/messageReceiver.d.ts.map +1 -0
  620. package/dist/react-native/core/messageReceiver.js +165 -0
  621. package/dist/react-native/core/messageReceiver.js.map +1 -0
  622. package/dist/react-native/core/messageSender.d.ts +93 -0
  623. package/dist/react-native/core/messageSender.d.ts.map +1 -0
  624. package/dist/react-native/core/messageSender.js +303 -0
  625. package/dist/react-native/core/messageSender.js.map +1 -0
  626. package/dist/react-native/core/receiverHelper.d.ts +45 -0
  627. package/dist/react-native/core/receiverHelper.d.ts.map +1 -0
  628. package/dist/react-native/core/receiverHelper.js +119 -0
  629. package/dist/react-native/core/receiverHelper.js.map +1 -0
  630. package/dist/react-native/core/shared.d.ts +34 -0
  631. package/dist/react-native/core/shared.d.ts.map +1 -0
  632. package/dist/react-native/core/shared.js +66 -0
  633. package/dist/react-native/core/shared.js.map +1 -0
  634. package/dist/react-native/core/streamingReceiver.d.ts +142 -0
  635. package/dist/react-native/core/streamingReceiver.d.ts.map +1 -0
  636. package/dist/react-native/core/streamingReceiver.js +522 -0
  637. package/dist/react-native/core/streamingReceiver.js.map +1 -0
  638. package/dist/react-native/dataTransformer.d.ts +77 -0
  639. package/dist/react-native/dataTransformer.d.ts.map +1 -0
  640. package/dist/react-native/dataTransformer.js +163 -0
  641. package/dist/react-native/dataTransformer.js.map +1 -0
  642. package/dist/react-native/diagnostics/instrumentServiceBusMessage.d.ts +50 -0
  643. package/dist/react-native/diagnostics/instrumentServiceBusMessage.d.ts.map +1 -0
  644. package/dist/react-native/diagnostics/instrumentServiceBusMessage.js +101 -0
  645. package/dist/react-native/diagnostics/instrumentServiceBusMessage.js.map +1 -0
  646. package/dist/react-native/diagnostics/tracing.d.ts +21 -0
  647. package/dist/react-native/diagnostics/tracing.d.ts.map +1 -0
  648. package/dist/react-native/diagnostics/tracing.js +37 -0
  649. package/dist/react-native/diagnostics/tracing.js.map +1 -0
  650. package/dist/react-native/experimental/index.d.ts +10 -0
  651. package/dist/react-native/experimental/index.d.ts.map +1 -0
  652. package/dist/react-native/experimental/index.js +4 -0
  653. package/dist/react-native/experimental/index.js.map +1 -0
  654. package/dist/react-native/index.d.ts +26 -0
  655. package/dist/react-native/index.d.ts.map +1 -0
  656. package/dist/react-native/index.js +10 -0
  657. package/dist/react-native/index.js.map +1 -0
  658. package/dist/react-native/log.d.ts +70 -0
  659. package/dist/react-native/log.d.ts.map +1 -0
  660. package/dist/react-native/log.js +89 -0
  661. package/dist/react-native/log.js.map +1 -0
  662. package/dist/react-native/models.d.ts +328 -0
  663. package/dist/react-native/models.d.ts.map +1 -0
  664. package/dist/react-native/models.js +4 -0
  665. package/dist/react-native/models.js.map +1 -0
  666. package/dist/react-native/modelsToBeSharedWithEventHubs.d.ts +18 -0
  667. package/dist/react-native/modelsToBeSharedWithEventHubs.d.ts.map +1 -0
  668. package/dist/react-native/modelsToBeSharedWithEventHubs.js +4 -0
  669. package/dist/react-native/modelsToBeSharedWithEventHubs.js.map +1 -0
  670. package/dist/react-native/package.json +3 -0
  671. package/dist/react-native/receivers/receiver.d.ts +299 -0
  672. package/dist/react-native/receivers/receiver.d.ts.map +1 -0
  673. package/dist/react-native/receivers/receiver.js +379 -0
  674. package/dist/react-native/receivers/receiver.js.map +1 -0
  675. package/dist/react-native/receivers/receiverCommon.d.ts +81 -0
  676. package/dist/react-native/receivers/receiverCommon.d.ts.map +1 -0
  677. package/dist/react-native/receivers/receiverCommon.js +257 -0
  678. package/dist/react-native/receivers/receiverCommon.js.map +1 -0
  679. package/dist/react-native/receivers/sessionReceiver.d.ts +189 -0
  680. package/dist/react-native/receivers/sessionReceiver.d.ts.map +1 -0
  681. package/dist/react-native/receivers/sessionReceiver.js +428 -0
  682. package/dist/react-native/receivers/sessionReceiver.js.map +1 -0
  683. package/dist/react-native/sender.d.ts +125 -0
  684. package/dist/react-native/sender.d.ts.map +1 -0
  685. package/dist/react-native/sender.js +186 -0
  686. package/dist/react-native/sender.js.map +1 -0
  687. package/dist/react-native/serializers/namespaceResourceSerializer.d.ts +46 -0
  688. package/dist/react-native/serializers/namespaceResourceSerializer.d.ts.map +1 -0
  689. package/dist/react-native/serializers/namespaceResourceSerializer.js +34 -0
  690. package/dist/react-native/serializers/namespaceResourceSerializer.js.map +1 -0
  691. package/dist/react-native/serializers/queueResourceSerializer.d.ts +461 -0
  692. package/dist/react-native/serializers/queueResourceSerializer.d.ts.map +1 -0
  693. package/dist/react-native/serializers/queueResourceSerializer.js +99 -0
  694. package/dist/react-native/serializers/queueResourceSerializer.js.map +1 -0
  695. package/dist/react-native/serializers/ruleResourceSerializer.d.ts +135 -0
  696. package/dist/react-native/serializers/ruleResourceSerializer.d.ts.map +1 -0
  697. package/dist/react-native/serializers/ruleResourceSerializer.js +278 -0
  698. package/dist/react-native/serializers/ruleResourceSerializer.js.map +1 -0
  699. package/dist/react-native/serializers/subscriptionResourceSerializer.d.ts +396 -0
  700. package/dist/react-native/serializers/subscriptionResourceSerializer.d.ts.map +1 -0
  701. package/dist/react-native/serializers/subscriptionResourceSerializer.js +95 -0
  702. package/dist/react-native/serializers/subscriptionResourceSerializer.js.map +1 -0
  703. package/dist/react-native/serializers/topicResourceSerializer.d.ts +335 -0
  704. package/dist/react-native/serializers/topicResourceSerializer.d.ts.map +1 -0
  705. package/dist/react-native/serializers/topicResourceSerializer.js +89 -0
  706. package/dist/react-native/serializers/topicResourceSerializer.js.map +1 -0
  707. package/dist/react-native/serviceBusAtomManagementClient.d.ts +652 -0
  708. package/dist/react-native/serviceBusAtomManagementClient.d.ts.map +1 -0
  709. package/dist/react-native/serviceBusAtomManagementClient.js +1643 -0
  710. package/dist/react-native/serviceBusAtomManagementClient.js.map +1 -0
  711. package/dist/react-native/serviceBusClient.d.ts +231 -0
  712. package/dist/react-native/serviceBusClient.d.ts.map +1 -0
  713. package/dist/react-native/serviceBusClient.js +216 -0
  714. package/dist/react-native/serviceBusClient.js.map +1 -0
  715. package/dist/react-native/serviceBusError.d.ts +119 -0
  716. package/dist/react-native/serviceBusError.d.ts.map +1 -0
  717. package/dist/react-native/serviceBusError.js +103 -0
  718. package/dist/react-native/serviceBusError.js.map +1 -0
  719. package/dist/react-native/serviceBusMessage.d.ts +529 -0
  720. package/dist/react-native/serviceBusMessage.d.ts.map +1 -0
  721. package/dist/react-native/serviceBusMessage.js +598 -0
  722. package/dist/react-native/serviceBusMessage.js.map +1 -0
  723. package/dist/react-native/serviceBusMessageBatch.d.ts +153 -0
  724. package/dist/react-native/serviceBusMessageBatch.d.ts.map +1 -0
  725. package/dist/react-native/serviceBusMessageBatch.js +192 -0
  726. package/dist/react-native/serviceBusMessageBatch.js.map +1 -0
  727. package/dist/react-native/serviceBusRuleManager.d.ts +103 -0
  728. package/dist/react-native/serviceBusRuleManager.d.ts.map +1 -0
  729. package/dist/react-native/serviceBusRuleManager.js +149 -0
  730. package/dist/react-native/serviceBusRuleManager.js.map +1 -0
  731. package/dist/react-native/session/messageSession.d.ts +236 -0
  732. package/dist/react-native/session/messageSession.d.ts.map +1 -0
  733. package/dist/react-native/session/messageSession.js +755 -0
  734. package/dist/react-native/session/messageSession.js.map +1 -0
  735. package/dist/react-native/util/atomXmlHelper.d.ts +56 -0
  736. package/dist/react-native/util/atomXmlHelper.d.ts.map +1 -0
  737. package/dist/react-native/util/atomXmlHelper.js +378 -0
  738. package/dist/react-native/util/atomXmlHelper.js.map +1 -0
  739. package/dist/react-native/util/compat/compatibility.d.ts +109 -0
  740. package/dist/react-native/util/compat/compatibility.d.ts.map +1 -0
  741. package/dist/react-native/util/compat/compatibility.js +27 -0
  742. package/dist/react-native/util/compat/compatibility.js.map +1 -0
  743. package/dist/react-native/util/compat/httpHeaders.d.ts +136 -0
  744. package/dist/react-native/util/compat/httpHeaders.d.ts.map +1 -0
  745. package/dist/react-native/util/compat/httpHeaders.js +152 -0
  746. package/dist/react-native/util/compat/httpHeaders.js.map +1 -0
  747. package/dist/react-native/util/compat/index.d.ts +3 -0
  748. package/dist/react-native/util/compat/index.d.ts.map +1 -0
  749. package/dist/react-native/util/compat/index.js +5 -0
  750. package/dist/react-native/util/compat/index.js.map +1 -0
  751. package/dist/react-native/util/connectionStringUtils.d.ts +53 -0
  752. package/dist/react-native/util/connectionStringUtils.d.ts.map +1 -0
  753. package/dist/react-native/util/connectionStringUtils.js +48 -0
  754. package/dist/react-native/util/connectionStringUtils.js.map +1 -0
  755. package/dist/react-native/util/constants.d.ts +322 -0
  756. package/dist/react-native/util/constants.d.ts.map +1 -0
  757. package/dist/react-native/util/constants.js +324 -0
  758. package/dist/react-native/util/constants.js.map +1 -0
  759. package/dist/react-native/util/crypto.d.ts +5 -0
  760. package/dist/react-native/util/crypto.d.ts.map +1 -0
  761. package/dist/react-native/util/crypto.js +11 -0
  762. package/dist/react-native/util/crypto.js.map +1 -0
  763. package/dist/react-native/util/errors.d.ts +130 -0
  764. package/dist/react-native/util/errors.d.ts.map +1 -0
  765. package/dist/react-native/util/errors.js +220 -0
  766. package/dist/react-native/util/errors.js.map +1 -0
  767. package/dist/react-native/util/parseUrl.d.ts +5 -0
  768. package/dist/react-native/util/parseUrl.d.ts.map +1 -0
  769. package/dist/react-native/util/parseUrl.js +9 -0
  770. package/dist/react-native/util/parseUrl.js.map +1 -0
  771. package/dist/react-native/util/runtimeInfo-react-native.d.mts.map +1 -0
  772. package/dist/react-native/util/runtimeInfo-react-native.mjs.map +1 -0
  773. package/dist/react-native/util/runtimeInfo.d.ts +7 -0
  774. package/{dist-esm/src/util/runtimeInfo.native.js → dist/react-native/util/runtimeInfo.js} +3 -3
  775. package/dist/react-native/util/sasServiceClientCredentials.d.ts +31 -0
  776. package/dist/react-native/util/sasServiceClientCredentials.d.ts.map +1 -0
  777. package/dist/react-native/util/sasServiceClientCredentials.js +52 -0
  778. package/dist/react-native/util/sasServiceClientCredentials.js.map +1 -0
  779. package/dist/react-native/util/semaphore.d.ts +38 -0
  780. package/dist/react-native/util/semaphore.d.ts.map +1 -0
  781. package/dist/react-native/util/semaphore.js +81 -0
  782. package/dist/react-native/util/semaphore.js.map +1 -0
  783. package/dist/react-native/util/typeGuards.d.ts +8 -0
  784. package/dist/react-native/util/typeGuards.d.ts.map +1 -0
  785. package/dist/react-native/util/typeGuards.js +12 -0
  786. package/dist/react-native/util/typeGuards.js.map +1 -0
  787. package/dist/react-native/util/utils.d.ts +247 -0
  788. package/dist/react-native/util/utils.d.ts.map +1 -0
  789. package/dist/react-native/util/utils.js +496 -0
  790. package/dist/react-native/util/utils.js.map +1 -0
  791. package/package.json +123 -104
  792. package/dist/index.js +0 -10438
  793. package/dist/index.js.map +0 -1
  794. package/dist-esm/src/connectionContext.js.map +0 -1
  795. package/dist-esm/src/constructorHelpers.js.map +0 -1
  796. package/dist-esm/src/core/autoLockRenewer.js.map +0 -1
  797. package/dist-esm/src/core/batchingReceiver.js.map +0 -1
  798. package/dist-esm/src/core/linkEntity.js.map +0 -1
  799. package/dist-esm/src/core/managementClient.js.map +0 -1
  800. package/dist-esm/src/core/messageReceiver.js.map +0 -1
  801. package/dist-esm/src/core/messageSender.js.map +0 -1
  802. package/dist-esm/src/core/receiverHelper.js.map +0 -1
  803. package/dist-esm/src/core/shared.js.map +0 -1
  804. package/dist-esm/src/core/streamingReceiver.js.map +0 -1
  805. package/dist-esm/src/dataTransformer.js.map +0 -1
  806. package/dist-esm/src/diagnostics/instrumentServiceBusMessage.js.map +0 -1
  807. package/dist-esm/src/diagnostics/tracing.js.map +0 -1
  808. package/dist-esm/src/index.js.map +0 -1
  809. package/dist-esm/src/log.js.map +0 -1
  810. package/dist-esm/src/models.js +0 -4
  811. package/dist-esm/src/models.js.map +0 -1
  812. package/dist-esm/src/modelsToBeSharedWithEventHubs.js +0 -4
  813. package/dist-esm/src/modelsToBeSharedWithEventHubs.js.map +0 -1
  814. package/dist-esm/src/receivers/receiver.js.map +0 -1
  815. package/dist-esm/src/receivers/receiverCommon.js.map +0 -1
  816. package/dist-esm/src/receivers/sessionReceiver.js.map +0 -1
  817. package/dist-esm/src/sender.js.map +0 -1
  818. package/dist-esm/src/serializers/namespaceResourceSerializer.js.map +0 -1
  819. package/dist-esm/src/serializers/queueResourceSerializer.js.map +0 -1
  820. package/dist-esm/src/serializers/ruleResourceSerializer.js.map +0 -1
  821. package/dist-esm/src/serializers/subscriptionResourceSerializer.js.map +0 -1
  822. package/dist-esm/src/serializers/topicResourceSerializer.js.map +0 -1
  823. package/dist-esm/src/serviceBusAtomManagementClient.js.map +0 -1
  824. package/dist-esm/src/serviceBusClient.js.map +0 -1
  825. package/dist-esm/src/serviceBusError.js.map +0 -1
  826. package/dist-esm/src/serviceBusMessage.js.map +0 -1
  827. package/dist-esm/src/serviceBusMessageBatch.js.map +0 -1
  828. package/dist-esm/src/serviceBusRuleManager.js.map +0 -1
  829. package/dist-esm/src/session/messageSession.js.map +0 -1
  830. package/dist-esm/src/util/atomXmlHelper.js.map +0 -1
  831. package/dist-esm/src/util/compat/compatibility.js.map +0 -1
  832. package/dist-esm/src/util/compat/httpHeaders.js.map +0 -1
  833. package/dist-esm/src/util/compat/index.js +0 -5
  834. package/dist-esm/src/util/compat/index.js.map +0 -1
  835. package/dist-esm/src/util/connectionStringUtils.js.map +0 -1
  836. package/dist-esm/src/util/crypto.browser.js.map +0 -1
  837. package/dist-esm/src/util/crypto.js.map +0 -1
  838. package/dist-esm/src/util/errors.js.map +0 -1
  839. package/dist-esm/src/util/parseUrl.browser.js.map +0 -1
  840. package/dist-esm/src/util/parseUrl.js.map +0 -1
  841. package/dist-esm/src/util/runtimeInfo.browser.js.map +0 -1
  842. package/dist-esm/src/util/runtimeInfo.js.map +0 -1
  843. package/dist-esm/src/util/runtimeInfo.native.js.map +0 -1
  844. package/dist-esm/src/util/sasServiceClientCredentials.js.map +0 -1
  845. package/dist-esm/src/util/semaphore.js.map +0 -1
  846. package/dist-esm/src/util/typeGuards.js.map +0 -1
  847. package/dist-esm/src/util/utils.js.map +0 -1
  848. package/types/latest/service-bus-beta.d.ts +0 -3197
@@ -1 +0,0 @@
1
- {"version":3,"file":"messageSender.js","sourceRoot":"","sources":["../../../src/core/messageSender.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { senderLogger as logger } from \"../log\";\nimport {\n AmqpError,\n AwaitableSender,\n AwaitableSenderOptions,\n EventContext,\n OnAmqpEvent,\n message as RheaMessageUtil,\n} from \"rhea-promise\";\nimport {\n Constants,\n ErrorNameConditionMapper,\n MessagingError,\n RetryConfig,\n RetryOperationType,\n RetryOptions,\n retry,\n AmqpAnnotatedMessage,\n} from \"@azure/core-amqp\";\nimport { ServiceBusMessage, toRheaMessage } from \"../serviceBusMessage\";\nimport { ConnectionContext } from \"../connectionContext\";\nimport { LinkEntity } from \"./linkEntity\";\nimport { getUniqueName, waitForSendable, waitForTimeoutOrAbortOrResolve } from \"../util/utils\";\nimport { throwErrorIfConnectionClosed } from \"../util/errors\";\nimport { ServiceBusMessageBatch, ServiceBusMessageBatchImpl } from \"../serviceBusMessageBatch\";\nimport { CreateMessageBatchOptions } from \"../models\";\nimport { OperationOptionsBase } from \"../modelsToBeSharedWithEventHubs\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { ServiceBusError, translateServiceBusError } from \"../serviceBusError\";\nimport { isDefined } from \"@azure/core-util\";\nimport { defaultDataTransformer } from \"../dataTransformer\";\n\n/**\n * @internal\n * Describes the MessageSender that will send messages to ServiceBus.\n */\nexport class MessageSender extends LinkEntity<AwaitableSender> {\n /**\n * The handler function to handle errors that happen on the\n * underlying sender.\n * @readonly\n */\n private readonly _onAmqpError: OnAmqpEvent;\n /**\n * The handler function to handle \"sender_close\" event\n * that happens on the underlying sender.\n * @readonly\n */\n private readonly _onAmqpClose: OnAmqpEvent;\n /**\n * The message handler that will be set as the handler on\n * the underlying rhea sender's session for the \"session_error\" event.\n */\n private _onSessionError: OnAmqpEvent;\n /**\n * The message handler that will be set as the handler on\n * the underlying rhea sender's session for the \"session_close\" event.\n */\n private _onSessionClose: OnAmqpEvent;\n private _retryOptions: RetryOptions;\n\n constructor(\n private identifier: string,\n connectionContext: ConnectionContext,\n entityPath: string,\n retryOptions: RetryOptions,\n ) {\n super(entityPath, entityPath, connectionContext, \"sender\", logger, {\n address: entityPath,\n audience: `${connectionContext.config.endpoint}${entityPath}`,\n });\n this._retryOptions = retryOptions;\n this._onAmqpError = (context: EventContext) => {\n const senderError = context.sender && context.sender.error;\n logger.logError(\n senderError,\n \"%s 'sender_error' event occurred on the sender '%s' with address '%s'. \" +\n \"The associated error\",\n this.logPrefix,\n this.name,\n this.address,\n );\n // TODO: Consider rejecting promise in trySendBatch() or createBatch()\n };\n\n this._onSessionError = (context: EventContext) => {\n const sessionError = context.session && context.session.error;\n logger.logError(\n sessionError,\n \"%s 'session_error' event occurred on the session of sender '%s' with address '%s'. \" +\n \"The associated error\",\n this.logPrefix,\n this.name,\n this.address,\n );\n // TODO: Consider rejecting promise in trySendBatch() or createBatch()\n };\n\n this._onAmqpClose = async (context: EventContext) => {\n const senderError = context.sender && context.sender.error;\n\n logger.logError(\n senderError,\n `${this.logPrefix} 'sender_close' event occurred. The associated error is`,\n );\n\n await this.onDetached().catch((err) => {\n logger.logError(\n err,\n `${this.logPrefix} error when closing sender after 'sender_close' event`,\n );\n });\n };\n\n this._onSessionClose = async (context: EventContext) => {\n const sessionError = context.session && context.session.error;\n\n logger.logError(\n sessionError,\n `${this.logPrefix} 'session_close' event occurred. The associated error is`,\n );\n\n await this.onDetached().catch((err) => {\n logger.logError(\n err,\n `${this.logPrefix} error when closing sender after 'session_close' event`,\n );\n });\n };\n }\n\n private _createSenderOptions(newName?: boolean): AwaitableSenderOptions {\n if (newName) this.name = getUniqueName(this.baseName);\n const srOptions: AwaitableSenderOptions = {\n name: this.name,\n target: {\n address: this.address,\n },\n source: this.identifier,\n onError: this._onAmqpError,\n onClose: this._onAmqpClose,\n onSessionError: this._onSessionError,\n onSessionClose: this._onSessionClose,\n };\n logger.verbose(`${this.logPrefix} Creating sender with options: %O`, srOptions);\n return srOptions;\n }\n\n /**\n * Tries to send the message to ServiceBus if there is enough credit to send them\n * and the circular buffer has available space to settle the message after sending them.\n *\n * We have implemented a synchronous send over here in the sense that we shall be waiting\n * for the message to be accepted or rejected and accordingly resolve or reject the promise.\n *\n * @param encodedMessage - The encoded message to be sent to ServiceBus.\n * @param sendBatch - Boolean indicating whether the encoded message represents a batch of messages or not\n */\n private _trySend(\n encodedMessage: Buffer,\n sendBatch: boolean,\n options: OperationOptionsBase | undefined,\n ): Promise<void> {\n const abortSignal = options?.abortSignal;\n const timeoutInMs = !isDefined(this._retryOptions.timeoutInMs)\n ? Constants.defaultOperationTimeoutInMs\n : this._retryOptions.timeoutInMs;\n\n const sendEventPromise = async (): Promise<void> => {\n const initStartTime = Date.now();\n if (!this.isOpen()) {\n try {\n await waitForTimeoutOrAbortOrResolve({\n actionFn: () => this.open(undefined, options?.abortSignal),\n abortSignal: options?.abortSignal,\n timeoutMs: timeoutInMs,\n timeoutMessage:\n `[${this._context.connectionId}] Sender \"${this.name}\" ` +\n `with address \"${this.address}\", was not able to send the message right now, due ` +\n `to operation timeout.`,\n });\n } catch (err: any) {\n const translatedError = translateServiceBusError(err);\n logger.logError(\n translatedError,\n \"%s An error occurred while creating the sender\",\n this.logPrefix,\n this.name,\n );\n throw translatedError;\n }\n }\n\n const timeTakenByInit = Date.now() - initStartTime;\n\n logger.verbose(\n \"%s Sender '%s', credit: %d available: %d\",\n this.logPrefix,\n this.name,\n this.link?.credit,\n this.link?.session?.outgoing?.available(),\n );\n\n const waitingTime = await waitForSendable(\n logger,\n this.logPrefix,\n this.name,\n timeoutInMs - timeTakenByInit,\n this.link,\n this.link?.session?.outgoing?.available(),\n );\n\n if (timeoutInMs <= timeTakenByInit + waitingTime) {\n const desc: string =\n `${this.logPrefix} Sender \"${this.name}\" ` +\n `with address \"${this.address}\", was not able to send the message right now, due ` +\n `to operation timeout.`;\n logger.warning(desc);\n const e: AmqpError = {\n condition: ErrorNameConditionMapper.ServiceUnavailableError,\n description: desc,\n };\n throw translateServiceBusError(e);\n }\n\n if (!this.link) {\n const msg = `[${this.logPrefix}] Cannot send the message. Link is not ready.`;\n logger.warning(msg);\n const amqpError: AmqpError = {\n condition: ErrorNameConditionMapper.SenderNotReadyError,\n description: msg,\n };\n throw translateServiceBusError(amqpError);\n }\n try {\n const delivery = await this.link.send(encodedMessage, {\n format: sendBatch ? 0x80013700 : 0,\n timeoutInSeconds: (timeoutInMs - timeTakenByInit - waitingTime) / 1000,\n abortSignal,\n });\n logger.verbose(\n \"%s Sender '%s', sent message with delivery id: %d\",\n this.logPrefix,\n this.name,\n delivery.id,\n );\n } catch (error: any) {\n const translatedError = translateServiceBusError(error.innerError || error);\n logger.logError(\n translatedError,\n `${this.logPrefix} An error occurred while sending the message`,\n );\n throw translatedError;\n }\n };\n const config: RetryConfig<void> = {\n operation: sendEventPromise,\n connectionId: this._context.connectionId!,\n operationType: RetryOperationType.sendMessage,\n retryOptions: this._retryOptions,\n abortSignal: abortSignal,\n };\n\n return retry<void>(config);\n }\n\n protected createRheaLink(options: AwaitableSenderOptions): Promise<AwaitableSender> {\n return this._context.connection.createAwaitableSender(options);\n }\n\n /**\n * Initializes the sender session on the connection.\n */\n public async open(\n options?: AwaitableSenderOptions,\n abortSignal?: AbortSignalLike,\n ): Promise<void> {\n try {\n if (!options) {\n options = this._createSenderOptions();\n }\n await this.initLink(options, abortSignal);\n } catch (err: any) {\n const translatedError = translateServiceBusError(err);\n logger.logError(\n translatedError,\n `${this.logPrefix} An error occurred while creating the sender`,\n );\n // Fix the unhelpful error messages for the OperationTimeoutError that comes from `rhea-promise`.\n if ((translatedError as MessagingError).code === \"OperationTimeoutError\") {\n translatedError.message =\n \"Failed to create a sender within allocated time and retry attempts.\";\n }\n throw translatedError;\n }\n }\n\n /**\n * Closes the rhea link.\n * To be called when connection is disconnected, onAmqpClose and onSessionClose events.\n */\n async onDetached(): Promise<void> {\n // Clears the token renewal timer. Closes the link and its session if they are open.\n // Removes the link and its session if they are present in rhea's cache.\n await this.closeLink();\n }\n\n /**\n * Determines whether the AMQP sender link is open. If open then returns true else returns false.\n */\n isOpen(): boolean {\n const result: boolean = this.link == null ? false : this.link.isOpen();\n logger.verbose(\n \"%s Sender '%s' with address '%s' is open? -> %s\",\n this.logPrefix,\n this.name,\n this.address,\n result,\n );\n return result;\n }\n\n /**\n * Sends the given message, with the given options on this link\n *\n * @param data - Message to send. Will be sent as UTF8-encoded JSON string.\n */\n async send(\n data: ServiceBusMessage | AmqpAnnotatedMessage,\n options?: OperationOptionsBase,\n ): Promise<void> {\n throwErrorIfConnectionClosed(this._context);\n try {\n const amqpMessage = toRheaMessage(data, defaultDataTransformer);\n\n // TODO: this body of logic is really similar to what's in sendMessages. Unify what we can.\n const encodedMessage = RheaMessageUtil.encode(amqpMessage);\n logger.verbose(\"%s Sender '%s', trying to send message: %O\", this.logPrefix, this.name, data);\n return await this._trySend(encodedMessage, false, options);\n } catch (err: any) {\n logger.logError(\n err,\n \"%s An error occurred while sending the message: %O\\nError\",\n this.logPrefix,\n data,\n );\n throw err;\n }\n }\n\n /**\n * Returns maximum message size on the AMQP sender link.\n *\n * Options to configure the `createBatch` method on the `Sender`.\n * - `maxSizeInBytes`: The upper limit for the size of batch.\n *\n * Example usage:\n * ```js\n * {\n * retryOptions: { maxRetries: 5; timeoutInMs: 10 }\n * }\n * ```\n */\n async getMaxMessageSize(\n options: {\n retryOptions?: RetryOptions;\n } & Pick<OperationOptionsBase, \"abortSignal\"> = {},\n ): Promise<number> {\n const retryOptions = options.retryOptions || {};\n if (this.isOpen()) {\n return this.link!.maxMessageSize;\n }\n\n const config: RetryConfig<number> = {\n operation: async () => {\n await this.open(undefined, options?.abortSignal);\n\n if (this.link) {\n return this.link.maxMessageSize;\n }\n\n throw new ServiceBusError(\n \"Link failed to initialize, cannot get max message size.\",\n \"GeneralError\",\n );\n },\n connectionId: this._context.connectionId,\n operationType: RetryOperationType.senderLink,\n retryOptions: retryOptions,\n abortSignal: options?.abortSignal,\n };\n\n return retry(config);\n }\n\n async createBatch(options?: CreateMessageBatchOptions): Promise<ServiceBusMessageBatch> {\n throwErrorIfConnectionClosed(this._context);\n let maxMessageSize = await this.getMaxMessageSize({\n retryOptions: this._retryOptions,\n abortSignal: options?.abortSignal,\n });\n if (options?.maxSizeInBytes) {\n if (options.maxSizeInBytes > maxMessageSize!) {\n const error = new Error(\n `Max message size (${options.maxSizeInBytes} bytes) is greater than maximum message size (${maxMessageSize} bytes) on the AMQP sender link.`,\n );\n throw error;\n }\n maxMessageSize = options.maxSizeInBytes;\n }\n return new ServiceBusMessageBatchImpl(this._context, maxMessageSize!);\n }\n\n async sendBatch(\n batchMessage: ServiceBusMessageBatch,\n options?: OperationOptionsBase,\n ): Promise<void> {\n throwErrorIfConnectionClosed(this._context);\n try {\n logger.verbose(\n \"%s Sender '%s', sending encoded batch message.\",\n this.logPrefix,\n this.name,\n batchMessage,\n );\n return await this._trySend(batchMessage._generateMessage(), true, options);\n } catch (err: any) {\n logger.logError(\n err,\n \"%s Sender '%s': An error occurred while sending the messages: %O\\nError\",\n this.logPrefix,\n this.name,\n batchMessage,\n );\n throw err;\n }\n }\n\n static create(\n identifier: string,\n context: ConnectionContext,\n entityPath: string,\n retryOptions: RetryOptions,\n ): MessageSender {\n throwErrorIfConnectionClosed(context);\n\n const sbSender = new MessageSender(identifier, context, entityPath, retryOptions);\n context.senders[sbSender.name] = sbSender;\n return sbSender;\n }\n\n protected removeLinkFromContext(): void {\n delete this._context.senders[this.name];\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"receiverHelper.js","sourceRoot":"","sources":["../../../src/core/receiverHelper.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortError } from \"@azure/abort-controller\";\nimport { Receiver, ReceiverEvents } from \"rhea-promise\";\nimport { receiverLogger as logger } from \"../log\";\nimport { ServiceBusError } from \"../serviceBusError\";\nimport { receiveDrainTimeoutInMs } from \"../util/constants\";\n\n/**\n * Wraps the receiver with some higher level operations for managing state\n * like credits, draining, etc...\n *\n * @internal\n */\nexport class ReceiverHelper {\n private _isSuspended: boolean = true;\n\n constructor(\n private _getCurrentReceiver: () => { receiver: Receiver | undefined; logPrefix: string },\n ) {}\n\n private _getCurrentReceiverOrError():\n | \"is undefined\"\n | \"is not open\"\n | \"is suspended\"\n | { receiver: Receiver | undefined; logPrefix: string } {\n const currentReceiverData = this._getCurrentReceiver();\n\n if (currentReceiverData.receiver == null) {\n return \"is undefined\";\n }\n\n if (!currentReceiverData.receiver.isOpen()) {\n return \"is not open\";\n }\n\n if (this._isSuspended) {\n return \"is suspended\";\n }\n\n return currentReceiverData;\n }\n\n /**\n * Adds credits to the receiver, respecting any state that\n * indicates the receiver is closed or should not continue\n * to receive more messages.\n *\n * @param credits - Number of credits to add.\n * or `stopReceivingMessages` has been called.\n */\n addCredit(credits: number): void {\n const currentReceiverOrError = this._getCurrentReceiverOrError();\n\n if (typeof currentReceiverOrError === \"string\") {\n const errorMessage = `Cannot request messages on the receiver since it ${currentReceiverOrError}.`;\n\n if (currentReceiverOrError === \"is suspended\") {\n // if a user has suspended the receiver we should consider this a non-retryable\n // error since it absolutely requires user intervention.\n throw new AbortError(errorMessage);\n }\n\n throw new ServiceBusError(errorMessage, \"GeneralError\");\n }\n\n if (currentReceiverOrError.receiver != null) {\n logger.verbose(`${currentReceiverOrError.logPrefix} Adding ${credits} credits`);\n currentReceiverOrError.receiver.addCredit(credits);\n }\n }\n\n /**\n * Drains the credits for the receiver and prevents the `receiverHelper.addCredit()` method from adding credits.\n * Call `resume()` to enable the `addCredit()` method.\n */\n async suspend(): Promise<void> {\n const { receiver, logPrefix } = this._getCurrentReceiver();\n\n this._isSuspended = true;\n\n if (!this._isValidReceiver(receiver)) {\n return;\n }\n\n logger.verbose(\n `${logPrefix} User has requested to stop receiving new messages, attempting to drain.`,\n );\n\n return this.drain();\n }\n\n /**\n * Resets tracking so `addCredit` works again by toggling the `_isSuspended` flag.\n */\n resume(): void {\n this._isSuspended = false;\n }\n\n isSuspended(): boolean {\n return this._isSuspended;\n }\n\n /**\n * Initiates a drain for the current receiver and resolves when\n * the drain has completed.\n *\n * NOTE: This method returns immediately if the receiver is not valid or if there\n * are no pending credits on the receiver (ie: `receiver.credit === 0`).\n */\n async drain(): Promise<void> {\n const { receiver, logPrefix } = this._getCurrentReceiver();\n\n if (!this._isValidReceiver(receiver)) {\n // TODO: should we throw?\n return;\n }\n\n if (receiver.credit === 0) {\n // nothing to drain\n return;\n }\n\n logger.verbose(\n `${logPrefix} Receiver is starting drain. Remaining credits; ${receiver.credit}`,\n );\n\n const drainPromise = new Promise<void>((resolve) => {\n const timer = setTimeout(async () => {\n logger.warning(`${logPrefix} Time out when draining credits in suspend().`);\n // Close the receiver link since we have not received the receiver_drained event\n // to prevent out-of-sync link state between local and remote\n await receiver?.close();\n resolve();\n }, receiveDrainTimeoutInMs);\n receiver.once(ReceiverEvents.receiverDrained, () => {\n logger.verbose(`${logPrefix} Receiver has been drained.`);\n receiver.drain = false;\n clearTimeout(timer);\n resolve();\n });\n receiver.drainCredit();\n });\n\n return drainPromise;\n }\n\n private _isValidReceiver(receiver: Receiver | undefined): receiver is Receiver {\n return receiver != null && receiver.isOpen();\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/core/shared.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAmB7C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,QAA8B,EAC9B,sBAA4D;IAE5D,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC;QACxC,cAAc,CAAC,OAAO,CACpB,wEAAwE,GAAG,WAAW,EACtF,SAAS,EACT,EAAE,EACF,OAAO,EACP,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAC3C,CAAC;QACF,IAAI,OAAO,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAA4B,CAAC;YAC1E,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,cAAc,CAAC,OAAO,CACpB,oEAAoE,EACpE,SAAS,EACT,EAAE,CACH,CAAC;YACF,MAAM,YAAY,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvD,cAAc,CAAC,OAAO,CACpB,+DAA+D,EAC/D,SAAS,EACT,EAAE,EACF,YAAY,CACb,CAAC;YACF,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/E,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,8GAA8G;AAC9G,MAAM,WAAW,GAAG,GAAG,SAAS,CAAC,YAAY,UAAU,CAAC;AACxD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,WAAwB,EACxB,MAAc,EACd,QAAgB,EAChB,QAA0B,EAC1B,WAAoB;IAEpB,MAAM,UAAU,GACd,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE;QAC9E,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvD,MAAM,WAAW,GAAoB;QACnC,IAAI;QACJ,2GAA2G;QAC3G,8HAA8H;QAC9H,UAAU,EAAE,WAAW,KAAK,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAC7D,uDAAuD;QACvD,eAAe,EAAE,WAAW,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,6DAA6D;QAC7D,eAAe,EAAE,WAAW,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM;QACN,MAAM,EAAE,QAAQ;QAChB,aAAa,EAAE,CAAC;QAChB,UAAU;QACV,GAAG,QAAQ;KACZ,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Delivery, ReceiverOptions, Source } from \"rhea-promise\";\nimport { translateServiceBusError } from \"../serviceBusError\";\nimport { receiverLogger } from \"../log\";\nimport { ReceiveMode } from \"../models\";\nimport { Constants } from \"@azure/core-amqp\";\n\n/**\n * @internal\n */\nexport type ReceiverHandlers = Pick<\n ReceiverOptions,\n \"onMessage\" | \"onError\" | \"onClose\" | \"onSessionError\" | \"onSessionClose\" | \"onSettled\"\n>;\n\n/**\n * @internal\n */\nexport interface DeferredPromiseAndTimer {\n resolve: (value?: any) => void;\n reject: (reason?: any) => void;\n timer: NodeJS.Timeout;\n}\n\n/**\n * This is the shared onSettled handler for all of the receiver implementations.\n *\n * The sequence is basically:\n * 1. User calls `await <ServiceBusMessage instance>.complete()` (or other settlement methods)\n * 2. This creates a `Promise` that gets stored in the _deliveryDispositionMap\n * 3. When the service acknowledges the settlement this method gets called for that message.\n * 4. We resolve() the promise from the _deliveryDispositionMap.\n * 5. User's code after the settlement continues.\n *\n * @internal\n */\nexport function onMessageSettled(\n logPrefix: string,\n delivery: Delivery | undefined,\n deliveryDispositionMap: Map<number, DeferredPromiseAndTimer>,\n): void {\n if (delivery) {\n const id = delivery.id;\n const state = delivery.remote_state;\n const settled = delivery.remote_settled;\n receiverLogger.verbose(\n \"%s Delivery with id %d, remote_settled: %s, remote_state: %o has been \" + \"received.\",\n logPrefix,\n id,\n settled,\n state && state.error ? state.error : state,\n );\n if (settled && deliveryDispositionMap.has(id)) {\n const promise = deliveryDispositionMap.get(id) as DeferredPromiseAndTimer;\n clearTimeout(promise.timer);\n receiverLogger.verbose(\n \"%s Found the delivery with id %d in the map and cleared the timer.\",\n logPrefix,\n id,\n );\n const deleteResult = deliveryDispositionMap.delete(id);\n receiverLogger.verbose(\n \"%s Successfully deleted the delivery with id %d from the map.\",\n logPrefix,\n id,\n deleteResult,\n );\n if (state && state.error && (state.error.condition || state.error.description)) {\n const error = translateServiceBusError(state.error);\n return promise.reject(error);\n }\n\n return promise.resolve();\n }\n }\n}\n\n// Placed in Service Bus for now and can be promoted to core-amqp if also useful for Event Hubs in the future.\nconst timeoutName = `${Constants.vendorString}:timeout`;\n/**\n * Creates the options that need to be specified while creating an AMQP receiver link.\n *\n * @internal\n */\nexport function createReceiverOptions(\n name: string,\n receiveMode: ReceiveMode,\n source: Source,\n clientId: string,\n handlers: ReceiverHandlers,\n timeoutInMs?: number,\n): ReceiverOptions {\n const properties =\n timeoutInMs !== undefined\n ? { [Constants.receiverIdentifierName]: clientId, [timeoutName]: timeoutInMs }\n : { [Constants.receiverIdentifierName]: clientId };\n const rcvrOptions: ReceiverOptions = {\n name,\n // \"autoaccept\" being true in the \"receiveAndDelete\" mode sets the \"settled\" flag to true on the deliveries\n // which helps in clearing the circular buffer(size=2048) as it is needed to receive messages after 2048 of them are received.\n autoaccept: receiveMode === \"receiveAndDelete\" ? true : false,\n // receiveAndDelete -> first(0), peekLock -> second (1)\n rcv_settle_mode: receiveMode === \"receiveAndDelete\" ? 0 : 1,\n // receiveAndDelete -> settled (1), peekLock -> unsettled (0)\n snd_settle_mode: receiveMode === \"receiveAndDelete\" ? 1 : 0,\n source,\n target: clientId,\n credit_window: 0,\n properties,\n ...handlers,\n };\n\n return rcvrOptions;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"streamingReceiver.js","sourceRoot":"","sources":["../../../src/core/streamingReceiver.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { MessageReceiver, OnAmqpEventAsPromise, ReceiveOptions } from \"./messageReceiver\";\nimport { ConnectionContext } from \"../connectionContext\";\n\nimport { ReceiverHelper } from \"./receiverHelper\";\n\nimport { throwErrorIfConnectionClosed } from \"../util/errors\";\nimport {\n RetryOperationType,\n MessagingError,\n RetryOptions,\n ConditionErrorNameMapper,\n} from \"@azure/core-amqp\";\nimport { OperationOptionsBase } from \"../modelsToBeSharedWithEventHubs\";\nimport { receiverLogger as logger } from \"../log\";\nimport { AmqpError, EventContext, OnAmqpEvent } from \"rhea-promise\";\nimport { ServiceBusMessageImpl } from \"../serviceBusMessage\";\nimport { translateServiceBusError } from \"../serviceBusError\";\nimport { abandonMessage, completeMessage, retryForever } from \"../receivers/receiverCommon\";\nimport { ReceiverHandlers } from \"./shared\";\nimport {\n InternalMessageHandlers,\n InternalProcessErrorArgs,\n MessageHandlers,\n ProcessErrorArgs,\n SubscribeOptions,\n} from \"../models\";\nimport { toProcessingSpanOptions } from \"../diagnostics/instrumentServiceBusMessage\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport { tracingClient } from \"../diagnostics/tracing\";\n\n/**\n * @internal\n */\nexport interface StreamingReceiverInitArgs\n extends ReceiveOptions,\n Pick<OperationOptionsBase, \"abortSignal\"> {\n messageHandlers: MessageHandlers;\n}\n\n/**\n * @internal\n * Describes the streaming receiver where the user can receive the message\n * by providing handler functions.\n */\nexport class StreamingReceiver extends MessageReceiver {\n /**\n * The maximum number of messages that should be\n * processed concurrently while in streaming mode. Once this limit has been reached, more\n * messages will not be received until the user's message handler has completed processing current message.\n * Default: 1\n */\n maxConcurrentCalls: number = 1;\n\n /**\n * Indicates whether the receiver is already actively\n * running `onDetached`.\n * This is expected to be true while the receiver attempts\n * to bring its link back up due to a retryable issue.\n */\n private _isDetaching: boolean = false;\n /**\n *Retry policy options that determine the mode, number of retries, retry interval etc.\n */\n private _retryOptions: RetryOptions;\n\n private _receiverHelper: ReceiverHelper;\n\n /**\n * The user's message handlers, wrapped so any thrown exceptions are properly logged\n * or forwarded to the user's processError handler.\n */\n private _messageHandlers: () => Required<InternalMessageHandlers> = () => {\n throw new Error(\"messageHandlers are not set.\");\n };\n\n /**\n * The subscribe(options) passed when the subscribe call originally happened. Stored\n * so _subscribeImpl() can re-use them later if we have to restart our subscription\n * when detach/reattaching.\n */\n private _subscribeOptions: SubscribeOptions | undefined;\n\n /**\n * Used so we can stub out retry in tests.\n */\n private _retryForeverFn: typeof retryForever = retryForever;\n\n /**\n * The message handler that will be set as the handler on the\n * underlying rhea receiver for the \"receiver_close\" event.\n */\n private _onAmqpClose: OnAmqpEventAsPromise;\n\n /**\n * The message handler that will be set as the handler on\n * the underlying rhea receiver's session for the \"session_close\" event.\n */\n private _onSessionClose: OnAmqpEventAsPromise;\n\n /**\n * The message handler that will be set as the handler on\n * the underlying rhea receiver's session for the \"session_error\" event.\n */\n private _onSessionError: OnAmqpEvent;\n /**\n * The message handler that will be set as the handler on the\n * underlying rhea receiver for the \"receiver_error\" event.\n */\n private _onAmqpError: OnAmqpEvent;\n\n /**\n * The message handler that will be set as the handler on the\n * underlying rhea receiver for the \"message\" event.\n */\n protected _onAmqpMessage: OnAmqpEventAsPromise;\n\n /**\n * Whether we are currently subscribed (or subscribing) for receiving messages.\n * (this is irrespective of receiver state, etc... - it's just a simple flag to prevent\n * multiple subscribe() calls from happening on this instance)\n */\n public get isSubscribeActive(): boolean {\n return !this._receiverHelper.isSuspended();\n }\n\n /**\n * Instantiate a new Streaming receiver for receiving messages with handlers.\n *\n * @param identifier - the name used to identifier the receiver\n * @param connectionContext - The client entity context.\n * @param options - Options for how you'd like to connect.\n */\n constructor(\n identifier: string,\n connectionContext: ConnectionContext,\n entityPath: string,\n options: ReceiveOptions,\n ) {\n super(identifier, connectionContext, entityPath, \"streaming\", options);\n\n if (typeof options?.maxConcurrentCalls === \"number\" && options?.maxConcurrentCalls > 0) {\n this.maxConcurrentCalls = options.maxConcurrentCalls;\n }\n\n this._retryOptions = options?.retryOptions || {};\n\n this._receiverHelper = new ReceiverHelper(() => ({\n receiver: this.link,\n logPrefix: this.logPrefix,\n }));\n\n this._onAmqpClose = async (context: EventContext) => {\n const receiverError = context.receiver && context.receiver.error;\n const receiver = this.link || context.receiver!;\n\n logger.logError(\n receiverError,\n `${this.logPrefix} 'receiver_close' event occurred. The associated error is`,\n );\n\n this._lockRenewer?.stopAll(this);\n\n if (receiver && !receiver.isItselfClosed()) {\n await this.onDetached(receiverError);\n } else {\n logger.verbose(\n \"%s 'receiver_close' event occurred on the receiver '%s' with address '%s' \" +\n \"because the sdk initiated it. Hence not calling detached from the _onAmqpClose\" +\n \"() handler.\",\n this.logPrefix,\n this.name,\n this.address,\n );\n }\n };\n\n this._onSessionClose = async (context: EventContext) => {\n const receiver = this.link || context.receiver!;\n const sessionError = context.session && context.session.error;\n\n logger.logError(\n sessionError,\n `${this.logPrefix} 'session_close' event occurred. The associated error is`,\n );\n\n this._lockRenewer?.stopAll(this);\n\n if (receiver && !receiver.isSessionItselfClosed()) {\n await this.onDetached(sessionError);\n } else {\n logger.verbose(\n \"%s 'session_close' event occurred on the session of receiver '%s' with address \" +\n \"'%s' because the sdk initiated it. Hence not calling detached from the _onSessionClose\" +\n \"() handler.\",\n this.logPrefix,\n this.name,\n this.address,\n );\n }\n };\n\n this._onAmqpError = (context: EventContext) => {\n const receiverError = context.receiver && context.receiver.error;\n if (receiverError) {\n const sbError = translateServiceBusError(receiverError) as MessagingError;\n logger.logError(\n sbError,\n `${this.logPrefix} 'receiver_error' event occurred. The associated error is`,\n );\n this._messageHandlers().processError({\n error: sbError,\n errorSource: \"receive\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier,\n });\n }\n };\n\n this._onSessionError = (context: EventContext) => {\n const sessionError = context.session && context.session.error;\n if (sessionError) {\n const sbError = translateServiceBusError(sessionError) as MessagingError;\n logger.logError(\n sbError,\n `${this.logPrefix} 'session_error' event occurred. The associated error is`,\n );\n this._messageHandlers().processError({\n error: sbError,\n errorSource: \"receive\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier,\n });\n }\n };\n\n this._onAmqpMessage = async (context: EventContext) => {\n // If the receiver got closed in PeekLock mode, avoid processing the message as we\n // cannot settle the message.\n if (this.receiveMode === \"peekLock\" && (!this.link || !this.link.isOpen())) {\n logger.verbose(\n \"%s Not calling the user's message handler for the current message \" +\n \"as the receiver is closed\",\n this.logPrefix,\n );\n return;\n }\n\n const bMessage: ServiceBusMessageImpl = new ServiceBusMessageImpl(\n context.message!,\n context.delivery!,\n true,\n this.receiveMode,\n options.skipParsingBodyAsJson ?? false,\n options.skipConvertingDate ?? false,\n );\n\n this._lockRenewer?.start(this, bMessage, (err) => {\n this._messageHandlers().processError({\n error: err,\n errorSource: \"renewLock\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier,\n });\n });\n\n try {\n await this._messageHandlers().processMessage(bMessage);\n } catch (err: any) {\n logger.logError(\n err,\n \"%s An error occurred while running user's message handler for the message \" +\n \"with id '%s' on the receiver '%s'\",\n this.logPrefix,\n bMessage.messageId,\n this.name,\n );\n\n // Do not want renewLock to happen unnecessarily, while abandoning the message. Hence,\n // doing this here. Otherwise, this should be done in finally.\n this._lockRenewer?.stop(this, bMessage);\n const error = translateServiceBusError(err) as MessagingError;\n // Nothing much to do if user's message handler throws. Let us try abandoning the message.\n if (\n !bMessage.delivery.remote_settled &&\n error.code !== ConditionErrorNameMapper[\"com.microsoft:message-lock-lost\"] &&\n this.receiveMode === \"peekLock\" &&\n this.isOpen() // only try to abandon the messages if the connection is still open\n ) {\n try {\n logger.logError(\n error,\n \"%s Abandoning the message with id '%s' on the receiver '%s' since \" +\n \"an error occured: %O.\",\n this.logPrefix,\n bMessage.messageId,\n this.name,\n error,\n );\n await abandonMessage(\n bMessage,\n this._context,\n entityPath,\n undefined,\n this._retryOptions,\n );\n } catch (abandonError: any) {\n const translatedError = translateServiceBusError(abandonError);\n logger.logError(\n translatedError,\n \"%s An error occurred while abandoning the message with id '%s' on the \" +\n \"receiver '%s'\",\n this.logPrefix,\n bMessage.messageId,\n this.name,\n );\n this._messageHandlers().processError({\n error: translatedError,\n errorSource: \"abandon\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier,\n });\n }\n }\n return;\n } finally {\n try {\n this._receiverHelper.addCredit(1);\n } catch (err: any) {\n // if we're aborting out of the receive operation we don't need to report it (the user already\n // knows the link is being torn down or stopped)\n if (err.name !== \"AbortError\") {\n logger.logError(\n err,\n `[${this.logPrefix}] Failed to add credit after receiving message`,\n );\n await this._reportInternalError(err);\n }\n }\n }\n\n // If we've made it this far, then user's message handler completed fine. Let us try\n // completing the message.\n if (\n this.autoComplete &&\n this.receiveMode === \"peekLock\" &&\n !bMessage.delivery.remote_settled\n ) {\n try {\n logger.verbose(\n \"%s Auto completing the message with id '%s' on \" + \"the receiver.\",\n this.logPrefix,\n bMessage.messageId,\n );\n await completeMessage(bMessage, this._context, entityPath, this._retryOptions);\n } catch (completeError: any) {\n const translatedError = translateServiceBusError(completeError);\n logger.logError(\n translatedError,\n \"%s An error occurred while completing the message with id '%s' on the \" +\n \"receiver '%s'\",\n this.logPrefix,\n bMessage.messageId,\n this.name,\n );\n this._messageHandlers().processError({\n error: translatedError,\n errorSource: \"complete\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier,\n });\n }\n }\n };\n }\n\n private _reportInternalError(error: Error): Promise<void> {\n const messageHandlers = this._messageHandlers();\n\n if (messageHandlers.forwardInternalErrors) {\n const errorArgs: InternalProcessErrorArgs = {\n error,\n entityPath: this.entityPath,\n errorSource: \"internal\",\n fullyQualifiedNamespace: this._context.config.host,\n identifier: this.identifier,\n };\n\n return messageHandlers.processError(errorArgs as ProcessErrorArgs);\n }\n\n return Promise.resolve();\n }\n\n private _getHandlers(): ReceiverHandlers {\n return {\n onMessage: (context: EventContext) =>\n this._onAmqpMessage(context).catch((err) => this._reportInternalError(err)),\n onClose: (context: EventContext) =>\n this._onAmqpClose(context).catch((err) => this._reportInternalError(err)),\n onSessionClose: (context: EventContext) =>\n this._onSessionClose(context).catch((err) => this._reportInternalError(err)),\n onError: this._onAmqpError,\n onSessionError: this._onSessionError,\n };\n }\n\n async stopReceivingMessages(): Promise<void> {\n await this._receiverHelper.suspend();\n\n if (this._subscribeCallPromise) {\n await this._subscribeCallPromise;\n }\n }\n\n async close(): Promise<void> {\n await this._receiverHelper.suspend();\n return super.close();\n }\n\n private _subscribeCallPromise: Promise<void> | undefined;\n\n /**\n * Starts the receiver by establishing an AMQP session and an AMQP receiver link on the session.\n *\n * Any errors thrown by this function will also be sent to the messageHandlers.processError function\n * _and_ thrown, ultimately from this method.\n *\n * NOTE: This function retries _infinitely_ until success! It is completely up to the user to break\n * out of this retry cycle otherwise by:\n * 1. closing the receiver\n * 2. Calling `close` on the subscription instance they received when they initially called subscribe().\n * 3. aborting the abortSignal they passed in when calling subscribe (this also applies to initialization calls in onDetach)\n *\n * @param onMessage - The message handler to receive servicebus messages.\n * @param onError - The error handler to receive an error that occurs while receivin messages.\n */\n async subscribe(\n messageHandlers: InternalMessageHandlers,\n subscribeOptions: SubscribeOptions | undefined,\n ): Promise<void> {\n // these options and message handlers will be re-used if/when onDetach is called.\n this._subscribeOptions = subscribeOptions;\n this._setMessageHandlers(messageHandlers, subscribeOptions);\n\n let promiseResolve: (() => void) | undefined;\n this._subscribeCallPromise = new Promise((resolve) => {\n promiseResolve = resolve;\n });\n\n try {\n this._receiverHelper.resume();\n return await this._subscribeImpl(\"subscribe\");\n } catch (err: any) {\n // callers aren't going to be in a good position to forward this error properly\n // so we do it here.\n await this._messageHandlers().processError({\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n errorSource: \"receive\",\n error: err,\n identifier: this.identifier,\n });\n\n throw err;\n } finally {\n promiseResolve?.();\n this._subscribeCallPromise = undefined;\n }\n }\n\n /**\n * Wraps the individual message handlers with tracing and proper error handling\n * and assigns them to `this._messageHandlers`\n *\n * @param userHandlers - The user's message handlers\n * @param operationOptions - The subscribe(options)\n */\n private _setMessageHandlers(\n userHandlers: InternalMessageHandlers,\n operationOptions: OperationOptionsBase | undefined,\n ): void {\n const messageHandlers = {\n processError: async (args: ProcessErrorArgs) => {\n try {\n args.error = translateServiceBusError(args.error);\n await userHandlers.processError(args);\n } catch (err: any) {\n await this._reportInternalError(err);\n logger.logError(err, `An error was thrown from the user's processError handler`);\n }\n },\n processMessage: async (message: ServiceBusMessageImpl) => {\n try {\n await tracingClient.withSpan(\n \"StreamReceiver.process\",\n operationOptions ?? {},\n () => userHandlers.processMessage(message),\n toProcessingSpanOptions(message, this, this._context.config, \"process\"),\n );\n } catch (err: any) {\n this._messageHandlers().processError({\n error: err,\n errorSource: \"processMessageCallback\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier: this.identifier,\n });\n throw err;\n }\n },\n postInitialize: async () => {\n if (!userHandlers.postInitialize) {\n return;\n }\n\n return userHandlers.postInitialize().catch((err) =>\n this._messageHandlers().processError({\n error: err,\n errorSource: \"processMessageCallback\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier: this.identifier,\n }),\n );\n },\n preInitialize: async () => {\n if (!userHandlers.preInitialize) {\n return;\n }\n\n return userHandlers.preInitialize().catch((err) =>\n this._messageHandlers().processError({\n error: err,\n errorSource: \"processMessageCallback\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier: this.identifier,\n }),\n );\n },\n forwardInternalErrors: userHandlers.forwardInternalErrors ?? false,\n };\n\n this._messageHandlers = () => messageHandlers;\n }\n\n /**\n * Subscribes using the already assigned `this._messageHandlers` and `this._subscribeOptions`\n *\n * @returns A promise that will resolve when a link is created and we successfully add credits to it.\n */\n private async _subscribeImpl(caller: \"detach\" | \"subscribe\"): Promise<void> {\n try {\n // we don't expect to ever get an error from retryForever but bugs\n // do happen.\n return await this._retryForeverFn({\n retryConfig: {\n connectionId: this._context.connection.id,\n operationType: RetryOperationType.receiverLink,\n abortSignal: this._subscribeOptions?.abortSignal,\n retryOptions: this._retryOptions,\n operation: () => this._initAndAddCreditOperation(caller),\n },\n onError: (err) =>\n this._messageHandlers().processError({\n error: err,\n errorSource: \"receive\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier: this.identifier,\n }),\n logPrefix: this.logPrefix,\n logger,\n });\n } catch (err: any) {\n try {\n await this._receiverHelper.suspend();\n } catch (error: any) {\n logger.logError(error, `${this.logPrefix} receiver.suspend threw an error`);\n }\n\n throw err;\n }\n }\n\n /**\n * Initializes the link and adds credits. If any of these operations fail any created link will\n * be closed.\n *\n * @param caller - The caller which dictates whether or not we create a new name for our created link.\n * @param catchAndReportError - A function and reports an error but does not throw it.\n */\n private async _initAndAddCreditOperation(caller: \"detach\" | \"subscribe\"): Promise<void> {\n if (this._receiverHelper.isSuspended()) {\n // user has suspended us while we were initializing\n // the connection. Abort this attempt - if they attempt\n // resubscribe we'll just reinitialize.\n // This checks should happen before throwErrorIfConnectionClosed(); otherwise\n // we won't be able to break out of the retry-for-ever loops when user suspend us.\n throw new AbortError(\"Receiver was suspended during initialization.\");\n }\n\n throwErrorIfConnectionClosed(this._context);\n\n await this._messageHandlers().preInitialize();\n\n if (this._receiverHelper.isSuspended()) {\n // Need to check again as user can suspend us in preInitialize()\n throw new AbortError(\"Receiver was suspended during initialization.\");\n }\n await this._init(\n this._createReceiverOptions(caller === \"detach\", this._getHandlers()),\n this._subscribeOptions?.abortSignal,\n );\n\n try {\n await this._messageHandlers().postInitialize();\n this._receiverHelper.addCredit(this.maxConcurrentCalls);\n } catch (err: any) {\n try {\n await this.closeLink();\n } catch (error: any) {\n await this._messageHandlers().processError({\n error,\n errorSource: \"receive\",\n entityPath: this.entityPath,\n fullyQualifiedNamespace: this._context.config.host,\n identifier: this.identifier,\n });\n }\n throw err;\n }\n }\n\n /**\n * Will reconnect the receiver link if necessary.\n * @param receiverError - The receiver error or connection error, if any.\n */\n async onDetached(receiverError?: AmqpError | Error): Promise<void> {\n try {\n logger.verbose(`${this.logPrefix} onDetached: reinitializing link.`);\n\n // User explicitly called `close` on the receiver, so link is already closed\n // and we can exit early.\n if (this.wasClosedPermanently) {\n logger.verbose(\n `${this.logPrefix} onDetached: link has been closed permanently, not reinitializing. `,\n );\n return;\n }\n\n // Prevent multiple onDetached invocations from running concurrently.\n if (this._isDetaching) {\n // This can happen when the network connection goes down for some amount of time.\n // The first connection `disconnect` will trigger `onDetached` and attempt to retry\n // creating the connection/receiver link.\n // While those retry attempts fail (until the network connection comes back up),\n // we'll continue to see connection `disconnect` errors.\n // These should be ignored until the already running `onDetached` completes\n // its retry attempts or errors.\n logger.verbose(\n `${this.logPrefix} onDetached: Call to detached on streaming receiver '${this.name}' is already in progress.`,\n );\n return;\n }\n\n this._isDetaching = true;\n\n const translatedError = receiverError\n ? translateServiceBusError(receiverError)\n : receiverError;\n logger.logError(\n translatedError,\n `${this.logPrefix} onDetached: Reinitializing receiver because of error`,\n );\n\n // Clears the token renewal timer. Closes the link and its session if they are open.\n // Removes the link and its session if they are present in rhea's cache.\n await this.closeLink();\n } catch (err: any) {\n logger.verbose(\n `${this.logPrefix} onDetached: Encountered an error when closing the previous link: `,\n err,\n );\n }\n\n try {\n await this._subscribeImpl(\"detach\");\n } finally {\n this._isDetaching = false;\n }\n }\n\n protected removeLinkFromContext(): void {\n delete this._context.messageReceivers[this.name];\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataTransformer.js","sourceRoot":"","sources":["../../src/dataTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { message } from \"rhea-promise\";\nimport isBuffer from \"is-buffer\";\nimport { Buffer } from \"buffer\";\nimport { logErrorStackTrace, logger } from \"./log\";\n\n/** @internal */\nexport const dataSectionTypeCode = 0x75 as const;\n/** @internal */\nexport const sequenceSectionTypeCode = 0x76 as const;\n/** @internal */\nexport const valueSectionTypeCode = 0x77 as const;\n\n/**\n * Mirror of the internal Section interface in rhea.\n *\n * @internal\n */\nexport interface RheaAmqpSection {\n typecode:\n | typeof dataSectionTypeCode\n | typeof sequenceSectionTypeCode\n | typeof valueSectionTypeCode;\n content: any;\n}\n\n/**\n * The default data transformer that will be used by the Azure SDK.\n * @internal\n */\nexport const defaultDataTransformer = {\n /**\n * A function that takes the body property from an EventData object\n * and returns an encoded body (some form of AMQP type).\n *\n * @param body - The AMQP message body\n * @returns The encoded AMQP message body as an AMQP Data type\n * (data section in rhea terms). Section object with following properties:\n * - typecode: 117 (0x75)\n * - content: The given AMQP message body as a Buffer.\n * - multiple: true | undefined.\n */\n encode(body: unknown, bodyType: \"data\" | \"value\" | \"sequence\"): any {\n let result: any;\n if (bodyType === \"value\") {\n // TODO: Expose value_section from `rhea` similar to the data_section and sequence_section. Right now there isn't a way to create a value section officially.\n result = message.data_section(body);\n result.typecode = valueSectionTypeCode;\n } else if (bodyType === \"sequence\") {\n result = message.sequence_section(body);\n } else if (isBuffer(body) || body instanceof Uint8Array) {\n result = message.data_section(body);\n } else {\n // string, undefined, null, boolean, array, object, number should end up here\n // coercing undefined to null as that will ensure that null value will be given to the\n // customer on receive.\n if (body === undefined) body = null; // tslint:disable-line\n try {\n const bodyStr = JSON.stringify(body);\n result = message.data_section(Buffer.from(bodyStr, \"utf8\"));\n } catch (err: any) {\n const msg =\n `An error occurred while executing JSON.stringify() on the given body ` +\n body +\n `${err ? err.stack : JSON.stringify(err)}`;\n logger.warning(\"[encode] \" + msg);\n logErrorStackTrace(logger, err);\n throw new Error(msg);\n }\n }\n return result;\n },\n /**\n * A function that takes the body property from an AMQP message\n * (an AMQP Data type (data section in rhea terms)) and returns the decoded message body.\n * If it cannot decode the body then it returns the body\n * as-is.\n *\n * NOTE: Use this to decode a message body when you know that the entire contents are _only_ contained\n * in the 'data' section of the message (for instance, messages from the $mgmt link). Otherwise\n * use 'defaultDataTransformer.decodeWithType', which can handle data coming from separate sections\n * of the AMQP mesage.\n *\n * @param body - The AMQP message body\n * @param skipParsingBodyAsJson - Boolean to skip running JSON.parse() on message body content.\n * @returns decoded body or the given body as-is.\n */\n decode(body: unknown, skipParsingBodyAsJson: boolean): unknown {\n let actualContent = body;\n\n if (isRheaAmqpSection(body)) {\n actualContent = body.content;\n }\n\n return skipParsingBodyAsJson ? actualContent : tryToJsonDecode(actualContent);\n },\n /**\n * A function that takes the body property from an AMQP message, which can come from either\n * the 'data', 'value' or 'sequence' sections of an AMQP message.\n *\n * If the body is not a JSON string the the raw contents will be returned, along with the bodyType\n * indicating which part of the AMQP message the body was decoded from.\n *\n * @param body - The AMQP message body as received from rhea.\n * @param skipParsingBodyAsJson - Boolean to skip running JSON.parse() on message body.\n * @returns The decoded/raw body and the body type.\n */\n decodeWithType(\n body: unknown | RheaAmqpSection,\n skipParsingBodyAsJson: boolean,\n ): { body: unknown; bodyType: \"data\" | \"sequence\" | \"value\" } {\n try {\n if (isRheaAmqpSection(body)) {\n switch (body.typecode) {\n case dataSectionTypeCode:\n return {\n body: skipParsingBodyAsJson ? body.content : tryToJsonDecode(body.content),\n bodyType: \"data\",\n };\n case sequenceSectionTypeCode:\n // typecode:\n // handle sequences\n return { body: body.content, bodyType: \"sequence\" };\n case valueSectionTypeCode:\n // value\n return { body: body.content, bodyType: \"value\" };\n }\n } else {\n // not sure - we have to try to infer the proper bodyType and content\n if (isBuffer(body)) {\n // This indicates that we are getting the AMQP described type. Let us try decoding it.\n return { body: skipParsingBodyAsJson ? body : tryToJsonDecode(body), bodyType: \"data\" };\n } else {\n return { body: body, bodyType: \"value\" };\n }\n }\n } catch (err: any) {\n logger.verbose(\n \"[decode] An error occurred while decoding the received message body. The error is: %O\",\n err,\n );\n throw err;\n }\n },\n};\n\n/** @internal */\nexport function isRheaAmqpSection(\n possibleSection: any | RheaAmqpSection,\n): possibleSection is RheaAmqpSection {\n return (\n possibleSection != null &&\n typeof possibleSection.typecode === \"number\" &&\n (possibleSection.typecode === dataSectionTypeCode ||\n possibleSection.typecode === valueSectionTypeCode ||\n possibleSection.typecode === sequenceSectionTypeCode)\n );\n}\n\n/**\n * Attempts to decode 'body' as a JSON string. If it fails it returns body\n * verbatim.\n *\n * @param body - An AMQP message body.\n * @returns A JSON decoded object, or body if body was not a JSON string.\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function tryToJsonDecode(body: any): any {\n let processedBody = body;\n try {\n // Trying to stringify and JSON.parse() anything else will fail flat and we shall return\n // the original type back\n const bodyStr: string = processedBody.toString(\"utf8\");\n processedBody = JSON.parse(bodyStr);\n } catch (err: any) {\n logger.verbose(\n \"[decode] An error occurred while trying JSON.parse() on the received body. \" +\n \"The error is %O\",\n err,\n );\n }\n return processedBody;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"instrumentServiceBusMessage.js","sourceRoot":"","sources":["../../../src/diagnostics/instrumentServiceBusMessage.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TracingContext, TracingSpanLink, TracingSpanOptions } from \"@azure/core-tracing\";\nimport { ConnectionContext } from \"../connectionContext\";\nimport { OperationOptionsBase } from \"../modelsToBeSharedWithEventHubs\";\nimport { ServiceBusReceiver } from \"../receivers/receiver\";\nimport { ServiceBusMessage, ServiceBusReceivedMessage } from \"../serviceBusMessage\";\nimport { MessagingOperationNames, toSpanOptions, tracingClient } from \"./tracing\";\n\n/**\n * @internal\n */\nexport const TRACEPARENT_PROPERTY = \"Diagnostic-Id\";\n\n/**\n * @hidden\n */\nexport interface InstrumentableMessage {\n /**\n * The application specific properties which can be\n * used for custom message metadata.\n */\n applicationProperties?: { [key: string]: number | boolean | string | Date | null };\n}\n\n/**\n * Instruments an AMQP message with a proper `Diagnostic-Id` for tracing.\n *\n * @hidden\n */\nexport function instrumentMessage<T extends InstrumentableMessage>(\n message: T,\n options: OperationOptionsBase,\n entityPath: string,\n host: string,\n operation: MessagingOperationNames,\n): {\n /**\n * If instrumentation was done, a copy of the message with\n * message.applicationProperties['Diagnostic-Id'] filled\n * out appropriately.\n */\n message: T;\n\n /**\n * A valid SpanContext if this message should be linked to a parent span, or undefined otherwise.\n */\n spanContext: TracingContext | undefined;\n} {\n // check if the event has already been instrumented\n const previouslyInstrumented = Boolean(message.applicationProperties?.[TRACEPARENT_PROPERTY]);\n\n if (previouslyInstrumented) {\n return {\n message,\n spanContext: undefined,\n };\n }\n\n const { span: messageSpan, updatedOptions } = tracingClient.startSpan(\n \"message\",\n options,\n toSpanOptions({ entityPath, host }, operation, \"producer\"),\n );\n\n try {\n if (!messageSpan.isRecording()) {\n return {\n message,\n spanContext: undefined,\n };\n }\n\n const traceParent = tracingClient.createRequestHeaders(\n updatedOptions.tracingOptions?.tracingContext,\n )[\"traceparent\"];\n\n if (traceParent) {\n // create a copy so the original isn't modified\n message = {\n ...message,\n applicationProperties: {\n ...message.applicationProperties,\n [TRACEPARENT_PROPERTY]: traceParent,\n },\n };\n }\n\n return {\n message,\n spanContext: updatedOptions.tracingOptions?.tracingContext,\n };\n } finally {\n messageSpan.end();\n }\n}\n\n/**\n * Extracts the `SpanContext` from an `ServiceBusMessage` if the context exists.\n * @param message - An individual `ServiceBusMessage` object.\n * @internal\n */\nexport function extractSpanContextFromServiceBusMessage(\n message: ServiceBusMessage,\n): TracingContext | undefined {\n if (!message.applicationProperties || !message.applicationProperties[TRACEPARENT_PROPERTY]) {\n return;\n }\n\n const diagnosticId = message.applicationProperties[TRACEPARENT_PROPERTY] as string;\n return tracingClient.parseTraceparentHeader(diagnosticId);\n}\n\n/**\n * Provides an iterable over messages, whether it is a single message or multiple\n * messages.\n *\n * @param receivedMessages - A single message or a set of messages\n * @internal\n */\nfunction* getReceivedMessages(\n receivedMessages: ServiceBusReceivedMessage | ServiceBusReceivedMessage[],\n): Iterable<ServiceBusReceivedMessage> {\n if (!Array.isArray(receivedMessages)) {\n yield receivedMessages;\n } else {\n for (const message of receivedMessages) {\n yield message;\n }\n }\n}\n\n/**\n * @internal\n */\nexport function toProcessingSpanOptions(\n receivedMessages: ServiceBusReceivedMessage | ServiceBusReceivedMessage[],\n receiver: Pick<ServiceBusReceiver, \"entityPath\">,\n connectionConfig: Pick<ConnectionContext[\"config\"], \"host\">,\n operation: MessagingOperationNames,\n): TracingSpanOptions {\n const spanLinks: TracingSpanLink[] = [];\n for (const receivedMessage of getReceivedMessages(receivedMessages)) {\n const tracingContext = extractSpanContextFromServiceBusMessage(receivedMessage);\n if (tracingContext) {\n spanLinks.push({\n tracingContext,\n attributes: {\n enqueuedTime: receivedMessage.enqueuedTimeUtc?.getTime(),\n },\n });\n }\n }\n return {\n spanLinks,\n spanKind: \"consumer\",\n ...toSpanOptions({ host: connectionConfig.host, entityPath: receiver.entityPath }, operation),\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/diagnostics/tracing.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mBAAmB,EAAuC,MAAM,qBAAqB,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;IAC/C,SAAS,EAAE,sBAAsB;IACjC,WAAW,EAAE,eAAe,CAAC,IAAI;IACjC,cAAc,EAAE,eAAe,CAAC,OAAO;CACxC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,gBAAyE,EACzE,SAAkC,EAClC,QAA0B;IAE1B,MAAM,YAAY,GAChB,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;QAChD,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,4BAA4B,CAAC;IAEnC,MAAM,WAAW,GAAuB;QACtC,cAAc,EAAE;YACd,kBAAkB,EAAE,YAAY;YAChC,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,UAAU;YAC3C,qBAAqB,EAAE,SAAS;YAChC,eAAe,EAAE,gBAAgB,CAAC,IAAI;SACvC;KACF,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAClC,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createTracingClient, TracingSpanOptions, TracingSpanKind } from \"@azure/core-tracing\";\nimport { ConnectionConfig } from \"@azure/core-amqp\";\nimport { packageJsonInfo } from \"../util/constants\";\n\n/**\n * The names of the operations that can be instrumented.\n */\nexport type MessagingOperationNames = \"publish\" | \"receive\" | \"process\" | \"settle\";\n\n/**\n * The {@link TracingClient} that is used to add tracing spans.\n */\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.ServiceBus\",\n packageName: packageJsonInfo.name,\n packageVersion: packageJsonInfo.version,\n});\n\n/**\n * Creates {@link TracingSpanOptions} from the provided data.\n * @param serviceBusConfig - The configuration object containing initial attributes to set on the span.\n * @param spanKind - The {@link TracingSpanKind} for the newly created span.\n * @param operation - The operation type.\n * @returns a {@link TracingSpanOptions} that can be passed to a {@link TracingClient}\n */\nexport function toSpanOptions(\n serviceBusConfig: Pick<ConnectionConfig, \"host\"> & { entityPath: string },\n operation: MessagingOperationNames,\n spanKind?: TracingSpanKind,\n): TracingSpanOptions {\n const propertyName =\n operation === \"process\" || operation === \"receive\"\n ? \"messaging.source.name\"\n : \"messaging.destination.name\";\n\n const spanOptions: TracingSpanOptions = {\n spanAttributes: {\n \"messaging.system\": \"servicebus\",\n [propertyName]: serviceBusConfig.entityPath,\n \"messaging.operation\": operation,\n \"net.peer.name\": serviceBusConfig.host,\n },\n };\n if (spanKind) {\n spanOptions.spanKind = spanKind;\n }\n return spanOptions;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,8BAA8B;AAC9B,4CAA4C;AAE5C,OAAO,EACL,KAAK,EACL,cAAc,EAEd,SAAS,EACT,SAAS,GAEV,MAAM,kBAAkB,CAAC;AA0C1B,OAAO,EAEL,8BAA8B,GAG/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAuB,MAAM,mBAAmB,CAAC;AAO5F,OAAO,EACL,+BAA+B,GAEhC,MAAM,8BAA8B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/// <reference lib=\"es2015\" />\n/// <reference lib=\"esnext.asynciterable\" />\n\nexport {\n delay,\n MessagingError,\n RetryOptions,\n RetryMode,\n TokenType,\n WebSocketOptions,\n} from \"@azure/core-amqp\";\nexport { TokenCredential } from \"@azure/core-auth\";\nexport { OperationOptions } from \"@azure/core-client\";\nexport { Delivery, WebSocketImpl } from \"rhea-promise\";\nexport { ServiceBusClientOptions } from \"./constructorHelpers\";\nexport { CorrelationRuleFilter } from \"./core/managementClient\";\nexport {\n DeleteMessagesOptions,\n PurgeMessagesOptions,\n CreateMessageBatchOptions,\n GetMessageIteratorOptions,\n MessageHandlers,\n PeekMessagesOptions,\n ProcessErrorArgs,\n ReceiveMessagesOptions,\n ServiceBusReceiverOptions,\n ServiceBusSessionReceiverOptions,\n ServiceBusSenderOptions,\n SubscribeOptions,\n} from \"./models\";\nexport { OperationOptionsBase, TryAddOptions } from \"./modelsToBeSharedWithEventHubs\";\nexport { ServiceBusReceiver } from \"./receivers/receiver\";\nexport { ServiceBusSessionReceiver } from \"./receivers/sessionReceiver\";\nexport { ServiceBusSender } from \"./sender\";\nexport { ServiceBusRuleManager } from \"./serviceBusRuleManager\";\nexport { NamespaceProperties } from \"./serializers/namespaceResourceSerializer\";\nexport {\n CreateQueueOptions,\n QueueProperties,\n QueueRuntimeProperties,\n} from \"./serializers/queueResourceSerializer\";\nexport { RuleProperties, SqlRuleAction, SqlRuleFilter } from \"./serializers/ruleResourceSerializer\";\nexport {\n CreateSubscriptionOptions,\n SubscriptionProperties,\n SubscriptionRuntimeProperties,\n} from \"./serializers/subscriptionResourceSerializer\";\nexport {\n CreateTopicOptions,\n TopicProperties,\n TopicRuntimeProperties,\n} from \"./serializers/topicResourceSerializer\";\nexport {\n EntitiesResponse,\n ServiceBusAdministrationClient,\n WithResponse,\n ServiceBusAdministrationClientOptions,\n} from \"./serviceBusAtomManagementClient\";\nexport { ServiceBusClient } from \"./serviceBusClient\";\nexport { isServiceBusError, ServiceBusError, ServiceBusErrorCode } from \"./serviceBusError\";\nexport {\n DeadLetterOptions,\n ServiceBusMessage,\n ServiceBusReceivedMessage,\n} from \"./serviceBusMessage\";\nexport { ServiceBusMessageBatch } from \"./serviceBusMessageBatch\";\nexport {\n parseServiceBusConnectionString,\n ServiceBusConnectionStringProperties,\n} from \"./util/connectionStringUtils\";\nexport { AuthorizationRule, EntityAvailabilityStatus, EntityStatus } from \"./util/utils\";\nexport {\n HttpResponse,\n HttpHeader,\n RawHttpHeaders,\n HttpHeadersLike,\n TransferProgressEvent,\n WebResourceLike,\n} from \"./util/compat\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/log.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;AAEjF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,4BAA4B,CAAC,CAAC;AAEzF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;AAEvF;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoB,EAAE,KAAc;IACrE,IAAI,sBAAsB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5D,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAkBD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAqB,CAAC;IAElE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAkC,EAAE,GAAG,IAAW,EAAQ,EAAE;QACjF,IAAI,CAAqB,CAAC;QAE1B,sFAAsF;QACtF,2BAA2B;QAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9C,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEpB,mEAAmE;QACnE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAEX,mFAAmF;QACnF,IAAI,GAAG,IAAK,GAAW,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAE,GAAW,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,GAAkC;IACjD,OAAO,GAAG,IAAI,IAAI,IAAK,GAAW,CAAC,IAAI,IAAI,IAAI,CAAC;AAClD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AzureLogger, createClientLogger } from \"@azure/logger\";\nimport { AmqpError } from \"rhea-promise\";\nimport { isObjectWithProperties } from \"@azure/core-util\";\n\n/**\n * The `@azure/logger` configuration for this package.\n * This will output logs using the `azure:service-bus` namespace prefix.\n * @internal\n */\nexport const logger = createServiceBusLogger(\"service-bus\");\n\n/**\n * Logging for ServiceBusReceivers of any type (session, non-session)\n * @internal\n */\nexport const receiverLogger = createServiceBusLogger(\"service-bus:receiver\");\n\n/**\n * Logging for ServiceBusSenders\n * @internal\n */\nexport const senderLogger = createServiceBusLogger(\"service-bus:sender\");\n\n/**\n * Logging for ServiceBusRuleManagers\n * @internal\n */\nexport const ruleManagerLogger = createServiceBusLogger(\"service-bus:rulemanager\");\n\n/**\n * Logging for connection management\n * @internal\n */\nexport const connectionLogger = createServiceBusLogger(\"service-bus:connection\");\n\n/**\n * Logging for the ServiceBusAdministrationClient\n * @internal\n */\nexport const administrationLogger = createServiceBusLogger(\"service-bus:administration\");\n\n/**\n * Logging related to message encoding/decoding.\n * @internal\n */\nexport const messageLogger = createServiceBusLogger(\"service-bus:messages\");\n\n/**\n * Logging related to message encoding/decoding.\n * @internal\n */\nexport const managementClientLogger = createServiceBusLogger(\"service-bus:management\");\n\n/**\n * Logs the error's stack trace to \"verbose\" if a stack trace is available.\n * @param error - Error containing a stack trace.\n * @internal\n */\nexport function logErrorStackTrace(_logger: AzureLogger, error: unknown): void {\n if (isObjectWithProperties(error, [\"stack\"]) && error.stack) {\n _logger.verbose(error.stack);\n }\n}\n\n/**\n * @internal\n */\nexport interface ServiceBusLogger extends AzureLogger {\n /**\n * Logs an error with an associated message, formatted. If there is a stack\n * trace in the error that will be logged to the verbose stream.\n *\n * Example:\n * receiverLogger.logError(new Error(\"hello, this is the error\"), \"this is my message\");\n * will output:\n * azure:service-bus:receiver:warning this is my message : Error: hello, this is the error\n */\n logError(err: Error | AmqpError | undefined, ...args: any[]): void;\n}\n\n/**\n * Creates an AzureLogger with any additional methods for standardized logging (for example, with errors)\n * @internal\n */\nexport function createServiceBusLogger(namespace: string): ServiceBusLogger {\n const _logger = createClientLogger(namespace) as ServiceBusLogger;\n\n _logger[\"logError\"] = (err: Error | AmqpError | undefined, ...args: any[]): void => {\n let l: typeof logger.info;\n\n // abort errors are user initiated so we don't have to treat them as warnings, like we\n // would with other errors.\n if (isError(err) && err.name === \"AbortError\") {\n l = _logger.info;\n } else {\n l = _logger.warning;\n }\n\n // tack on the error object so it also gets logged.\n args.push(\":\", err);\n\n // let the normal formatting work and include the error at the end.\n l(...args);\n\n // optionally log the stack trace if it's available but this always goes to verbose\n if (err && (err as any).stack) {\n _logger.verbose((err as any).stack);\n }\n };\n\n return _logger;\n}\n\n/**\n * @internal\n */\nfunction isError(err: Error | AmqpError | undefined): err is Error {\n return err != null && (err as any).name != null;\n}\n"]}
@@ -1,4 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- export {};
4
- //# sourceMappingURL=models.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { OperationOptionsBase } from \"./modelsToBeSharedWithEventHubs\";\nimport Long from \"long\";\nimport { ServiceBusReceivedMessage } from \"./serviceBusMessage\";\nimport { ServiceBusError } from \"./serviceBusError\";\n\n/**\n * Arguments to the `processError` callback.\n */\nexport interface ProcessErrorArgs {\n /**\n * The error.\n */\n error: Error | ServiceBusError;\n /**\n * The operation where the error originated.\n *\n * 'abandon': Errors that occur when if `abandon` is triggered automatically.\n * 'complete': Errors that occur when autoComplete completes a message.\n * 'processMessageCallback': Errors thrown from the user's `processMessage` callback passed to `subscribe`.\n * 'receive': Errors thrown when receiving messages.\n * 'renewLock': Errors thrown when automatic lock renewal fails.\n */\n errorSource: \"abandon\" | \"complete\" | \"processMessageCallback\" | \"receive\" | \"renewLock\";\n /**\n * The entity path for the current receiver.\n */\n entityPath: string;\n /**\n * The fully qualified namespace for the Service Bus.\n */\n fullyQualifiedNamespace: string;\n /**\n * The identifier of the client that raised this event.\n */\n identifier: string;\n}\n\n/**\n * @internal\n */\nexport interface InternalProcessErrorArgs extends Omit<ProcessErrorArgs, \"errorSource\"> {\n /**\n * The operation where the error originated.\n *\n * 'abandon': Errors that occur when if `abandon` is triggered automatically.\n * 'complete': Errors that occur when autoComplete completes a message.\n * 'processMessageCallback': Errors thrown from the user's `processMessage` callback passed to `subscribe`.\n * 'receive': Errors thrown when receiving messages.\n * 'renewLock': Errors thrown when automatic lock renewal fails.\n */\n errorSource: ProcessErrorArgs[\"errorSource\"] | \"internal\";\n}\n\n/**\n * The general message handler interface (used for streamMessages).\n */\nexport interface MessageHandlers {\n /**\n * Handler that processes messages from service bus.\n *\n * @param message - A message received from Service Bus.\n */\n processMessage(message: ServiceBusReceivedMessage): Promise<void>;\n /**\n * Handler that processes errors that occur during receiving.\n *\n * This handler will be called for any error that occurs in the receiver when\n * - receiving the message, or\n * - executing your `processMessage` callback, or\n * - receiver is completing the message on your behalf after successfully running your `processMessage` callback and `autoCompleteMessages` is enabled\n * - receiver is abandoning the message on your behalf if running your `processMessage` callback fails and `autoCompleteMessages` is enabled\n * - receiver is renewing the lock on your behalf due to auto lock renewal feature being enabled\n *\n * Note that when receiving messages in a stream using `subscribe()`, the receiver will automatically retry receiving messages on all errors unless\n * `close()` is called on the subscription. It is completely up to users to decide what errors are considered non-recoverable and to handle them\n * accordingly in this callback.\n * For a list of errors occurs within Service Bus, please refer to https://docs.microsoft.com/javascript/api/\\@azure/service-bus/servicebuserror?view=azure-node-latest\n * @param args - The error and additional context to indicate where\n * the error originated.\n */\n processError(args: ProcessErrorArgs): Promise<void>;\n}\n\n/**\n * @internal\n */\nexport interface InternalMessageHandlers extends MessageHandlers {\n /**\n * Called when the connection is initialized but before we've added credits.\n * NOTE: This handler is completely internal and only used for tests.\n */\n postInitialize?: () => Promise<void>;\n\n /**\n * Called before we actually initialize the link itself.\n * NOTE: This handler is completely internal and only used for tests.\n */\n preInitialize?: () => Promise<void>;\n\n /**\n * Forwards internal errors that are not normally reported to the customer to `processError`.\n * (defaults to false)\n */\n forwardInternalErrors?: boolean;\n}\n\n/**\n * Represents the possible receive modes for the receiver.\n * @internal\n */\nexport type ReceiveMode = \"peekLock\" | \"receiveAndDelete\";\n\n/**\n * Options to use when creating a receiver.\n */\nexport interface ServiceBusReceiverOptions {\n /**\n * Represents the receive mode for the receiver.\n *\n * In receiveAndDelete mode, messages are deleted from Service Bus as they are received.\n *\n * In peekLock mode, the receiver has a lock on the message for the duration specified on the\n * queue/subscription.\n *\n * Messages that are not settled within the lock duration will be redelivered as many times as\n * the max delivery count set on the queue/subscription, after which they get sent to a separate\n * dead letter queue.\n *\n * You can settle a message by calling complete(), abandon(), defer() or deadletter() methods on\n * the message.\n *\n * More information about how peekLock and message settlement works here:\n * https://docs.microsoft.com/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock\n *\n */\n receiveMode?: \"peekLock\" | \"receiveAndDelete\";\n /**\n * Represents the sub queue that is applicable for any queue or subscription.\n * Valid values are \"deadLetter\" and \"transferDeadLetter\". To learn more about dead letter queues,\n * see https://docs.microsoft.com/azure/service-bus-messaging/service-bus-dead-letter-queues\n */\n subQueueType?: \"deadLetter\" | \"transferDeadLetter\";\n\n /**\n * The maximum duration, in milliseconds, that the lock on the message will be renewed automatically by the client.\n * This auto renewal stops once the message is settled.\n *\n * - **Default**: `300 * 1000` milliseconds (5 minutes).\n * - **To disable autolock renewal**, set this to `0`.\n *\n * **Example:**\n *\n * If the message lock expires in 2 minutes and your message processing time is 8 minutes...\n *\n * Set maxAutoLockRenewalDurationInMs to 10 minutes, and the message lock will be automatically renewed for 4 times\n * (equivalent to having the message locked for 4 times its lock duration by leveraging the lock renewals).\n */\n maxAutoLockRenewalDurationInMs?: number;\n /**\n * Option to disable the client from running JSON.parse() on the message body when receiving the message.\n * Not applicable if the message was sent with AMQP body type value or sequence. Use this option when you\n * prefer to work directly with the bytes present in the message body than have the client attempt to parse it.\n */\n skipParsingBodyAsJson?: boolean;\n /**\n * Whether to skip converting Date type on properties of message annotations\n * or application properties into numbers when receiving the message. By\n * default, properties of Date type is converted into UNIX epoch number for\n * compatibility.\n */\n skipConvertingDate?: boolean;\n /**\n * Sets the name to identify the receiver. This can be used to correlate logs and exceptions.\n * If not specified or empty, a random unique one will be used.\n */\n identifier?: string;\n}\n\n/**\n * Options to use when creating a sender.\n */\nexport interface ServiceBusSenderOptions {\n /**\n * Sets the name to identify the sender. This can be used to correlate logs and exceptions.\n * If not specified or empty, a random unique one will be used.\n */\n identifier?: string;\n}\n\n/**\n * Options to configure the `createBatch` method on the `Sender`.\n * - `maxSizeInBytes`: The upper limit for the size of batch.\n *\n * Example usage:\n * ```js\n * {\n * maxSizeInBytes: 1024 * 1024 // 1 MB\n * }\n * ```\n */\nexport interface CreateMessageBatchOptions extends OperationOptionsBase {\n /**\n * The upper limit for the size of batch. The `tryAdd` function will return `false` after this limit is reached.\n */\n maxSizeInBytes?: number;\n}\n\n/**\n * Options when receiving a batch of messages from Service Bus.\n */\nexport interface ReceiveMessagesOptions extends OperationOptionsBase {\n /**\n * The maximum amount of time to wait for messages to arrive.\n * **Default**: `60000` milliseconds.\n */\n maxWaitTimeInMs?: number;\n}\n\n/**\n * Options when getting an iterable iterator from Service Bus.\n */\nexport interface GetMessageIteratorOptions extends OperationOptionsBase {}\n\n/**\n * Options used when subscribing to a Service Bus queue or subscription.\n */\nexport interface SubscribeOptions extends OperationOptionsBase {\n /**\n * Indicates whether the message should be settled automatically based on the result from the\n * user provided `processMessage` callback.\n *\n * - If an error is thrown from the `processMessage` callback the message will be abandoned\n * using `receiver.abandonMessage()`. Doing so will make the message available again from the\n * queue/subscription and the delivery count will be incremented.\n * - If NO error is thrown from `processMessage` the message will be completed\n * using `receiver.completeMessage()`. Doing so removes the message from the queue/subscription.\n *\n * This option is ignored if messages are received in the `receiveAndDelete` receive mode or if\n * the message is already settled in the user provided message callback.\n *\n * - **Default**: `true`.\n */\n autoCompleteMessages?: boolean;\n /**\n * The maximum number of concurrent calls that the library\n * can make to the user's message handler. Once this limit has been reached, more messages will\n * not be received until atleast one of the calls to the user's message handler has completed.\n * - **Default**: `1`.\n */\n maxConcurrentCalls?: number;\n}\n\n/**\n * Describes the options passed to the `acceptSession` and `acceptNextSession` methods\n * when using a Queue/Subscription that has sessions enabled.\n */\nexport interface ServiceBusSessionReceiverOptions extends OperationOptionsBase {\n /**\n * Represents the receive mode for the receiver.\n *\n * In receiveAndDelete mode, messages are deleted from Service Bus as they are received.\n *\n * In peekLock mode, the receiver has a lock on the message for the duration specified on the\n * queue/subscription.\n *\n * Messages that are not settled within the lock duration will be redelivered as many times as\n * the max delivery count set on the queue/subscription, after which they get sent to a separate\n * dead letter queue.\n *\n * You can settle a message by calling complete(), abandon(), defer() or deadletter() methods on\n * the message.\n *\n * More information about how peekLock and message settlement works here:\n * https://docs.microsoft.com/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock\n *\n */\n receiveMode?: \"peekLock\" | \"receiveAndDelete\";\n /**\n * The maximum duration, in milliseconds, that the lock on the session will be renewed automatically by the client.\n *\n * - **Default**: `300000` milliseconds (5 minutes).\n * - **To disable autolock renewal**, set this to `0`.\n *\n * **Example:**\n *\n * If the lock expires in 2 minutes and your processing time is 8 minutes...\n *\n * Set maxAutoLockRenewalDurationInMs to 10 minutes, and the lock will be automatically renewed about 4 times\n * (equivalent to having the session locked for 4 times its lock duration by leveraging the lock renewals).\n */\n maxAutoLockRenewalDurationInMs?: number;\n /**\n * Option to disable the client from running JSON.parse() on the message body when receiving the message.\n * Not applicable if the message was sent with AMQP body type value or sequence. Use this option when you\n * prefer to work directly with the bytes present in the message body than have the client attempt to parse it.\n */\n skipParsingBodyAsJson?: boolean;\n /**\n * Whether to skip converting Date type on properties of message annotations\n * or application properties into numbers when receiving the message. By\n * default, properties of Date type is converted into UNIX epoch number for\n * compatibility.\n */\n skipConvertingDate?: boolean;\n /**\n * Sets the name to identify the session receiver. This can be used to correlate logs and exceptions.\n * If not specified or empty, a random unique one will be used.\n */\n identifier?: string;\n}\n\n/**\n * Describes the options passed to the `peekMessages` method on a receiver.\n */\nexport interface PeekMessagesOptions extends OperationOptionsBase {\n /**\n * The sequence number to start peeking messages from (inclusive).\n */\n fromSequenceNumber?: Long;\n /**\n * @beta\n * (Experimental for diagnostic purpose) Specifies whether to omit the body when peeking messages. Default value `false`.\n */\n omitMessageBody?: boolean;\n}\n\n/**\n * Options to configure messages deletion.\n */\nexport interface DeleteMessagesOptions extends OperationOptionsBase {\n /**\n * If specified, only messages enqueued before this time are deleted.\n */\n beforeEnqueueTime?: Date;\n /**\n * Up to `maxMessageCount` messages will be deleted.\n */\n maxMessageCount: number;\n}\n\n/**\n * Options to configure deletion of all messages in an entity.\n */\nexport interface PurgeMessagesOptions extends OperationOptionsBase {\n /**\n * If specified, only messages enqueued before this time are deleted.\n */\n beforeEnqueueTime?: Date;\n}\n"]}
@@ -1,4 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- export {};
4
- //# sourceMappingURL=modelsToBeSharedWithEventHubs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modelsToBeSharedWithEventHubs.js","sourceRoot":"","sources":["../../src/modelsToBeSharedWithEventHubs.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// TODO: this code is a straight-copy from EventHubs. Need to merge.\n\nimport { OperationTracingOptions } from \"@azure/core-tracing\";\nimport { OperationOptions } from \"@azure/core-client\";\n\n/**\n * NOTE: This type is intended to mirror the relevant fields and structure from `@azure/core-client` OperationOptions\n *\n * Options for configuring tracing and the abortSignal.\n */\nexport type OperationOptionsBase = Pick<OperationOptions, \"abortSignal\" | \"tracingOptions\">;\n\n/**\n * The set of options to manually propagate `Span` context for distributed tracing.\n */\nexport interface TryAddOptions {\n /**\n * The options to use when creating Spans for tracing.\n */\n tracingOptions?: OperationTracingOptions;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"receiver.js","sourceRoot":"","sources":["../../../src/receivers/receiver.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n PeekMessagesOptions,\n GetMessageIteratorOptions,\n MessageHandlers,\n ReceiveMessagesOptions,\n SubscribeOptions,\n DeleteMessagesOptions,\n PurgeMessagesOptions,\n} from \"../models\";\nimport { OperationOptionsBase } from \"../modelsToBeSharedWithEventHubs\";\nimport { ServiceBusReceivedMessage } from \"../serviceBusMessage\";\nimport { ConnectionContext } from \"../connectionContext\";\nimport {\n getAlreadyReceivingErrorMsg,\n getReceiverClosedErrorMsg,\n InvalidMaxMessageCountError,\n throwErrorIfConnectionClosed,\n throwTypeErrorIfParameterMissing,\n throwTypeErrorIfParameterNotLong,\n throwErrorIfInvalidOperationOnMessage,\n throwTypeErrorIfParameterTypeMismatch,\n} from \"../util/errors\";\nimport { ReceiveOptions } from \"../core/messageReceiver\";\nimport { StreamingReceiver } from \"../core/streamingReceiver\";\nimport { BatchingReceiver } from \"../core/batchingReceiver\";\nimport {\n abandonMessage,\n assertValidMessageHandlers,\n completeMessage,\n deadLetterMessage,\n deferMessage,\n getMessageIterator,\n} from \"./receiverCommon\";\nimport Long from \"long\";\nimport { ServiceBusMessageImpl, DeadLetterOptions } from \"../serviceBusMessage\";\nimport { Constants, RetryConfig, RetryOperationType, RetryOptions, retry } from \"@azure/core-amqp\";\nimport { LockRenewer } from \"../core/autoLockRenewer\";\nimport { receiverLogger as logger } from \"../log\";\nimport { translateServiceBusError } from \"../serviceBusError\";\nimport { ensureValidIdentifier } from \"../util/utils\";\nimport { toSpanOptions, tracingClient } from \"../diagnostics/tracing\";\nimport { extractSpanContextFromServiceBusMessage } from \"../diagnostics/instrumentServiceBusMessage\";\nimport { TracingSpanLink } from \"@azure/core-tracing\";\n\n/**\n * The default time to wait for messages _after_ the first message\n * has been received.\n *\n * This timeout only applies to receiveMessages()\n *\n * @internal\n */\nexport const defaultMaxTimeAfterFirstMessageForBatchingMs = 1000;\n\n/**\n * The maximum number of messages to delete in a single batch. This cap is established and enforced by the service.\n * @internal\n */\nexport const MaxDeleteMessageCount = 4000;\n\n/**\n * A receiver that does not handle sessions.\n */\nexport interface ServiceBusReceiver {\n /**\n * A name used to identify the receiver. This can be used to correlate logs and exceptions.\n * If not specified or empty, a random unique one will be generated.\n */\n identifier: string;\n\n /**\n * Streams messages to message handlers.\n * @param handlers - A handler that gets called for messages and errors.\n * @param options - Options for subscribe.\n * @returns An object that can be closed, sending any remaining messages to `handlers` and\n * stopping new messages from arriving.\n */\n subscribe(\n handlers: MessageHandlers,\n options?: SubscribeOptions,\n ): {\n /**\n * Causes the subscriber to stop receiving new messages.\n */\n close(): Promise<void>;\n };\n\n /**\n * Returns an iterator that can be used to receive messages from Service Bus.\n *\n * @param options - A set of options to control the receive operation.\n * - `abortSignal`: The signal to use to abort the ongoing operation.\n *\n * @throws Error if the underlying connection, client or receiver is closed.\n * @throws Error if current receiver is already in state of receiving messages.\n * @throws `ServiceBusError` if the service returns an error while receiving messages.\n */\n getMessageIterator(\n options?: GetMessageIteratorOptions,\n ): AsyncIterableIterator<ServiceBusReceivedMessage>;\n\n /**\n * Returns a promise that resolves to an array of messages received from Service Bus.\n *\n * @param maxMessageCount - The maximum number of messages to receive.\n * @param options - A set of options to control the receive operation.\n * - `maxWaitTimeInMs`: The maximum time to wait for the first message before returning an empty array if no messages are available.\n * - `abortSignal`: The signal to use to abort the ongoing operation.\n * @returns A promise that resolves with an array of messages.\n * @throws Error if the underlying connection, client or receiver is closed.\n * @throws Error if current receiver is already in state of receiving messages.\n * @throws `ServiceBusError` if the service returns an error while receiving messages.\n */\n receiveMessages(\n maxMessageCount: number,\n options?: ReceiveMessagesOptions,\n ): Promise<ServiceBusReceivedMessage[]>;\n\n /**\n * Returns a promise that resolves to an array of deferred messages identified by given `sequenceNumbers`.\n * @param sequenceNumbers - The sequence number or an array of sequence numbers for the messages that need to be received.\n * @param options - Options bag to pass an abort signal or tracing options.\n * @returns A list of messages identified by the given sequenceNumbers or an empty list if no messages are found.\n * @throws Error if the underlying connection or receiver is closed.\n * @throws `ServiceBusError` if the service returns an error while receiving deferred messages.\n */\n receiveDeferredMessages(\n sequenceNumbers: Long | Long[],\n options?: OperationOptionsBase,\n ): Promise<ServiceBusReceivedMessage[]>;\n\n /**\n * Peek the next batch of active messages (including deferred but not deadlettered messages) on the\n * queue or subscription without modifying them.\n * - The first call to `peekMessages()` fetches the first active message. Each subsequent call fetches the\n * subsequent message.\n * - Unlike a \"received\" message, \"peeked\" message is a read-only version of the message.\n * It cannot be `Completed/Abandoned/Deferred/Deadlettered`.\n * @param maxMessageCount - The maximum number of messages to peek.\n * @param options - Options that allow to specify the maximum number of messages to peek,\n * the sequenceNumber to start peeking from or an abortSignal to abort the operation.\n */\n peekMessages(\n maxMessageCount: number,\n options?: PeekMessagesOptions,\n ): Promise<ServiceBusReceivedMessage[]>;\n\n /**\n * Delete messages. If no option is specified, all messages will be deleted.\n *\n * @param options - Options to configure the operation.\n * @returns number of messages that have been deleted.\n */\n deleteMessages(options: DeleteMessagesOptions): Promise<number>;\n\n /**\n * Attempts to purge all messages from an entity. Locked messages are not eligible for removal and\n * will remain in the entity.\n *\n * @param options - Options that allow to specify the cutoff time for deletion. Only messages that were enqueued\n * before this time will be deleted. If not specified, current time will be used.\n * @returns number of messages deleted.\n */\n purgeMessages(options?: PurgeMessagesOptions): Promise<number>;\n\n /**\n * Path of the entity for which the receiver has been created.\n */\n entityPath: string;\n /**\n * The receive mode used to create the receiver.\n */\n receiveMode: \"peekLock\" | \"receiveAndDelete\";\n /**\n * Returns `true` if either the receiver or the client that created it has been closed.\n * @readonly\n */\n isClosed: boolean;\n /**\n * Closes the receiver.\n * Once closed, the receiver cannot be used for any further operations.\n * Use the `createReceiver()` method on the ServiceBusClient to create a new Receiver.\n */\n close(): Promise<void>;\n /**\n * Removes the message from Service Bus.\n *\n * @throws Error with name `SessionLockLostError` (for messages from a Queue/Subscription with sessions enabled)\n * if the AMQP link with which the message was received is no longer alive. This can\n * happen either because the lock on the session expired or the receiver was explicitly closed by\n * the user or the AMQP link is closed by the library due to network loss or service error.\n * @throws Error with name `MessageLockLostError` (for messages from a Queue/Subscription with sessions not enabled)\n * if the lock on the message has expired or the AMQP link with which the message was received is\n * no longer alive. The latter can happen if the receiver was explicitly closed by the user or the\n * AMQP link got closed by the library due to network loss or service error.\n * @throws Error if the message is already settled.\n * property on the message if you are not sure whether the message is settled.\n * @throws Error if used in `receiveAndDelete` mode because all messages received in this mode\n * are pre-settled. To avoid this error, update your code to not settle a message which is received\n * in this mode.\n * @throws Error with name `ServiceUnavailableError` if Service Bus does not acknowledge the request to settle\n * the message in time. The message may or may not have been settled successfully.\n */\n completeMessage(message: ServiceBusReceivedMessage): Promise<void>;\n /**\n * The lock held on the message by the receiver is let go, making the message available again in\n * Service Bus for another receive operation.\n *\n * @throws `ServiceBusError` with the code `SessionLockLost` (for messages from a Queue/Subscription with sessions enabled)\n * if the AMQP link with which the message was received is no longer alive. This can\n * happen either because the lock on the session expired or the receiver was explicitly closed by\n * the user or the AMQP link is closed by the library due to network loss or service error.\n * @throws `ServiceBusError` with the code `MessageLockLost` (for messages from a Queue/Subscription with sessions not enabled)\n * if the lock on the message has expired or the AMQP link with which the message was received is\n * no longer alive. The latter can happen if the receiver was explicitly closed by the user or the\n * AMQP link got closed by the library due to network loss or service error.\n * @throws Error if the message is already settled.\n * property on the message if you are not sure whether the message is settled.\n * @throws Error if used in `receiveAndDelete` mode because all messages received in this mode\n * are pre-settled. To avoid this error, update your code to not settle a message which is received\n * in this mode.\n * @throws `ServiceBusError` with the code `ServiceTimeout` if Service Bus does not acknowledge the request to settle\n * the message in time. The message may or may not have been settled successfully.\n *\n * @param propertiesToModify - The properties of the message to modify while abandoning the message.\n */\n abandonMessage(\n message: ServiceBusReceivedMessage,\n propertiesToModify?: { [key: string]: number | boolean | string | Date | null },\n ): Promise<void>;\n /**\n * Defers the processing of the message. Save the `sequenceNumber` of the message, in order to\n * receive it message again in the future using the `receiveDeferredMessage` method.\n *\n * @throws `ServiceBusError` with the code `SessionLockLost` (for messages from a Queue/Subscription with sessions enabled)\n * if the AMQP link with which the message was received is no longer alive. This can\n * happen either because the lock on the session expired or the receiver was explicitly closed by\n * the user or the AMQP link is closed by the library due to network loss or service error.\n * @throws `ServiceBusError` with the code `MessageLockLost` (for messages from a Queue/Subscription with sessions not enabled)\n * if the lock on the message has expired or the AMQP link with which the message was received is\n * no longer alive. The latter can happen if the receiver was explicitly closed by the user or the\n * AMQP link got closed by the library due to network loss or service error.\n * @throws Error if the message is already settled.\n * property on the message if you are not sure whether the message is settled.\n * @throws Error if used in `receiveAndDelete` mode because all messages received in this mode\n * are pre-settled. To avoid this error, update your code to not settle a message which is received\n * in this mode.\n * @throws `ServiceBusError` with the code `ServiceTimeout` if Service Bus does not acknowledge the request to settle\n * the message in time. The message may or may not have been settled successfully.\n *\n * @param propertiesToModify - The properties of the message to modify while deferring the message\n */\n deferMessage(\n message: ServiceBusReceivedMessage,\n propertiesToModify?: { [key: string]: number | boolean | string | Date | null },\n ): Promise<void>;\n /**\n * Moves the message to the deadletter sub-queue. To receive a deadletted message, create a new\n * QueueClient/SubscriptionClient using the path for the deadletter sub-queue.\n *\n * @throws `ServiceBusError` with the code `SessionLockLost` (for messages from a Queue/Subscription with sessions enabled)\n * if the AMQP link with which the message was received is no longer alive. This can\n * happen either because the lock on the session expired or the receiver was explicitly closed by\n * the user or the AMQP link is closed by the library due to network loss or service error.\n * @throws `ServiceBusError` with the code `MessageLockLost` (for messages from a Queue/Subscription with sessions not enabled)\n * if the lock on the message has expired or the AMQP link with which the message was received is\n * no longer alive. The latter can happen if the receiver was explicitly closed by the user or the\n * AMQP link got closed by the library due to network loss or service error.\n * @throws Error if the message is already settled.\n * property on the message if you are not sure whether the message is settled.\n * @throws Error if used in `receiveAndDelete` mode because all messages received in this mode\n * are pre-settled. To avoid this error, update your code to not settle a message which is received\n * in this mode.\n * @throws `ServiceBusError` with the code `ServiceTimeout` if Service Bus does not acknowledge the request to settle\n * the message in time. The message may or may not have been settled successfully.\n *\n * @param options - The DeadLetter options that can be provided while\n * rejecting the message.\n */\n deadLetterMessage(\n message: ServiceBusReceivedMessage,\n options?: DeadLetterOptions & { [key: string]: number | boolean | string | Date | null },\n ): Promise<void>;\n /**\n * Renews the lock on the message for the duration as specified during the Queue/Subscription\n * creation.\n * - Check the `lockedUntilUtc` property on the message for the time when the lock expires.\n * - If a message is not settled (using either `complete()`, `defer()` or `deadletter()`,\n * before its lock expires, then the message lands back in the Queue/Subscription for the next\n * receive operation.\n *\n * @returns New lock token expiry date and time in UTC format.\n * @throws Error if the underlying connection, client or receiver is closed.\n * @throws ServiceBusError if the service returns an error while renewing message lock.\n */\n renewMessageLock(message: ServiceBusReceivedMessage): Promise<Date>;\n}\n\n/**\n * @internal\n */\nexport class ServiceBusReceiverImpl implements ServiceBusReceiver {\n public identifier: string;\n private _retryOptions: RetryOptions;\n /**\n * Denotes if close() was called on this receiver\n */\n private _isClosed: boolean = false;\n\n /**\n * Instance of the BatchingReceiver class to use to receive messages in pull mode.\n */\n private _batchingReceiver?: BatchingReceiver;\n\n /**\n * Instance of the StreamingReceiver class to use to receive messages in push mode.\n */\n private _streamingReceiver?: StreamingReceiver;\n private _lockRenewer: LockRenewer | undefined;\n\n private get logPrefix(): string {\n return `[${this._context.connectionId}|receiver:${this.entityPath}]`;\n }\n\n /**\n * @throws Error if the underlying connection is closed.\n */\n constructor(\n private _context: ConnectionContext,\n public entityPath: string,\n public receiveMode: \"peekLock\" | \"receiveAndDelete\",\n maxAutoRenewLockDurationInMs: number,\n private skipParsingBodyAsJson: boolean,\n private skipConvertingDate: boolean = false,\n retryOptions: RetryOptions = {},\n identifier?: string,\n ) {\n throwErrorIfConnectionClosed(_context);\n this._retryOptions = retryOptions;\n this._lockRenewer = LockRenewer.create(\n this._context,\n maxAutoRenewLockDurationInMs,\n receiveMode,\n );\n this.identifier = ensureValidIdentifier(this.entityPath, identifier);\n }\n\n private _throwIfAlreadyReceiving(): void {\n if (this._isReceivingMessages()) {\n const errorMessage = getAlreadyReceivingErrorMsg(this.entityPath);\n const error = new Error(errorMessage);\n logger.logError(error, `${this.logPrefix} is already receiving`);\n throw error;\n }\n }\n\n private _throwIfReceiverOrConnectionClosed(): void {\n throwErrorIfConnectionClosed(this._context);\n if (this.isClosed) {\n const errorMessage = getReceiverClosedErrorMsg(this.entityPath);\n const error = new Error(errorMessage);\n logger.logError(error, `${this.logPrefix} is closed`);\n throw error;\n }\n }\n\n public get isClosed(): boolean {\n return this._isClosed || this._context.wasConnectionCloseCalled;\n }\n\n async receiveMessages(\n maxMessageCount: number,\n options?: ReceiveMessagesOptions,\n ): Promise<ServiceBusReceivedMessage[]> {\n this._throwIfReceiverOrConnectionClosed();\n this._throwIfAlreadyReceiving();\n throwTypeErrorIfParameterMissing(\n this._context.connectionId,\n \"maxMessageCount\",\n maxMessageCount,\n );\n throwTypeErrorIfParameterTypeMismatch(\n this._context.connectionId,\n \"maxMessageCount\",\n maxMessageCount,\n \"number\",\n );\n\n if (isNaN(maxMessageCount) || maxMessageCount < 1) {\n throw new TypeError(InvalidMaxMessageCountError);\n }\n\n const receiveMessages = async (): Promise<ServiceBusReceivedMessage[]> => {\n if (!this._batchingReceiver || !this._context.messageReceivers[this._batchingReceiver.name]) {\n const receiveOptions: ReceiveOptions = {\n maxConcurrentCalls: 0,\n receiveMode: this.receiveMode,\n lockRenewer: this._lockRenewer,\n skipParsingBodyAsJson: this.skipParsingBodyAsJson,\n skipConvertingDate: this.skipConvertingDate,\n };\n this._batchingReceiver = this._createBatchingReceiver(\n this._context,\n this.entityPath,\n receiveOptions,\n );\n }\n\n const receivedMessages = await this._batchingReceiver.receive(\n maxMessageCount,\n options?.maxWaitTimeInMs ?? Constants.defaultOperationTimeoutInMs,\n defaultMaxTimeAfterFirstMessageForBatchingMs,\n options ?? {},\n );\n\n return receivedMessages;\n };\n const config: RetryConfig<ServiceBusReceivedMessage[]> = {\n connectionHost: this._context.config.host,\n connectionId: this._context.connectionId,\n operation: receiveMessages,\n operationType: RetryOperationType.receiveMessage,\n abortSignal: options?.abortSignal,\n retryOptions: this._retryOptions,\n };\n return retry<ServiceBusReceivedMessage[]>(config).catch((err) => {\n throw translateServiceBusError(err);\n });\n }\n\n getMessageIterator(\n options?: GetMessageIteratorOptions,\n ): AsyncIterableIterator<ServiceBusReceivedMessage> {\n return getMessageIterator(this, options);\n }\n\n async receiveDeferredMessages(\n sequenceNumbers: Long | Long[],\n options: OperationOptionsBase = {},\n ): Promise<ServiceBusReceivedMessage[]> {\n this._throwIfReceiverOrConnectionClosed();\n throwTypeErrorIfParameterMissing(\n this._context.connectionId,\n \"sequenceNumbers\",\n sequenceNumbers,\n );\n throwTypeErrorIfParameterNotLong(\n this._context.connectionId,\n \"sequenceNumbers\",\n sequenceNumbers,\n );\n\n const deferredSequenceNumbers = Array.isArray(sequenceNumbers)\n ? sequenceNumbers\n : [sequenceNumbers];\n const receiveDeferredMessagesOperationPromise = async (): Promise<\n ServiceBusReceivedMessage[]\n > => {\n const deferredMessages = await this._context\n .getManagementClient(this.entityPath)\n .receiveDeferredMessages(deferredSequenceNumbers, this.receiveMode, undefined, {\n ...options,\n associatedLinkName: this._getAssociatedReceiverName(),\n requestName: \"receiveDeferredMessages\",\n timeoutInMs: this._retryOptions.timeoutInMs,\n skipParsingBodyAsJson: this.skipParsingBodyAsJson,\n skipConvertingDate: this.skipConvertingDate,\n });\n return deferredMessages;\n };\n const config: RetryConfig<ServiceBusReceivedMessage[]> = {\n operation: receiveDeferredMessagesOperationPromise,\n connectionId: this._context.connectionId,\n operationType: RetryOperationType.management,\n retryOptions: this._retryOptions,\n abortSignal: options?.abortSignal,\n };\n return retry<ServiceBusReceivedMessage[]>(config);\n }\n\n async deleteMessages(options: DeleteMessagesOptions): Promise<number> {\n this._throwIfReceiverOrConnectionClosed();\n\n const deleteMessagesOperationPromise = (): Promise<number> => {\n return this._context\n .getManagementClient(this.entityPath)\n .deleteMessages(options.maxMessageCount, options?.beforeEnqueueTime, undefined, {\n ...options,\n associatedLinkName: this._getAssociatedReceiverName(),\n requestName: \"deleteMessages\",\n timeoutInMs: this._retryOptions.timeoutInMs,\n });\n };\n const config: RetryConfig<number> = {\n operation: deleteMessagesOperationPromise,\n connectionId: this._context.connectionId,\n operationType: RetryOperationType.management,\n retryOptions: this._retryOptions,\n abortSignal: options?.abortSignal,\n };\n return retry<number>(config);\n }\n\n async purgeMessages(options?: PurgeMessagesOptions): Promise<number> {\n let deletedCount = await this.deleteMessages({\n maxMessageCount: MaxDeleteMessageCount,\n beforeEnqueueTime: options?.beforeEnqueueTime,\n });\n logger.verbose(\n `${this.logPrefix} receiver '${this.identifier}' deleted ${deletedCount} messages.`,\n );\n if (deletedCount > 0) {\n let batchCount = deletedCount;\n while (batchCount > 0) {\n batchCount = await this.deleteMessages({\n maxMessageCount: MaxDeleteMessageCount,\n beforeEnqueueTime: options?.beforeEnqueueTime,\n });\n logger.verbose(\n `${this.logPrefix} receiver '${this.identifier}' deleted ${batchCount} messages.`,\n );\n deletedCount += batchCount;\n }\n }\n logger.verbose(\n `${this.logPrefix} receiver '${this.identifier}' purged ${deletedCount} messages.`,\n );\n return deletedCount;\n }\n\n // ManagementClient methods # Begin\n\n async peekMessages(\n maxMessageCount: number,\n options: PeekMessagesOptions = {},\n ): Promise<ServiceBusReceivedMessage[]> {\n this._throwIfReceiverOrConnectionClosed();\n\n const managementRequestOptions = {\n ...options,\n associatedLinkName: this._getAssociatedReceiverName(),\n requestName: \"peekMessages\",\n timeoutInMs: this._retryOptions?.timeoutInMs,\n skipParsingBodyAsJson: this.skipParsingBodyAsJson,\n skipConvertingDate: this.skipConvertingDate,\n };\n const peekOperationPromise = async (): Promise<ServiceBusReceivedMessage[]> => {\n if (options.fromSequenceNumber !== undefined) {\n return this._context\n .getManagementClient(this.entityPath)\n .peekBySequenceNumber(\n options.fromSequenceNumber,\n maxMessageCount,\n undefined,\n options.omitMessageBody,\n managementRequestOptions,\n );\n } else {\n return this._context\n .getManagementClient(this.entityPath)\n .peek(maxMessageCount, options.omitMessageBody, managementRequestOptions);\n }\n };\n\n const config: RetryConfig<ServiceBusReceivedMessage[]> = {\n operation: peekOperationPromise,\n connectionId: this._context.connectionId,\n operationType: RetryOperationType.management,\n retryOptions: this._retryOptions,\n abortSignal: options?.abortSignal,\n };\n return retry<ServiceBusReceivedMessage[]>(config);\n }\n\n subscribe(\n handlers: MessageHandlers,\n options?: SubscribeOptions,\n ): {\n close(): Promise<void>;\n } {\n assertValidMessageHandlers(handlers);\n throwErrorIfConnectionClosed(this._context);\n this._throwIfReceiverOrConnectionClosed();\n this._throwIfAlreadyReceiving();\n\n options = {\n ...(options ?? {}),\n autoCompleteMessages: options?.autoCompleteMessages ?? true,\n };\n\n // When the user \"stops\" a streaming receiver (via the returned instance from 'subscribe' we just suspend\n // it, leaving the link open). This allows users to stop the flow of messages but still be able to settle messages\n // since the link itself hasn't been shut down.\n //\n // Users can, if they want, restart their subscription (since we've got a link already established).\n // So you'll have an instance here if the user has done:\n // 1. const subscription = receiver.subscribe()\n // 2. subscription.stop()\n // 3. receiver.subscribe()\n\n this._streamingReceiver =\n this._streamingReceiver ??\n new StreamingReceiver(this.identifier, this._context, this.entityPath, {\n ...options,\n receiveMode: this.receiveMode,\n retryOptions: this._retryOptions,\n lockRenewer: this._lockRenewer,\n skipParsingBodyAsJson: this.skipParsingBodyAsJson,\n skipConvertingDate: this.skipConvertingDate,\n });\n\n // this ensures that if the outer service bus client is closed that this receiver is cleaned up.\n // this mostly affects us if we're in the middle of init() - the connection (and receiver) are not yet\n // open but we do need to close the receiver to exit the init() loop.\n this._context.messageReceivers[this._streamingReceiver.name] = this._streamingReceiver;\n\n this._streamingReceiver.subscribe(handlers, options).catch((_) => {\n // (the error will already have been reported to the user)\n if (this._streamingReceiver) {\n delete this._context.messageReceivers[this._streamingReceiver.name];\n }\n });\n\n return {\n close: async (): Promise<void> => {\n return this._streamingReceiver?.stopReceivingMessages();\n },\n };\n }\n\n async completeMessage(message: ServiceBusReceivedMessage): Promise<void> {\n this._throwIfReceiverOrConnectionClosed();\n throwErrorIfInvalidOperationOnMessage(message, this.receiveMode, this._context.connectionId);\n const msgImpl = message as ServiceBusMessageImpl;\n return completeMessage(msgImpl, this._context, this.entityPath, this._retryOptions);\n }\n\n async abandonMessage(\n message: ServiceBusReceivedMessage,\n propertiesToModify?: { [key: string]: number | boolean | string | Date | null },\n ): Promise<void> {\n this._throwIfReceiverOrConnectionClosed();\n throwErrorIfInvalidOperationOnMessage(message, this.receiveMode, this._context.connectionId);\n const msgImpl = message as ServiceBusMessageImpl;\n return abandonMessage(\n msgImpl,\n this._context,\n this.entityPath,\n propertiesToModify,\n this._retryOptions,\n );\n }\n\n async deferMessage(\n message: ServiceBusReceivedMessage,\n propertiesToModify?: { [key: string]: number | boolean | string | Date | null },\n ): Promise<void> {\n this._throwIfReceiverOrConnectionClosed();\n throwErrorIfInvalidOperationOnMessage(message, this.receiveMode, this._context.connectionId);\n const msgImpl = message as ServiceBusMessageImpl;\n return deferMessage(\n msgImpl,\n this._context,\n this.entityPath,\n propertiesToModify,\n this._retryOptions,\n );\n }\n\n async deadLetterMessage(\n message: ServiceBusReceivedMessage,\n options?: DeadLetterOptions & { [key: string]: number | boolean | string | Date | null },\n ): Promise<void> {\n this._throwIfReceiverOrConnectionClosed();\n throwErrorIfInvalidOperationOnMessage(message, this.receiveMode, this._context.connectionId);\n const msgImpl = message as ServiceBusMessageImpl;\n return deadLetterMessage(msgImpl, this._context, this.entityPath, options, this._retryOptions);\n }\n\n async renewMessageLock(message: ServiceBusReceivedMessage): Promise<Date> {\n this._throwIfReceiverOrConnectionClosed();\n throwErrorIfInvalidOperationOnMessage(message, this.receiveMode, this._context.connectionId);\n\n const tracingContext = extractSpanContextFromServiceBusMessage(message);\n const spanLinks: TracingSpanLink[] = tracingContext ? [{ tracingContext }] : [];\n\n return tracingClient.withSpan(\n \"ServiceBusReceiver.renewMessageLock\",\n {},\n () => {\n const msgImpl = message as ServiceBusMessageImpl;\n\n let associatedLinkName: string | undefined;\n if (msgImpl.delivery.link) {\n const associatedReceiver = this._context.getReceiverFromCache(msgImpl.delivery.link.name);\n associatedLinkName = associatedReceiver?.name;\n }\n return this._context\n .getManagementClient(this.entityPath)\n .renewLock(message.lockToken!, { associatedLinkName })\n .then((lockedUntil) => {\n message.lockedUntilUtc = lockedUntil;\n return lockedUntil;\n });\n },\n {\n spanLinks,\n ...toSpanOptions(\n { entityPath: this.entityPath, host: this._context.config.host },\n \"receive\",\n \"client\",\n ),\n },\n );\n }\n\n async close(): Promise<void> {\n try {\n this._isClosed = true;\n if (this._context.connection && this._context.connection.isOpen()) {\n // Close the streaming receiver.\n if (this._streamingReceiver) {\n await this._streamingReceiver.close();\n }\n\n // Close the batching receiver.\n if (this._batchingReceiver) {\n await this._batchingReceiver.close();\n }\n }\n } catch (err: any) {\n logger.logError(err, `${this.logPrefix} An error occurred while closing the Receiver`);\n throw err;\n }\n }\n\n /**\n * Indicates whether the receiver is currently receiving messages or not.\n * When this returns true, new `registerMessageHandler()` or `receiveMessages()` calls cannot be made.\n */\n private _isReceivingMessages(): boolean {\n if (\n this._streamingReceiver &&\n this._streamingReceiver.isOpen() &&\n this._streamingReceiver.isSubscribeActive\n ) {\n return true;\n }\n if (\n this._batchingReceiver &&\n this._batchingReceiver.isOpen() &&\n this._batchingReceiver.isReceivingMessages\n ) {\n return true;\n }\n return false;\n }\n\n private _createBatchingReceiver(\n context: ConnectionContext,\n entityPath: string,\n options: ReceiveOptions,\n ): BatchingReceiver {\n const receiver = BatchingReceiver.create(this.identifier, context, entityPath, options);\n logger.verbose(\n `[${this.logPrefix}] receiver '${receiver.name}' created, with maxConcurrentCalls set to ${options.maxConcurrentCalls}.`,\n );\n\n return receiver;\n }\n\n /**\n * Helper function to retrieve any active receiver name, regardless of streaming or\n * batching if it exists. This is used for optimization on the service side\n */\n private _getAssociatedReceiverName(): string | undefined {\n if (this._streamingReceiver && this._streamingReceiver.isOpen()) {\n return this._streamingReceiver.name;\n }\n if (\n this._batchingReceiver &&\n this._batchingReceiver.isOpen() &&\n this._batchingReceiver.isReceivingMessages\n ) {\n return this._batchingReceiver.name;\n }\n return;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"receiverCommon.js","sourceRoot":"","sources":["../../../src/receivers/receiverCommon.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { MessageHandlers, ProcessErrorArgs } from \"../models\";\nimport { ServiceBusReceiver } from \"./receiver\";\nimport { OperationOptionsBase } from \"../modelsToBeSharedWithEventHubs\";\nimport { createServiceBusLogger, logger, receiverLogger, ServiceBusLogger } from \"../log\";\nimport { translateServiceBusError } from \"../serviceBusError\";\nimport {\n DeadLetterOptions,\n DispositionType,\n ServiceBusMessageImpl,\n ServiceBusReceivedMessage,\n} from \"../serviceBusMessage\";\nimport { DispositionStatusOptions } from \"../core/managementClient\";\nimport { ConnectionContext } from \"../connectionContext\";\nimport {\n Constants,\n ErrorNameConditionMapper,\n retry,\n RetryConfig,\n RetryMode,\n RetryOperationType,\n RetryOptions,\n} from \"@azure/core-amqp\";\nimport { MessageAlreadySettled } from \"../util/errors\";\nimport { delay, isDefined } from \"@azure/core-util\";\nimport { TracingSpanLink } from \"@azure/core-tracing\";\nimport { toSpanOptions, tracingClient } from \"../diagnostics/tracing\";\nimport { extractSpanContextFromServiceBusMessage } from \"../diagnostics/instrumentServiceBusMessage\";\n\n/**\n * @internal\n */\nexport function assertValidMessageHandlers(handlers: {\n processMessage?: unknown;\n processError?: unknown;\n}): void {\n if (\n handlers &&\n handlers.processMessage instanceof Function &&\n handlers.processError instanceof Function\n ) {\n return;\n }\n\n throw new TypeError('Invalid \"MessageHandlers\" provided.');\n}\n\n/**\n * @internal\n */\nexport async function* getMessageIterator(\n receiver: Pick<ServiceBusReceiver, \"receiveMessages\">,\n options?: OperationOptionsBase,\n): AsyncIterableIterator<ServiceBusReceivedMessage> {\n while (true) {\n const messages = await receiver.receiveMessages(1, options);\n\n if (messages.length === 0) {\n continue;\n }\n\n yield messages[0];\n }\n}\n\n/**\n * @internal\n */\nexport function wrapProcessErrorHandler(\n handlers: Pick<MessageHandlers, \"processError\">,\n loggerParam: ServiceBusLogger = receiverLogger,\n): MessageHandlers[\"processError\"] {\n return async (args: ProcessErrorArgs) => {\n try {\n args.error = translateServiceBusError(args.error);\n await handlers.processError(args);\n } catch (err: any) {\n loggerParam.logError(err, `An error was thrown from the user's processError handler`);\n }\n };\n}\n\n/**\n * @internal\n *\n */\nexport function completeMessage(\n message: ServiceBusMessageImpl,\n context: ConnectionContext,\n entityPath: string,\n retryOptions: RetryOptions | undefined,\n): Promise<void> {\n receiverLogger.verbose(\n \"[%s] Completing the message with id '%s'.\",\n context.connectionId,\n message.messageId,\n );\n const tracingContext = extractSpanContextFromServiceBusMessage(message);\n const spanLinks: TracingSpanLink[] = tracingContext ? [{ tracingContext }] : [];\n return tracingClient.withSpan(\n \"ServicebusReceiver.complete\",\n {},\n () =>\n settleMessage(message, DispositionType.complete, context, entityPath, {\n retryOptions,\n }),\n {\n spanLinks,\n ...toSpanOptions({ entityPath, host: context.config.host }, \"settle\", \"client\"),\n },\n );\n}\n\n/**\n * @internal\n *\n */\nexport function abandonMessage(\n message: ServiceBusMessageImpl,\n context: ConnectionContext,\n entityPath: string,\n propertiesToModify: { [key: string]: number | boolean | string | Date | null } | undefined,\n retryOptions: RetryOptions | undefined,\n): Promise<void> {\n receiverLogger.verbose(\n \"[%s] Abandoning the message with id '%s'.\",\n context.connectionId,\n message.messageId,\n );\n const tracingContext = extractSpanContextFromServiceBusMessage(message);\n const spanLinks: TracingSpanLink[] = tracingContext ? [{ tracingContext }] : [];\n return tracingClient.withSpan(\n \"ServicebusReceiver.abandon\",\n {},\n () =>\n settleMessage(message, DispositionType.abandon, context, entityPath, {\n propertiesToModify,\n retryOptions,\n }),\n {\n spanLinks,\n ...toSpanOptions({ entityPath, host: context.config.host }, \"settle\", \"client\"),\n },\n );\n}\n\n/**\n * @internal\n *\n */\nexport function deferMessage(\n message: ServiceBusMessageImpl,\n context: ConnectionContext,\n entityPath: string,\n propertiesToModify: { [key: string]: number | boolean | string | Date | null } | undefined,\n retryOptions: RetryOptions | undefined,\n): Promise<void> {\n receiverLogger.verbose(\n \"[%s] Deferring the message with id '%s'.\",\n context.connectionId,\n message.messageId,\n );\n const tracingContext = extractSpanContextFromServiceBusMessage(message);\n const spanLinks: TracingSpanLink[] = tracingContext ? [{ tracingContext }] : [];\n return tracingClient.withSpan(\n \"ServiceBusReceiver.defer\",\n {},\n () =>\n settleMessage(message, DispositionType.defer, context, entityPath, {\n retryOptions,\n propertiesToModify,\n }),\n {\n spanLinks,\n ...toSpanOptions({ entityPath, host: context.config.host }, \"settle\", \"client\"),\n },\n );\n}\n\n/**\n * @internal\n *\n */\nexport function deadLetterMessage(\n message: ServiceBusMessageImpl,\n context: ConnectionContext,\n entityPath: string,\n propertiesToModify:\n | (DeadLetterOptions & { [key: string]: number | boolean | string | Date | null })\n | undefined,\n retryOptions: RetryOptions | undefined,\n): Promise<void> {\n receiverLogger.verbose(\n \"[%s] Deadlettering the message with id '%s'.\",\n context.connectionId,\n message.messageId,\n );\n\n const actualPropertiesToModify: Partial<DeadLetterOptions> = {\n ...propertiesToModify,\n };\n\n // these two fields are handled specially and don't need to be in here.\n delete actualPropertiesToModify.deadLetterErrorDescription;\n delete actualPropertiesToModify.deadLetterReason;\n\n const dispositionStatusOptions: DispositionStatusOptions = {\n propertiesToModify: actualPropertiesToModify,\n deadLetterReason: propertiesToModify?.deadLetterReason,\n deadLetterDescription: propertiesToModify?.deadLetterErrorDescription,\n retryOptions,\n };\n\n const tracingContext = extractSpanContextFromServiceBusMessage(message);\n const spanLinks: TracingSpanLink[] = tracingContext ? [{ tracingContext }] : [];\n\n return tracingClient.withSpan(\n \"ServiceBusReceiver.deadLetter\",\n {},\n () =>\n settleMessage(\n message,\n DispositionType.deadletter,\n context,\n entityPath,\n dispositionStatusOptions,\n ),\n {\n spanLinks,\n ...toSpanOptions({ entityPath, host: context.config.host }, \"settle\", \"client\"),\n },\n );\n}\n\n/**\n * @internal\n */\nexport function settleMessage(\n message: ServiceBusMessageImpl,\n operation: DispositionType,\n context: ConnectionContext,\n entityPath: string,\n options: DispositionStatusOptions,\n _settleMessageOperation: typeof settleMessageOperation = settleMessageOperation,\n): Promise<void> {\n return retry({\n connectionId: context.connectionId,\n operation: () => {\n return _settleMessageOperation(message, operation, context, entityPath, options);\n },\n operationType: RetryOperationType.messageSettlement,\n abortSignal: options?.abortSignal,\n retryOptions: options?.retryOptions,\n });\n}\n\n/**\n * @internal\n *\n * NOTE: it's tempting to make this method non-async. However, doing so makes it too easy\n * to throw exceptions that will not be \"catchable\" by people chaining to the returned Promise\n * since we can throw exceptions outside of the Promise's scope.\n */\nexport async function settleMessageOperation(\n message: ServiceBusMessageImpl,\n operation: DispositionType,\n context: ConnectionContext,\n entityPath: string,\n options: DispositionStatusOptions,\n): Promise<void> {\n const isDeferredMessage = !message.delivery.link;\n const receiver = isDeferredMessage\n ? undefined\n : context.getReceiverFromCache(message.delivery.link.name, message.sessionId);\n const associatedLinkName = receiver?.name;\n\n let error: Error | undefined;\n if (message.delivery.remote_settled) {\n error = new Error(MessageAlreadySettled);\n } else if (\n !isDeferredMessage &&\n (!receiver || !receiver.isOpen()) &&\n isDefined(message.sessionId)\n ) {\n error = translateServiceBusError({\n description:\n `Failed to ${operation} the message as the AMQP link with which the message was ` +\n `received is no longer alive.`,\n condition: ErrorNameConditionMapper.SessionLockLostError,\n });\n }\n\n if (error) {\n receiverLogger.logError(\n error,\n \"[%s] An error occurred when settling a message with id '%s'\",\n context.connectionId,\n message.messageId,\n );\n throw error;\n }\n\n // Message Settlement with managementLink\n // 1. If the received message is deferred as such messages can only be settled using managementLink\n // 2. If the associated receiver link is not available. This does not apply to messages from sessions as we need a lock on the session to do so.\n if (isDeferredMessage || ((!receiver || !receiver.isOpen()) && !isDefined(message.sessionId))) {\n return context\n .getManagementClient(entityPath)\n .updateDispositionStatus(message.lockToken!, operation, {\n ...options,\n associatedLinkName,\n sessionId: message.sessionId,\n })\n .catch((err) => {\n throw translateServiceBusError(err);\n });\n }\n\n return receiver!.settleMessage(message, operation, options).catch((err) => {\n throw translateServiceBusError(err);\n });\n}\n\n/** @internal */\nexport interface RetryForeverArgs<T> {\n retryConfig: RetryConfig<T>;\n onError: (err: Error) => void;\n logger: ReturnType<typeof createServiceBusLogger>;\n logPrefix: string;\n}\n\n/**\n * Calculates delay between retries, in milliseconds.\n */\nfunction calculateDelay(\n attemptCount: number,\n retryDelayInMs: number,\n maxRetryDelayInMs: number,\n mode: RetryMode,\n): number {\n if (mode === RetryMode.Exponential) {\n const boundedRandDelta =\n retryDelayInMs * 0.8 +\n Math.floor(Math.random() * (retryDelayInMs * 1.2 - retryDelayInMs * 0.8));\n\n const incrementDelta = boundedRandDelta * (Math.pow(2, attemptCount) - 1);\n return Math.min(incrementDelta, maxRetryDelayInMs);\n }\n\n return retryDelayInMs;\n}\n\n/**\n * Retry infinitely until success, reporting in between retry attempts.\n *\n * This function will only stop retrying if:\n * - args.retryConfig.operation resolves successfully\n * - args.retryConfig.operation rejects with an `AbortError`\n *\n * @internal\n */\nexport async function retryForever<T>(\n args: RetryForeverArgs<T>,\n retryFn: typeof retry = retry,\n): Promise<T> {\n let numRetryCycles = 0;\n const config = args.retryConfig;\n if (!config.retryOptions) {\n config.retryOptions = {};\n }\n // eslint-disable-next-line eqeqeq\n if (config.retryOptions.retryDelayInMs == undefined || config.retryOptions.retryDelayInMs < 0) {\n config.retryOptions.retryDelayInMs = Constants.defaultDelayBetweenOperationRetriesInMs;\n }\n if (\n // eslint-disable-next-line eqeqeq\n config.retryOptions.maxRetryDelayInMs == undefined ||\n config.retryOptions.maxRetryDelayInMs < 0\n ) {\n config.retryOptions.maxRetryDelayInMs = Constants.defaultMaxDelayForExponentialRetryInMs;\n }\n if (!config.retryOptions.mode) {\n config.retryOptions.mode = RetryMode.Fixed;\n }\n\n // The retries are broken up into cycles, giving the user some control over how often\n // we actually attempt to retry.\n // eslint-disable-next-line no-constant-condition\n while (true) {\n ++numRetryCycles;\n\n try {\n return await retryFn(args.retryConfig);\n } catch (err: any) {\n // if the user aborts the operation we're immediately done.\n // AbortError is also thrown by linkEntity.init() if the connection has been\n // permanently closed.\n if (err.name === \"AbortError\") {\n logger.warning(`${args.logPrefix} AbortError caught, ending retries.`);\n throw err;\n }\n\n // we only report the error here - this avoids spamming the user with too many\n // redundant reports of errors while still providing them incremental status on failures.\n try {\n args.onError(err);\n } catch (error: any) {\n logger.error(\"args.onerror has thrown\", error);\n }\n\n args.logger.logError(\n err,\n `${args.logPrefix} Error thrown in retry cycle ${numRetryCycles}, restarting retry cycle with retry options`,\n args.retryConfig,\n );\n\n const delayInMs = calculateDelay(\n numRetryCycles,\n config.retryOptions.retryDelayInMs,\n config.retryOptions.maxRetryDelayInMs,\n config.retryOptions.mode,\n );\n logger.verbose(\n \"[%s] Sleeping for %d milliseconds for '%s'.\",\n config.connectionId,\n delayInMs,\n config.operationType,\n );\n await delay(delayInMs, {\n abortSignal: config.abortSignal,\n abortErrorMsg: \"Retry cycle has been cancelled by the user.\",\n });\n\n continue;\n }\n }\n}\n"]}