@azure/service-bus 7.10.0-beta.2 → 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 (254) hide show
  1. package/dist/browser/connectionContext.js +1 -2
  2. package/dist/browser/connectionContext.js.map +1 -1
  3. package/dist/browser/constructorHelpers.js +3 -4
  4. package/dist/browser/constructorHelpers.js.map +1 -1
  5. package/dist/browser/core/autoLockRenewer.js +9 -5
  6. package/dist/browser/core/autoLockRenewer.js.map +1 -1
  7. package/dist/browser/core/batchingReceiver.js +26 -18
  8. package/dist/browser/core/batchingReceiver.js.map +1 -1
  9. package/dist/browser/core/linkEntity.js +74 -13
  10. package/dist/browser/core/linkEntity.js.map +1 -1
  11. package/dist/browser/core/managementClient.js +48 -48
  12. package/dist/browser/core/managementClient.js.map +1 -1
  13. package/dist/browser/core/messageReceiver.js +41 -14
  14. package/dist/browser/core/messageReceiver.js.map +1 -1
  15. package/dist/browser/core/messageSender.js +33 -10
  16. package/dist/browser/core/messageSender.js.map +1 -1
  17. package/dist/browser/core/receiverHelper.js +3 -2
  18. package/dist/browser/core/receiverHelper.js.map +1 -1
  19. package/dist/browser/core/shared.js +11 -4
  20. package/dist/browser/core/shared.js.map +1 -1
  21. package/dist/browser/core/streamingReceiver.js +74 -43
  22. package/dist/browser/core/streamingReceiver.js.map +1 -1
  23. package/dist/browser/diagnostics/instrumentServiceBusMessage.js +16 -8
  24. package/dist/browser/diagnostics/instrumentServiceBusMessage.js.map +1 -1
  25. package/dist/browser/receivers/receiver.js +68 -23
  26. package/dist/browser/receivers/receiver.js.map +1 -1
  27. package/dist/browser/receivers/receiverCommon.js +36 -21
  28. package/dist/browser/receivers/receiverCommon.js.map +1 -1
  29. package/dist/browser/receivers/sessionReceiver.js +69 -29
  30. package/dist/browser/receivers/sessionReceiver.js.map +1 -1
  31. package/dist/browser/sender.js +33 -11
  32. package/dist/browser/sender.js.map +1 -1
  33. package/dist/browser/serializers/queueResourceSerializer.js +9 -1
  34. package/dist/browser/serializers/queueResourceSerializer.js.map +1 -1
  35. package/dist/browser/serializers/ruleResourceSerializer.js +1 -2
  36. package/dist/browser/serializers/ruleResourceSerializer.js.map +1 -1
  37. package/dist/browser/serviceBusAtomManagementClient.js +181 -228
  38. package/dist/browser/serviceBusAtomManagementClient.js.map +1 -1
  39. package/dist/browser/serviceBusClient.js +31 -22
  40. package/dist/browser/serviceBusClient.js.map +1 -1
  41. package/dist/browser/serviceBusError.js +21 -1
  42. package/dist/browser/serviceBusError.js.map +1 -1
  43. package/dist/browser/serviceBusMessage.js +208 -13
  44. package/dist/browser/serviceBusMessage.js.map +1 -1
  45. package/dist/browser/serviceBusMessageBatch.js +32 -8
  46. package/dist/browser/serviceBusMessageBatch.js.map +1 -1
  47. package/dist/browser/serviceBusRuleManager.js +39 -15
  48. package/dist/browser/serviceBusRuleManager.js.map +1 -1
  49. package/dist/browser/session/messageSession.js +130 -25
  50. package/dist/browser/session/messageSession.js.map +1 -1
  51. package/dist/browser/util/atomXmlHelper.js +4 -5
  52. package/dist/browser/util/atomXmlHelper.js.map +1 -1
  53. package/dist/browser/util/compat/httpHeaders.js +1 -0
  54. package/dist/browser/util/compat/httpHeaders.js.map +1 -1
  55. package/dist/browser/util/constants.js +1 -1
  56. package/dist/browser/util/constants.js.map +1 -1
  57. package/dist/browser/util/sasServiceClientCredentials.js +8 -0
  58. package/dist/browser/util/sasServiceClientCredentials.js.map +1 -1
  59. package/dist/browser/util/semaphore.js +6 -2
  60. package/dist/browser/util/semaphore.js.map +1 -1
  61. package/dist/browser/util/utils.js +5 -7
  62. package/dist/browser/util/utils.js.map +1 -1
  63. package/dist/commonjs/connectionContext.js +1 -2
  64. package/dist/commonjs/connectionContext.js.map +1 -1
  65. package/dist/commonjs/constructorHelpers.js +3 -4
  66. package/dist/commonjs/constructorHelpers.js.map +1 -1
  67. package/dist/commonjs/core/autoLockRenewer.js +9 -5
  68. package/dist/commonjs/core/autoLockRenewer.js.map +1 -1
  69. package/dist/commonjs/core/batchingReceiver.js +26 -18
  70. package/dist/commonjs/core/batchingReceiver.js.map +1 -1
  71. package/dist/commonjs/core/linkEntity.js +74 -13
  72. package/dist/commonjs/core/linkEntity.js.map +1 -1
  73. package/dist/commonjs/core/managementClient.js +48 -48
  74. package/dist/commonjs/core/managementClient.js.map +1 -1
  75. package/dist/commonjs/core/messageReceiver.js +41 -14
  76. package/dist/commonjs/core/messageReceiver.js.map +1 -1
  77. package/dist/commonjs/core/messageSender.js +33 -10
  78. package/dist/commonjs/core/messageSender.js.map +1 -1
  79. package/dist/commonjs/core/receiverHelper.js +3 -2
  80. package/dist/commonjs/core/receiverHelper.js.map +1 -1
  81. package/dist/commonjs/core/shared.js +11 -4
  82. package/dist/commonjs/core/shared.js.map +1 -1
  83. package/dist/commonjs/core/streamingReceiver.js +74 -43
  84. package/dist/commonjs/core/streamingReceiver.js.map +1 -1
  85. package/dist/commonjs/diagnostics/instrumentServiceBusMessage.js +16 -8
  86. package/dist/commonjs/diagnostics/instrumentServiceBusMessage.js.map +1 -1
  87. package/dist/commonjs/receivers/receiver.js +68 -23
  88. package/dist/commonjs/receivers/receiver.js.map +1 -1
  89. package/dist/commonjs/receivers/receiverCommon.js +36 -21
  90. package/dist/commonjs/receivers/receiverCommon.js.map +1 -1
  91. package/dist/commonjs/receivers/sessionReceiver.js +69 -29
  92. package/dist/commonjs/receivers/sessionReceiver.js.map +1 -1
  93. package/dist/commonjs/sender.js +33 -11
  94. package/dist/commonjs/sender.js.map +1 -1
  95. package/dist/commonjs/serializers/queueResourceSerializer.js +9 -1
  96. package/dist/commonjs/serializers/queueResourceSerializer.js.map +1 -1
  97. package/dist/commonjs/serializers/ruleResourceSerializer.js +1 -2
  98. package/dist/commonjs/serializers/ruleResourceSerializer.js.map +1 -1
  99. package/dist/commonjs/serviceBusAtomManagementClient.js +181 -227
  100. package/dist/commonjs/serviceBusAtomManagementClient.js.map +1 -1
  101. package/dist/commonjs/serviceBusClient.js +31 -22
  102. package/dist/commonjs/serviceBusClient.js.map +1 -1
  103. package/dist/commonjs/serviceBusError.js +21 -1
  104. package/dist/commonjs/serviceBusError.js.map +1 -1
  105. package/dist/commonjs/serviceBusMessage.js +208 -12
  106. package/dist/commonjs/serviceBusMessage.js.map +1 -1
  107. package/dist/commonjs/serviceBusMessageBatch.js +32 -8
  108. package/dist/commonjs/serviceBusMessageBatch.js.map +1 -1
  109. package/dist/commonjs/serviceBusRuleManager.js +39 -15
  110. package/dist/commonjs/serviceBusRuleManager.js.map +1 -1
  111. package/dist/commonjs/session/messageSession.js +130 -25
  112. package/dist/commonjs/session/messageSession.js.map +1 -1
  113. package/dist/commonjs/tsdoc-metadata.json +11 -11
  114. package/dist/commonjs/util/atomXmlHelper.js +4 -5
  115. package/dist/commonjs/util/atomXmlHelper.js.map +1 -1
  116. package/dist/commonjs/util/compat/httpHeaders.js +1 -0
  117. package/dist/commonjs/util/compat/httpHeaders.js.map +1 -1
  118. package/dist/commonjs/util/constants.js +1 -1
  119. package/dist/commonjs/util/constants.js.map +1 -1
  120. package/dist/commonjs/util/runtimeInfo.js +2 -2
  121. package/dist/commonjs/util/runtimeInfo.js.map +1 -1
  122. package/dist/commonjs/util/sasServiceClientCredentials.js +8 -0
  123. package/dist/commonjs/util/sasServiceClientCredentials.js.map +1 -1
  124. package/dist/commonjs/util/semaphore.js +6 -2
  125. package/dist/commonjs/util/semaphore.js.map +1 -1
  126. package/dist/commonjs/util/utils.js +5 -7
  127. package/dist/commonjs/util/utils.js.map +1 -1
  128. package/dist/esm/connectionContext.js +1 -2
  129. package/dist/esm/connectionContext.js.map +1 -1
  130. package/dist/esm/constructorHelpers.js +3 -4
  131. package/dist/esm/constructorHelpers.js.map +1 -1
  132. package/dist/esm/core/autoLockRenewer.js +9 -5
  133. package/dist/esm/core/autoLockRenewer.js.map +1 -1
  134. package/dist/esm/core/batchingReceiver.js +26 -18
  135. package/dist/esm/core/batchingReceiver.js.map +1 -1
  136. package/dist/esm/core/linkEntity.js +74 -13
  137. package/dist/esm/core/linkEntity.js.map +1 -1
  138. package/dist/esm/core/managementClient.js +48 -48
  139. package/dist/esm/core/managementClient.js.map +1 -1
  140. package/dist/esm/core/messageReceiver.js +41 -14
  141. package/dist/esm/core/messageReceiver.js.map +1 -1
  142. package/dist/esm/core/messageSender.js +33 -10
  143. package/dist/esm/core/messageSender.js.map +1 -1
  144. package/dist/esm/core/receiverHelper.js +3 -2
  145. package/dist/esm/core/receiverHelper.js.map +1 -1
  146. package/dist/esm/core/shared.js +11 -4
  147. package/dist/esm/core/shared.js.map +1 -1
  148. package/dist/esm/core/streamingReceiver.js +74 -43
  149. package/dist/esm/core/streamingReceiver.js.map +1 -1
  150. package/dist/esm/diagnostics/instrumentServiceBusMessage.js +16 -8
  151. package/dist/esm/diagnostics/instrumentServiceBusMessage.js.map +1 -1
  152. package/dist/esm/receivers/receiver.js +68 -23
  153. package/dist/esm/receivers/receiver.js.map +1 -1
  154. package/dist/esm/receivers/receiverCommon.js +36 -21
  155. package/dist/esm/receivers/receiverCommon.js.map +1 -1
  156. package/dist/esm/receivers/sessionReceiver.js +69 -29
  157. package/dist/esm/receivers/sessionReceiver.js.map +1 -1
  158. package/dist/esm/sender.js +33 -11
  159. package/dist/esm/sender.js.map +1 -1
  160. package/dist/esm/serializers/queueResourceSerializer.js +9 -1
  161. package/dist/esm/serializers/queueResourceSerializer.js.map +1 -1
  162. package/dist/esm/serializers/ruleResourceSerializer.js +1 -2
  163. package/dist/esm/serializers/ruleResourceSerializer.js.map +1 -1
  164. package/dist/esm/serviceBusAtomManagementClient.js +181 -228
  165. package/dist/esm/serviceBusAtomManagementClient.js.map +1 -1
  166. package/dist/esm/serviceBusClient.js +31 -22
  167. package/dist/esm/serviceBusClient.js.map +1 -1
  168. package/dist/esm/serviceBusError.js +21 -1
  169. package/dist/esm/serviceBusError.js.map +1 -1
  170. package/dist/esm/serviceBusMessage.js +208 -13
  171. package/dist/esm/serviceBusMessage.js.map +1 -1
  172. package/dist/esm/serviceBusMessageBatch.js +32 -8
  173. package/dist/esm/serviceBusMessageBatch.js.map +1 -1
  174. package/dist/esm/serviceBusRuleManager.js +39 -15
  175. package/dist/esm/serviceBusRuleManager.js.map +1 -1
  176. package/dist/esm/session/messageSession.js +130 -25
  177. package/dist/esm/session/messageSession.js.map +1 -1
  178. package/dist/esm/util/atomXmlHelper.js +4 -5
  179. package/dist/esm/util/atomXmlHelper.js.map +1 -1
  180. package/dist/esm/util/compat/httpHeaders.js +1 -0
  181. package/dist/esm/util/compat/httpHeaders.js.map +1 -1
  182. package/dist/esm/util/constants.js +1 -1
  183. package/dist/esm/util/constants.js.map +1 -1
  184. package/dist/esm/util/runtimeInfo.js +1 -1
  185. package/dist/esm/util/runtimeInfo.js.map +1 -1
  186. package/dist/esm/util/sasServiceClientCredentials.js +8 -0
  187. package/dist/esm/util/sasServiceClientCredentials.js.map +1 -1
  188. package/dist/esm/util/semaphore.js +6 -2
  189. package/dist/esm/util/semaphore.js.map +1 -1
  190. package/dist/esm/util/utils.js +5 -7
  191. package/dist/esm/util/utils.js.map +1 -1
  192. package/dist/react-native/connectionContext.js +1 -2
  193. package/dist/react-native/connectionContext.js.map +1 -1
  194. package/dist/react-native/constructorHelpers.js +3 -4
  195. package/dist/react-native/constructorHelpers.js.map +1 -1
  196. package/dist/react-native/core/autoLockRenewer.js +9 -5
  197. package/dist/react-native/core/autoLockRenewer.js.map +1 -1
  198. package/dist/react-native/core/batchingReceiver.js +26 -18
  199. package/dist/react-native/core/batchingReceiver.js.map +1 -1
  200. package/dist/react-native/core/linkEntity.js +74 -13
  201. package/dist/react-native/core/linkEntity.js.map +1 -1
  202. package/dist/react-native/core/managementClient.js +48 -48
  203. package/dist/react-native/core/managementClient.js.map +1 -1
  204. package/dist/react-native/core/messageReceiver.js +41 -14
  205. package/dist/react-native/core/messageReceiver.js.map +1 -1
  206. package/dist/react-native/core/messageSender.js +33 -10
  207. package/dist/react-native/core/messageSender.js.map +1 -1
  208. package/dist/react-native/core/receiverHelper.js +3 -2
  209. package/dist/react-native/core/receiverHelper.js.map +1 -1
  210. package/dist/react-native/core/shared.js +11 -4
  211. package/dist/react-native/core/shared.js.map +1 -1
  212. package/dist/react-native/core/streamingReceiver.js +74 -43
  213. package/dist/react-native/core/streamingReceiver.js.map +1 -1
  214. package/dist/react-native/diagnostics/instrumentServiceBusMessage.js +16 -8
  215. package/dist/react-native/diagnostics/instrumentServiceBusMessage.js.map +1 -1
  216. package/dist/react-native/receivers/receiver.js +68 -23
  217. package/dist/react-native/receivers/receiver.js.map +1 -1
  218. package/dist/react-native/receivers/receiverCommon.js +36 -21
  219. package/dist/react-native/receivers/receiverCommon.js.map +1 -1
  220. package/dist/react-native/receivers/sessionReceiver.js +69 -29
  221. package/dist/react-native/receivers/sessionReceiver.js.map +1 -1
  222. package/dist/react-native/sender.js +33 -11
  223. package/dist/react-native/sender.js.map +1 -1
  224. package/dist/react-native/serializers/queueResourceSerializer.js +9 -1
  225. package/dist/react-native/serializers/queueResourceSerializer.js.map +1 -1
  226. package/dist/react-native/serializers/ruleResourceSerializer.js +1 -2
  227. package/dist/react-native/serializers/ruleResourceSerializer.js.map +1 -1
  228. package/dist/react-native/serviceBusAtomManagementClient.js +181 -228
  229. package/dist/react-native/serviceBusAtomManagementClient.js.map +1 -1
  230. package/dist/react-native/serviceBusClient.js +31 -22
  231. package/dist/react-native/serviceBusClient.js.map +1 -1
  232. package/dist/react-native/serviceBusError.js +21 -1
  233. package/dist/react-native/serviceBusError.js.map +1 -1
  234. package/dist/react-native/serviceBusMessage.js +208 -13
  235. package/dist/react-native/serviceBusMessage.js.map +1 -1
  236. package/dist/react-native/serviceBusMessageBatch.js +32 -8
  237. package/dist/react-native/serviceBusMessageBatch.js.map +1 -1
  238. package/dist/react-native/serviceBusRuleManager.js +39 -15
  239. package/dist/react-native/serviceBusRuleManager.js.map +1 -1
  240. package/dist/react-native/session/messageSession.js +130 -25
  241. package/dist/react-native/session/messageSession.js.map +1 -1
  242. package/dist/react-native/util/atomXmlHelper.js +4 -5
  243. package/dist/react-native/util/atomXmlHelper.js.map +1 -1
  244. package/dist/react-native/util/compat/httpHeaders.js +1 -0
  245. package/dist/react-native/util/compat/httpHeaders.js.map +1 -1
  246. package/dist/react-native/util/constants.js +1 -1
  247. package/dist/react-native/util/constants.js.map +1 -1
  248. package/dist/react-native/util/sasServiceClientCredentials.js +8 -0
  249. package/dist/react-native/util/sasServiceClientCredentials.js.map +1 -1
  250. package/dist/react-native/util/semaphore.js +6 -2
  251. package/dist/react-native/util/semaphore.js.map +1 -1
  252. package/dist/react-native/util/utils.js +5 -7
  253. package/dist/react-native/util/utils.js.map +1 -1
  254. package/package.json +38 -38
@@ -1 +1 @@
1
- {"version":3,"file":"linkEntity.js","sourceRoot":"","sources":["../../../src/core/linkEntity.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RequestResponseLink } from \"@azure/core-amqp\";\nimport {\n Constants,\n TokenType,\n defaultCancellableLock,\n StandardAbortMessage,\n isSasTokenProvider,\n} from \"@azure/core-amqp\";\nimport type { AccessToken } from \"@azure/core-auth\";\nimport type { ConnectionContext } from \"../connectionContext.js\";\nimport type {\n AwaitableSender,\n AwaitableSenderOptions,\n Receiver,\n ReceiverOptions,\n SenderOptions,\n} from \"rhea-promise\";\nimport { generate_uuid } from \"rhea-promise\";\nimport { getUniqueName } from \"../util/utils.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { ServiceBusLogger } from \"../log.js\";\nimport { ServiceBusError } from \"../serviceBusError.js\";\n\n/**\n * @internal\n * Options passed to the constructor of LinkEntity\n */\nexport interface LinkEntityOptions {\n /**\n * The client entity address in one of the following forms:\n */\n address?: string;\n /**\n * The client entity token audience in one of the following forms:\n */\n audience?: string;\n}\n\n/**\n * A simple grouping of the sender and receiver options. Only used\n * with the ManagementClient today.\n *\n * @internal\n */\nexport interface RequestResponseLinkOptions {\n senderOptions: SenderOptions;\n receiverOptions: ReceiverOptions;\n name?: string;\n}\n\n/**\n * @internal\n */\nexport type NonSessionReceiverType =\n | \"batching\" // batching receiver\n | \"streaming\"; // streaming receiver\n\n/**\n * @internal\n */\nexport type ReceiverType = NonSessionReceiverType | \"session\"; // message session\n\n/**\n * @internal\n */\ntype LinkOptionsT<LinkT extends Receiver | AwaitableSender | RequestResponseLink> =\n LinkT extends Receiver\n ? ReceiverOptions\n : LinkT extends AwaitableSender\n ? AwaitableSenderOptions\n : LinkT extends RequestResponseLink\n ? RequestResponseLinkOptions\n : never;\n\n/**\n * @internal\n */\ntype LinkTypeT<LinkT extends Receiver | AwaitableSender | RequestResponseLink> =\n LinkT extends Receiver\n ? ReceiverType\n : LinkT extends AwaitableSender\n ? \"sender\" // sender\n : LinkT extends RequestResponseLink\n ? \"mgmt\" // management link\n : never;\n\n/**\n * @internal\n * Describes the base class for entities like MessageSender, MessageReceiver and Management client.\n */\nexport abstract class LinkEntity<LinkT extends Receiver | AwaitableSender | RequestResponseLink> {\n /**\n * The unique name for the entity in the format:\n * `${name of the entity}-${guid}`.\n */\n name: string;\n /**\n * The client entity address in one of the following forms:\n *\n * **Sender**\n * - `\"<queue-name>\"`.\n * - `\"<topic-name>\"`.\n *\n * **Receiver**\n * - `\"<queue-name>\"`.\n * - `\"<topic-name>\"`.\n *\n * **ManagementClient**\n * -`\"$management\"`.\n */\n address: string;\n /**\n * The client entity token audience in one of the following forms:\n *\n * **Sender**\n * - `\"sb://<yournamespace>.servicebus.windows.net/<queue-name>\"`\n * - `\"sb://<yournamespace>.servicebus.windows.net/<topic-name>\"`\n *\n * **Receiver**\n * - `\"sb://<yournamespace>.servicebus.windows.net/<queue-name>\"`\n * - `\"sb://<yournamespace>.servicebus.windows.net/<topic-name>\"`\n *\n * **ManagementClient**\n * - `\"sb://<your-namespace>.servicebus.windows.net/<queue-name>/$management\"`.\n * - `\"sb://<your-namespace>.servicebus.windows.net/<topic-name>/$management\"`.\n */\n audience: string;\n /**\n * Provides relevant information about the amqp connection,\n * cbs and $management sessions, token provider, sender and receivers.\n */\n protected _context: ConnectionContext;\n /**\n * The token renewal timer that keeps track of when\n * the Client Entity is due for token renewal.\n */\n private _tokenRenewalTimer?: NodeJS.Timeout;\n /**\n * Indicates token timeout\n */\n protected _tokenTimeout?: number;\n\n /**\n * The actual rhea link (of type Receiver or AwaitableSender) or RequestResponseLink\n */\n private _link?: LinkT;\n\n /**\n * The log prefix for any log messages.\n */\n private _logPrefix: string;\n\n public get logPrefix(): string {\n return this._logPrefix;\n }\n\n /**\n * Indicates that close() has been called on this link and\n * that it should not be allowed to reopen.\n */\n private _wasClosedPermanently: boolean = false;\n\n /**\n * A lock that ensures that opening and closing this\n * link properly cooperate.\n */\n private _openLock: string = `linkEntity-${generate_uuid()}`;\n\n /**\n * Creates a new ClientEntity instance.\n * @param baseName - The base name to use for the link. A unique ID will be appended to this.\n * @param entityPath - The entity path (ex: 'your-queue')\n * @param context - The connection context.\n * @param options - Options that can be provided while creating the LinkEntity.\n */\n constructor(\n public readonly baseName: string,\n public readonly entityPath: string,\n context: ConnectionContext,\n private _linkType: LinkTypeT<LinkT>,\n private _logger: ServiceBusLogger,\n options?: LinkEntityOptions,\n ) {\n if (!options) options = {};\n this._context = context;\n this.address = options.address || \"\";\n this.audience = options.audience || \"\";\n this.name = getUniqueName(baseName);\n this._logPrefix = `[${context.connectionId}|${this._linkType}:${this.name}]`;\n }\n\n /**\n * Determines whether the AMQP link is open. If open then returns true else returns false.\n */\n isOpen(): boolean {\n const result: boolean = this._link ? this._link.isOpen() : false;\n this._logger.verbose(`${this._logPrefix} is open? ${result}`);\n return result;\n }\n\n /**\n * Initializes this LinkEntity, setting this._link with the result of `createRheaLink`, which\n * is implemented by child classes.\n *\n * @returns A Promise that resolves when the link has been properly initialized\n * @throws `AbortError` if the link has been closed via 'close'\n */\n async initLink(options: LinkOptionsT<LinkT>, abortSignal?: AbortSignalLike): Promise<void> {\n // we'll check that the connection isn't in the process of recycling (and if so, wait for it to complete)\n await this._context.readyToOpenLink();\n\n this._logger.verbose(\n `${this._logPrefix} Attempting to acquire lock token ${this._openLock} for initializing link`,\n );\n return defaultCancellableLock.acquire(\n this._openLock,\n () => {\n this._logger.verbose(\n `${this._logPrefix} Lock ${this._openLock} acquired for initializing link`,\n );\n return this._initLinkImpl(options, abortSignal);\n },\n {\n abortSignal: abortSignal,\n timeoutInMs: Constants.defaultOperationTimeoutInMs,\n },\n );\n }\n\n private async _initLinkImpl(\n options: LinkOptionsT<LinkT>,\n abortSignal?: AbortSignalLike,\n ): Promise<void> {\n const checkAborted = (): void => {\n if (abortSignal?.aborted) {\n this._link?.close();\n throw new AbortError(StandardAbortMessage);\n }\n };\n\n const connectionId = this._context.connectionId;\n checkAborted();\n\n if (options.name) {\n this.name = options.name;\n this._logPrefix = `[${connectionId}|${this._linkType}:${this.name}]`;\n }\n\n if (this._wasClosedPermanently) {\n this._logger.verbose(`${this._logPrefix} Link has been permanently closed. Not reopening.`);\n throw new AbortError(`Link has been permanently closed. Not reopening.`);\n }\n\n if (this.isOpen()) {\n this._logger.verbose(`${this._logPrefix} Link is already open. Returning.`);\n return;\n }\n\n this._logger.verbose(\n `${this._logPrefix} Is not open and is not currently connecting. Opening.`,\n );\n\n try {\n await this._negotiateClaim({\n abortSignal,\n setTokenRenewal: false,\n timeoutInMs: Constants.defaultOperationTimeoutInMs,\n });\n\n checkAborted();\n this.checkIfConnectionReady();\n\n this._logger.verbose(`${this._logPrefix} Creating with options %O`, options);\n this._link = await this.createRheaLink(options);\n checkAborted();\n\n this._ensureTokenRenewal();\n\n this._logger.verbose(`${this._logPrefix} Link has been created.`);\n } catch (err: any) {\n this._logger.logError(err, `${this._logPrefix} Error thrown when creating the link`);\n await this.closeLinkImpl();\n throw err;\n }\n }\n\n /**\n * Clears token renewal for current link, removes current LinkEntity instance from cache,\n * and closes the underlying AMQP link.\n * Once closed, this instance of LinkEntity is not meant to be re-used.\n */\n async close(): Promise<void> {\n // Set the flag to indicate that this instance of LinkEntity is not meant to be re-used.\n this._wasClosedPermanently = true;\n\n this._logger.verbose(`${this.logPrefix} permanently closing this link.`);\n\n this.removeLinkFromContext();\n\n await this.closeLink();\n this._logger.verbose(`${this.logPrefix} permanently closed this link.`);\n }\n\n /**\n * NOTE: This method should be implemented by any child classes to actually create the underlying\n * Rhea link (AwaitableSender or Receiver or RequestResponseLink)\n *\n */\n protected abstract createRheaLink(_options: LinkOptionsT<LinkT>): Promise<LinkT>;\n\n /**\n * Clears this link from context's link cache.\n */\n protected abstract removeLinkFromContext(): void;\n\n /**\n * Closes the internally held rhea link, stops the token renewal timer and sets\n * the this._link field to undefined.\n */\n protected closeLink(): Promise<void> {\n this._logger.verbose(\n `${this._logPrefix} Attempting to acquire lock token ${this._openLock} for closing link`,\n );\n return defaultCancellableLock.acquire(\n this._openLock,\n () => {\n this._logger.verbose(`${this._logPrefix} Lock ${this._openLock} acquired for closing link`);\n return this.closeLinkImpl();\n },\n { abortSignal: undefined, timeoutInMs: undefined },\n );\n }\n\n private async closeLinkImpl(): Promise<void> {\n this._logger.verbose(`${this._logPrefix} closeLinkImpl() called`);\n\n clearTimeout(this._tokenRenewalTimer as NodeJS.Timeout);\n this._tokenRenewalTimer = undefined;\n\n if (this._link) {\n try {\n const link = this._link;\n this._link = undefined;\n\n // This should take care of closing the link and it's underlying session. This should also\n // remove them from the internal map.\n await link.close();\n this._logger.verbose(`${this._logPrefix} closed.`);\n } catch (err: any) {\n this._logger.logError(err, `${this._logPrefix} An error occurred while closing the link`);\n }\n }\n }\n\n /**\n * Provides the current type of the ClientEntity.\n * @returns The entity type.\n */\n private get _type(): string {\n let result = \"LinkEntity\";\n if ((this as any).constructor && (this as any).constructor.name) {\n result = (this as any).constructor.name;\n }\n return result;\n }\n\n protected get wasClosedPermanently(): boolean {\n return this._wasClosedPermanently;\n }\n\n protected get link(): LinkT | undefined {\n return this._link;\n }\n\n /**\n * Negotiates the cbs claim for the ClientEntity.\n * @param setTokenRenewal - Set the token renewal timer. Default false.\n */\n private async _negotiateClaim({\n abortSignal,\n setTokenRenewal,\n timeoutInMs,\n }: {\n setTokenRenewal: boolean;\n abortSignal: AbortSignalLike | undefined;\n timeoutInMs: number;\n }): Promise<void> {\n this._logger.verbose(`${this._logPrefix} negotiateclaim() has been called`);\n\n // Wait for the connectionContext to be ready to open the link.\n this.checkIfConnectionReady();\n\n // Acquire the lock and establish a cbs session if it does not exist on the connection.\n // Although node.js is single threaded, we need a locking mechanism to ensure that a\n // race condition does not happen while creating a shared resource (in this case the\n // cbs session, since we want to have exactly 1 cbs session per connection).\n this._logger.verbose(\n \"%s Acquiring cbs lock: '%s' for creating the cbs session while creating the %s: \" +\n \"'%s' with address: '%s'.\",\n this.logPrefix,\n this._context.cbsSession.cbsLock,\n this._type,\n this.name,\n this.address,\n );\n\n const startTime = Date.now();\n if (!this._context.cbsSession.isOpen()) {\n await defaultCancellableLock.acquire(\n this._context.cbsSession.cbsLock,\n () => {\n this.checkIfConnectionReady();\n return this._context.cbsSession.init({ abortSignal, timeoutInMs });\n },\n {\n abortSignal,\n timeoutInMs: timeoutInMs - (Date.now() - startTime),\n },\n );\n }\n\n let tokenObject: AccessToken;\n let tokenType: TokenType;\n if (isSasTokenProvider(this._context.tokenCredential)) {\n tokenObject = await this._context.tokenCredential.getToken(this.audience);\n tokenType = TokenType.CbsTokenTypeSas;\n\n // renew sas token in every 45 minutes\n this._tokenTimeout = (3600 - 900) * 1000;\n } else {\n const aadToken = await this._context.tokenCredential.getToken(Constants.aadServiceBusScope);\n if (!aadToken) {\n throw new Error(`Failed to get token from the provided \"TokenCredential\" object`);\n }\n tokenObject = aadToken;\n tokenType = TokenType.CbsTokenTypeJwt;\n this._tokenTimeout = tokenObject.expiresOnTimestamp - Date.now() - 2 * 60 * 1000;\n }\n this._logger.verbose(\n \"%s %s: calling negotiateClaim for audience '%s'.\",\n this.logPrefix,\n this._type,\n this.audience,\n );\n // Acquire the lock to negotiate the CBS claim.\n this._logger.verbose(\n \"%s Acquiring cbs lock: '%s' for cbs auth for %s: '%s' with address '%s'.\",\n this.logPrefix,\n this._context.negotiateClaimLock,\n this._type,\n this.name,\n this.address,\n );\n if (!tokenObject) {\n throw new Error(\"Token cannot be null\");\n }\n await defaultCancellableLock.acquire(\n this._context.negotiateClaimLock,\n () => {\n this.checkIfConnectionReady();\n return this._context.cbsSession.negotiateClaim(\n this.audience,\n tokenObject.token,\n tokenType,\n {\n abortSignal,\n timeoutInMs: timeoutInMs - (Date.now() - startTime),\n },\n );\n },\n {\n abortSignal,\n timeoutInMs: timeoutInMs - (Date.now() - startTime),\n },\n );\n this._logger.verbose(\n \"%s Negotiated claim for %s '%s' with with address: %s\",\n this.logPrefix,\n this._type,\n this.name,\n this.address,\n );\n if (setTokenRenewal) {\n this._ensureTokenRenewal();\n }\n }\n\n /**\n * Checks to see if the connection is in a \"reopening\" state. If it is\n * we need to _not_ use it otherwise we'll trigger some race conditions\n * within rhea (for instance, errors about _process not being defined).\n */\n private checkIfConnectionReady(): void {\n if (!this._context.isConnectionClosing()) {\n return;\n }\n\n this._logger.verbose(\n `${this._logPrefix} Connection is reopening, aborting link initialization.`,\n );\n const err = new ServiceBusError(\n \"Connection is reopening, aborting link initialization.\",\n \"GeneralError\",\n );\n err.retryable = true;\n throw err;\n }\n\n /**\n * Ensures that the token is renewed within the predefined renewal margin.\n */\n private _ensureTokenRenewal(): void {\n if (!this._tokenTimeout) {\n return;\n }\n // Clear the existing token renewal timer.\n // This scenario can happen if the connection goes down and is brought back up\n // before the `nextRenewalTimeout` was reached.\n if (this._tokenRenewalTimer) {\n clearTimeout(this._tokenRenewalTimer);\n }\n this._tokenRenewalTimer = setTimeout(async () => {\n try {\n await this._negotiateClaim({\n setTokenRenewal: true,\n abortSignal: undefined,\n timeoutInMs: Constants.defaultOperationTimeoutInMs,\n });\n } catch (err: any) {\n this._logger.logError(\n err,\n \"%s %s '%s' with address %s, an error occurred while renewing the token\",\n this.logPrefix,\n this._type,\n this.name,\n this.address,\n );\n }\n }, this._tokenTimeout);\n this._logger.verbose(\n \"%s %s '%s' with address %s, has next token renewal in %d milliseconds @(%s).\",\n this.logPrefix,\n this._type,\n this.name,\n this.address,\n this._tokenTimeout,\n new Date(Date.now() + this._tokenTimeout).toString(),\n );\n }\n}\n"]}
1
+ {"version":3,"file":"linkEntity.js","sourceRoot":"","sources":["../../../src/core/linkEntity.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RequestResponseLink } from \"@azure/core-amqp\";\nimport {\n Constants,\n TokenType,\n defaultCancellableLock,\n StandardAbortMessage,\n isSasTokenProvider,\n} from \"@azure/core-amqp\";\nimport type { AccessToken } from \"@azure/core-auth\";\nimport type { ConnectionContext } from \"../connectionContext.js\";\nimport type {\n AwaitableSender,\n AwaitableSenderOptions,\n Receiver,\n ReceiverOptions,\n SenderOptions,\n} from \"rhea-promise\";\nimport { generate_uuid } from \"rhea-promise\";\nimport { getUniqueName } from \"../util/utils.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { ServiceBusLogger } from \"../log.js\";\nimport { ServiceBusError } from \"../serviceBusError.js\";\n\n/**\n * @internal\n * Options passed to the constructor of LinkEntity\n */\nexport interface LinkEntityOptions {\n /**\n * The client entity address in one of the following forms:\n */\n address?: string;\n /**\n * The client entity token audience in one of the following forms:\n */\n audience?: string;\n}\n\n/**\n * A simple grouping of the sender and receiver options. Only used\n * with the ManagementClient today.\n *\n * @internal\n */\nexport interface RequestResponseLinkOptions {\n senderOptions: SenderOptions;\n receiverOptions: ReceiverOptions;\n name?: string;\n}\n\n/**\n * @internal\n */\nexport type NonSessionReceiverType =\n | \"batching\" // batching receiver\n | \"streaming\"; // streaming receiver\n\n/**\n * @internal\n */\nexport type ReceiverType = NonSessionReceiverType | \"session\"; // message session\n\n/**\n * @internal\n */\ntype LinkOptionsT<LinkT extends Receiver | AwaitableSender | RequestResponseLink> =\n LinkT extends Receiver\n ? ReceiverOptions\n : LinkT extends AwaitableSender\n ? AwaitableSenderOptions\n : LinkT extends RequestResponseLink\n ? RequestResponseLinkOptions\n : never;\n\n/**\n * @internal\n */\ntype LinkTypeT<LinkT extends Receiver | AwaitableSender | RequestResponseLink> =\n LinkT extends Receiver\n ? ReceiverType\n : LinkT extends AwaitableSender\n ? \"sender\" // sender\n : LinkT extends RequestResponseLink\n ? \"mgmt\" // management link\n : never;\n\n/**\n * @internal\n * Describes the base class for entities like MessageSender, MessageReceiver and Management client.\n */\nexport abstract class LinkEntity<LinkT extends Receiver | AwaitableSender | RequestResponseLink> {\n /**\n * The unique name for the entity in the format:\n * `${name of the entity}-${guid}`.\n */\n name: string;\n /**\n * The client entity address in one of the following forms:\n *\n * **Sender**\n * - `\"<queue-name>\"`.\n * - `\"<topic-name>\"`.\n *\n * **Receiver**\n * - `\"<queue-name>\"`.\n * - `\"<topic-name>\"`.\n *\n * **ManagementClient**\n * -`\"$management\"`.\n */\n address: string;\n /**\n * The client entity token audience in one of the following forms:\n *\n * **Sender**\n * - `\"sb://<yournamespace>.servicebus.windows.net/<queue-name>\"`\n * - `\"sb://<yournamespace>.servicebus.windows.net/<topic-name>\"`\n *\n * **Receiver**\n * - `\"sb://<yournamespace>.servicebus.windows.net/<queue-name>\"`\n * - `\"sb://<yournamespace>.servicebus.windows.net/<topic-name>\"`\n *\n * **ManagementClient**\n * - `\"sb://<your-namespace>.servicebus.windows.net/<queue-name>/$management\"`.\n * - `\"sb://<your-namespace>.servicebus.windows.net/<topic-name>/$management\"`.\n */\n audience: string;\n /**\n * Provides relevant information about the amqp connection,\n * cbs and $management sessions, token provider, sender and receivers.\n */\n protected _context: ConnectionContext;\n /**\n * The token renewal timer that keeps track of when\n * the Client Entity is due for token renewal.\n */\n private _tokenRenewalTimer?: NodeJS.Timeout;\n /**\n * Indicates token timeout\n */\n protected _tokenTimeout?: number;\n\n /**\n * The actual rhea link (of type Receiver or AwaitableSender) or RequestResponseLink\n */\n private _link?: LinkT;\n\n /**\n * The log prefix for any log messages.\n */\n private _logPrefix: string;\n\n public get logPrefix(): string {\n return this._logPrefix;\n }\n\n /**\n * Indicates that close() has been called on this link and\n * that it should not be allowed to reopen.\n */\n private _wasClosedPermanently: boolean = false;\n\n /**\n * A lock that ensures that opening and closing this\n * link properly cooperate.\n */\n private _openLock: string = `linkEntity-${generate_uuid()}`;\n\n /**\n * Creates a new ClientEntity instance.\n * @param baseName - The base name to use for the link. A unique ID will be appended to this.\n * @param entityPath - The entity path (ex: 'your-queue')\n * @param context - The connection context.\n * @param options - Options that can be provided while creating the LinkEntity.\n */\n constructor(\n public readonly baseName: string,\n public readonly entityPath: string,\n context: ConnectionContext,\n private _linkType: LinkTypeT<LinkT>,\n private _logger: ServiceBusLogger,\n options?: LinkEntityOptions,\n ) {\n if (!options) options = {};\n this._context = context;\n this.address = options.address || \"\";\n this.audience = options.audience || \"\";\n this.name = getUniqueName(baseName);\n this._logPrefix = `[${context.connectionId}|${this._linkType}:${this.name}]`;\n }\n\n /**\n * Determines whether the AMQP link is open. If open then returns true else returns false.\n */\n isOpen(): boolean {\n const result: boolean = this._link ? this._link.isOpen() : false;\n this._logger.verbose(`${this._logPrefix} is open? ${result}`);\n return result;\n }\n\n /**\n * Initializes this LinkEntity, setting this._link with the result of `createRheaLink`, which\n * is implemented by child classes.\n *\n * @returns A Promise that resolves when the link has been properly initialized\n * @throws `AbortError` if the link has been closed via 'close'\n */\n async initLink(options: LinkOptionsT<LinkT>, abortSignal?: AbortSignalLike): Promise<void> {\n // we'll check that the connection isn't in the process of recycling (and if so, wait for it to complete)\n await this._context.readyToOpenLink();\n\n this._logger.verbose(\n `${this._logPrefix} Attempting to acquire lock token ${this._openLock} for initializing link`,\n );\n return defaultCancellableLock.acquire(\n this._openLock,\n () => {\n this._logger.verbose(\n `${this._logPrefix} Lock ${this._openLock} acquired for initializing link`,\n );\n return this._initLinkImpl(options, abortSignal);\n },\n {\n abortSignal: abortSignal,\n timeoutInMs: Constants.defaultOperationTimeoutInMs,\n },\n );\n }\n\n private async _initLinkImpl(\n options: LinkOptionsT<LinkT>,\n abortSignal?: AbortSignalLike,\n ): Promise<void> {\n const checkAborted = (): void => {\n if (abortSignal?.aborted) {\n this._link?.close();\n throw new AbortError(StandardAbortMessage);\n }\n };\n\n const connectionId = this._context.connectionId;\n checkAborted();\n\n if (options.name) {\n this.name = options.name;\n this._logPrefix = `[${connectionId}|${this._linkType}:${this.name}]`;\n }\n\n if (this._wasClosedPermanently) {\n this._logger.verbose(`${this._logPrefix} Link has been permanently closed. Not reopening.`);\n throw new AbortError(`Link has been permanently closed. Not reopening.`);\n }\n\n if (this.isOpen()) {\n this._logger.verbose(`${this._logPrefix} Link is already open. Returning.`);\n return;\n }\n\n this._logger.verbose(\n `${this._logPrefix} Is not open and is not currently connecting. Opening.`,\n );\n\n try {\n await this._negotiateClaim({\n abortSignal,\n setTokenRenewal: false,\n timeoutInMs: Constants.defaultOperationTimeoutInMs,\n });\n\n checkAborted();\n this.checkIfConnectionReady();\n\n this._logger.verbose(`${this._logPrefix} Creating with options %O`, options);\n this._link = await this.createRheaLink(options);\n checkAborted();\n\n this._ensureTokenRenewal();\n\n this._logger.verbose(`${this._logPrefix} Link has been created.`);\n } catch (err: any) {\n this._logger.logError(err, `${this._logPrefix} Error thrown when creating the link`);\n await this.closeLinkImpl();\n throw err;\n }\n }\n\n /**\n * Clears token renewal for current link, removes current LinkEntity instance from cache,\n * and closes the underlying AMQP link.\n * Once closed, this instance of LinkEntity is not meant to be re-used.\n */\n async close(): Promise<void> {\n // Set the flag to indicate that this instance of LinkEntity is not meant to be re-used.\n this._wasClosedPermanently = true;\n\n this._logger.verbose(`${this.logPrefix} permanently closing this link.`);\n\n this.removeLinkFromContext();\n\n await this.closeLink();\n this._logger.verbose(`${this.logPrefix} permanently closed this link.`);\n }\n\n /**\n * NOTE: This method should be implemented by any child classes to actually create the underlying\n * Rhea link (AwaitableSender or Receiver or RequestResponseLink)\n *\n */\n protected abstract createRheaLink(_options: LinkOptionsT<LinkT>): Promise<LinkT>;\n\n /**\n * Clears this link from context's link cache.\n */\n protected abstract removeLinkFromContext(): void;\n\n /**\n * Closes the internally held rhea link, stops the token renewal timer and sets\n * the this._link field to undefined.\n */\n protected closeLink(): Promise<void> {\n this._logger.verbose(\n `${this._logPrefix} Attempting to acquire lock token ${this._openLock} for closing link`,\n );\n return defaultCancellableLock.acquire(\n this._openLock,\n () => {\n this._logger.verbose(`${this._logPrefix} Lock ${this._openLock} acquired for closing link`);\n return this.closeLinkImpl();\n },\n { abortSignal: undefined, timeoutInMs: undefined },\n );\n }\n\n private async closeLinkImpl(): Promise<void> {\n this._logger.verbose(`${this._logPrefix} closeLinkImpl() called`);\n\n clearTimeout(this._tokenRenewalTimer as NodeJS.Timeout);\n this._tokenRenewalTimer = undefined;\n\n if (this._link) {\n try {\n const link = this._link;\n this._link = undefined;\n\n // This should take care of closing the link and it's underlying session. This should also\n // remove them from the internal map.\n await link.close();\n this._logger.verbose(`${this._logPrefix} closed.`);\n } catch (err: any) {\n this._logger.logError(err, `${this._logPrefix} An error occurred while closing the link`);\n }\n }\n }\n\n /**\n * Provides the current type of the ClientEntity.\n * @returns The entity type.\n */\n private get _type(): string {\n let result = \"LinkEntity\";\n if ((this as any).constructor && (this as any).constructor.name) {\n result = (this as any).constructor.name;\n }\n return result;\n }\n\n protected get wasClosedPermanently(): boolean {\n return this._wasClosedPermanently;\n }\n\n protected get link(): LinkT | undefined {\n return this._link;\n }\n\n /**\n * Negotiates the cbs claim for the ClientEntity.\n * @param setTokenRenewal - Set the token renewal timer. Default false.\n */\n private async _negotiateClaim({\n abortSignal,\n setTokenRenewal,\n timeoutInMs,\n }: {\n setTokenRenewal: boolean;\n abortSignal: AbortSignalLike | undefined;\n timeoutInMs: number;\n }): Promise<void> {\n this._logger.verbose(`${this._logPrefix} negotiateclaim() has been called`);\n\n // Wait for the connectionContext to be ready to open the link.\n this.checkIfConnectionReady();\n\n // Acquire the lock and establish a cbs session if it does not exist on the connection.\n // Although node.js is single threaded, we need a locking mechanism to ensure that a\n // race condition does not happen while creating a shared resource (in this case the\n // cbs session, since we want to have exactly 1 cbs session per connection).\n this._logger.verbose(\n \"%s Acquiring cbs lock: '%s' for creating the cbs session while creating the %s: \" +\n \"'%s' with address: '%s'.\",\n this.logPrefix,\n this._context.cbsSession.cbsLock,\n this._type,\n this.name,\n this.address,\n );\n\n const startTime = Date.now();\n if (!this._context.cbsSession.isOpen()) {\n await defaultCancellableLock.acquire(\n this._context.cbsSession.cbsLock,\n () => {\n this.checkIfConnectionReady();\n return this._context.cbsSession.init({ abortSignal, timeoutInMs });\n },\n {\n abortSignal,\n timeoutInMs: timeoutInMs - (Date.now() - startTime),\n },\n );\n }\n\n let tokenObject: AccessToken;\n let tokenType: TokenType;\n if (isSasTokenProvider(this._context.tokenCredential)) {\n tokenObject = await this._context.tokenCredential.getToken(this.audience);\n tokenType = TokenType.CbsTokenTypeSas;\n\n // renew sas token in every 45 minutes\n this._tokenTimeout = (3600 - 900) * 1000;\n } else {\n const aadToken = await this._context.tokenCredential.getToken(Constants.aadServiceBusScope);\n if (!aadToken) {\n throw new Error(`Failed to get token from the provided \"TokenCredential\" object`);\n }\n tokenObject = aadToken;\n tokenType = TokenType.CbsTokenTypeJwt;\n this._tokenTimeout = tokenObject.expiresOnTimestamp - Date.now() - 2 * 60 * 1000;\n }\n this._logger.verbose(\n \"%s %s: calling negotiateClaim for audience '%s'.\",\n this.logPrefix,\n this._type,\n this.audience,\n );\n // Acquire the lock to negotiate the CBS claim.\n this._logger.verbose(\n \"%s Acquiring cbs lock: '%s' for cbs auth for %s: '%s' with address '%s'.\",\n this.logPrefix,\n this._context.negotiateClaimLock,\n this._type,\n this.name,\n this.address,\n );\n if (!tokenObject) {\n throw new Error(\"Token cannot be null\");\n }\n await defaultCancellableLock.acquire(\n this._context.negotiateClaimLock,\n () => {\n this.checkIfConnectionReady();\n return this._context.cbsSession.negotiateClaim(\n this.audience,\n tokenObject.token,\n tokenType,\n {\n abortSignal,\n timeoutInMs: timeoutInMs - (Date.now() - startTime),\n },\n );\n },\n {\n abortSignal,\n timeoutInMs: timeoutInMs - (Date.now() - startTime),\n },\n );\n this._logger.verbose(\n \"%s Negotiated claim for %s '%s' with with address: %s\",\n this.logPrefix,\n this._type,\n this.name,\n this.address,\n );\n if (setTokenRenewal) {\n this._ensureTokenRenewal();\n }\n }\n\n /**\n * Checks to see if the connection is in a \"reopening\" state. If it is\n * we need to _not_ use it otherwise we'll trigger some race conditions\n * within rhea (for instance, errors about _process not being defined).\n */\n private checkIfConnectionReady(): void {\n if (!this._context.isConnectionClosing()) {\n return;\n }\n\n this._logger.verbose(\n `${this._logPrefix} Connection is reopening, aborting link initialization.`,\n );\n const err = new ServiceBusError(\n \"Connection is reopening, aborting link initialization.\",\n \"GeneralError\",\n );\n err.retryable = true;\n throw err;\n }\n\n /**\n * Ensures that the token is renewed within the predefined renewal margin.\n */\n private _ensureTokenRenewal(): void {\n if (!this._tokenTimeout) {\n return;\n }\n // Clear the existing token renewal timer.\n // This scenario can happen if the connection goes down and is brought back up\n // before the `nextRenewalTimeout` was reached.\n if (this._tokenRenewalTimer) {\n clearTimeout(this._tokenRenewalTimer);\n }\n this._tokenRenewalTimer = setTimeout(async () => {\n try {\n await this._negotiateClaim({\n setTokenRenewal: true,\n abortSignal: undefined,\n timeoutInMs: Constants.defaultOperationTimeoutInMs,\n });\n } catch (err: any) {\n this._logger.logError(\n err,\n \"%s %s '%s' with address %s, an error occurred while renewing the token\",\n this.logPrefix,\n this._type,\n this.name,\n this.address,\n );\n }\n }, this._tokenTimeout);\n this._logger.verbose(\n \"%s %s '%s' with address %s, has next token renewal in %d milliseconds @(%s).\",\n this.logPrefix,\n this._type,\n this.name,\n this.address,\n this._tokenTimeout,\n new Date(Date.now() + this._tokenTimeout).toString(),\n );\n }\n}\n"]}
@@ -49,6 +49,18 @@ function isCorrelationRuleFilter(obj) {
49
49
  * to the $management endpoint over AMQP connection.
50
50
  */
51
51
  export class ManagementClient extends LinkEntity {
52
+ /**
53
+ * The reply to Guid for the management client.
54
+ */
55
+ replyTo = generate_uuid();
56
+ /**
57
+ * Provides the sequence number of the last peeked message.
58
+ */
59
+ _lastPeekedSequenceNumber = Long.ZERO;
60
+ /**
61
+ * lock token for init operation
62
+ */
63
+ _initLock = `initMgmtLink-${generate_uuid()}`;
52
64
  /**
53
65
  * Instantiates the management client.
54
66
  * @param context - The connection context
@@ -64,18 +76,6 @@ export class ManagementClient extends LinkEntity {
64
76
  ? options.audience
65
77
  : `${context.config.endpoint}${entityPath}/$management`,
66
78
  });
67
- /**
68
- * The reply to Guid for the management client.
69
- */
70
- this.replyTo = generate_uuid();
71
- /**
72
- * Provides the sequence number of the last peeked message.
73
- */
74
- this._lastPeekedSequenceNumber = Long.ZERO;
75
- /**
76
- * lock token for init operation
77
- */
78
- this._initLock = `initMgmtLink-${generate_uuid()}`;
79
79
  this._context = context;
80
80
  }
81
81
  /**
@@ -84,8 +84,7 @@ export class ManagementClient extends LinkEntity {
84
84
  * @returns updated options bag that has adjusted `timeoutInMs` to account for init time
85
85
  */
86
86
  async initWithUniqueReplyTo(options = {}) {
87
- var _a;
88
- const retryTimeoutInMs = (_a = options.timeoutInMs) !== null && _a !== void 0 ? _a : Constants.defaultOperationTimeoutInMs;
87
+ const retryTimeoutInMs = options.timeoutInMs ?? Constants.defaultOperationTimeoutInMs;
89
88
  const initOperationStartTime = Date.now();
90
89
  return defaultCancellableLock.acquire(this._initLock, async () => {
91
90
  managementClientLogger.verbose(`${this.logPrefix} lock acquired for initializing replyTo address and link`);
@@ -98,7 +97,7 @@ export class ManagementClient extends LinkEntity {
98
97
  const abortListener = () => {
99
98
  aborter.abort();
100
99
  };
101
- abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.addEventListener("abort", abortListener);
100
+ abortSignal?.addEventListener("abort", abortListener);
102
101
  if (!this.isOpen()) {
103
102
  await Promise.race([
104
103
  this._init(aborter.signal),
@@ -112,14 +111,16 @@ export class ManagementClient extends LinkEntity {
112
111
  }),
113
112
  ]).finally(() => {
114
113
  aborter.abort();
115
- abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.removeEventListener("abort", abortListener);
114
+ abortSignal?.removeEventListener("abort", abortListener);
116
115
  });
117
116
  }
118
117
  // time taken by the init operation
119
118
  const timeTakenByInit = Date.now() - initOperationStartTime;
120
- return Object.assign(Object.assign({}, options), {
119
+ return {
120
+ ...options,
121
121
  // Left over time
122
- timeoutInMs: retryTimeoutInMs - timeTakenByInit });
122
+ timeoutInMs: retryTimeoutInMs - timeTakenByInit,
123
+ };
123
124
  }, {
124
125
  abortSignal: options.abortSignal,
125
126
  timeoutInMs: retryTimeoutInMs,
@@ -192,13 +193,12 @@ export class ManagementClient extends LinkEntity {
192
193
  return result;
193
194
  }
194
195
  async _makeManagementRequest(request, internalLogger, sendRequestOptions = {}) {
195
- var _a, _b, _c, _d;
196
196
  if (request.message_id === undefined) {
197
197
  request.message_id = generate_uuid();
198
198
  }
199
199
  try {
200
200
  const { timeoutInMs } = sendRequestOptions;
201
- await waitForSendable(internalLogger, this.logPrefix, this.name, timeoutInMs !== null && timeoutInMs !== void 0 ? timeoutInMs : Constants.defaultOperationTimeoutInMs, (_a = this.link) === null || _a === void 0 ? void 0 : _a.sender, (_d = (_c = (_b = this.link) === null || _b === void 0 ? void 0 : _b.session) === null || _c === void 0 ? void 0 : _c.outgoing) === null || _d === void 0 ? void 0 : _d.available());
201
+ await waitForSendable(internalLogger, this.logPrefix, this.name, timeoutInMs ?? Constants.defaultOperationTimeoutInMs, this.link?.sender, this.link?.session?.outgoing?.available());
202
202
  return await this.link.sendRequest(request, sendRequestOptions);
203
203
  }
204
204
  catch (err) {
@@ -268,7 +268,6 @@ export class ManagementClient extends LinkEntity {
268
268
  * @param omitMessageBody - Whether to omit message body when peeking. Default value `false`.
269
269
  */
270
270
  async peekBySequenceNumber(fromSequenceNumber, maxMessageCount, sessionId, omitMessageBody, options) {
271
- var _a, _b;
272
271
  throwErrorIfConnectionClosed(this._context);
273
272
  const connId = this._context.connectionId;
274
273
  // Checks for fromSequenceNumber
@@ -300,9 +299,9 @@ export class ManagementClient extends LinkEntity {
300
299
  operation: Constants.operations.peekMessage,
301
300
  },
302
301
  };
303
- if (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName) {
302
+ if (updatedOptions?.associatedLinkName) {
304
303
  request.application_properties[Constants.associatedLinkName] =
305
- updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName;
304
+ updatedOptions?.associatedLinkName;
306
305
  }
307
306
  request.application_properties[Constants.trackingId] = generate_uuid();
308
307
  // TODO: it'd be nice to attribute this peek request to the actual receiver that made it. So have them pass in a
@@ -314,8 +313,8 @@ export class ManagementClient extends LinkEntity {
314
313
  for (const msg of messages) {
315
314
  const decodedMessage = RheaMessageUtil.decode(msg.message);
316
315
  const message = fromRheaMessage(decodedMessage, {
317
- skipParsingBodyAsJson: (_a = updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.skipParsingBodyAsJson) !== null && _a !== void 0 ? _a : false,
318
- skipConvertingDate: (_b = updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.skipConvertingDate) !== null && _b !== void 0 ? _b : false,
316
+ skipParsingBodyAsJson: updatedOptions?.skipParsingBodyAsJson ?? false,
317
+ skipConvertingDate: updatedOptions?.skipConvertingDate ?? false,
319
318
  });
320
319
  messageList.push(message);
321
320
  this._lastPeekedSequenceNumber = message.sequenceNumber;
@@ -371,7 +370,7 @@ export class ManagementClient extends LinkEntity {
371
370
  }
372
371
  receiverLogger.verbose("[%s] Renew message Lock request: %O.", this._context.connectionId, request);
373
372
  const result = await this._makeManagementRequest(request, receiverLogger, {
374
- abortSignal: updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.abortSignal,
373
+ abortSignal: updatedOptions?.abortSignal,
375
374
  requestName: "renewLock",
376
375
  });
377
376
  const lockedUntilUtc = new Date(result.body.expirations[0]);
@@ -391,7 +390,6 @@ export class ManagementClient extends LinkEntity {
391
390
  * @returns The sequence numbers of messages that were scheduled.
392
391
  */
393
392
  async scheduleMessages(scheduledEnqueueTimeUtc, messages, options) {
394
- var _a;
395
393
  throwErrorIfConnectionClosed(this._context);
396
394
  if (!messages.length) {
397
395
  return [];
@@ -410,7 +408,7 @@ export class ManagementClient extends LinkEntity {
410
408
  if (rheaMessage.group_id) {
411
409
  entry[Constants.sessionIdMapKey] = rheaMessage.group_id;
412
410
  }
413
- if ((_a = rheaMessage.message_annotations) === null || _a === void 0 ? void 0 : _a[Constants.partitionKey]) {
411
+ if (rheaMessage.message_annotations?.[Constants.partitionKey]) {
414
412
  entry["partition-key"] = rheaMessage.message_annotations[Constants.partitionKey];
415
413
  }
416
414
  // Will be required later for implementing Transactions
@@ -435,9 +433,9 @@ export class ManagementClient extends LinkEntity {
435
433
  operation: Constants.operations.scheduleMessage,
436
434
  },
437
435
  };
438
- if (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName) {
436
+ if (updatedOptions?.associatedLinkName) {
439
437
  request.application_properties[Constants.associatedLinkName] =
440
- updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName;
438
+ updatedOptions?.associatedLinkName;
441
439
  }
442
440
  request.application_properties[Constants.trackingId] = generate_uuid();
443
441
  senderLogger.verbose("%s Schedule messages request body: %O.", this.logPrefix, request.body);
@@ -492,9 +490,9 @@ export class ManagementClient extends LinkEntity {
492
490
  operation: Constants.operations.cancelScheduledMessage,
493
491
  },
494
492
  };
495
- if (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName) {
493
+ if (updatedOptions?.associatedLinkName) {
496
494
  request.application_properties[Constants.associatedLinkName] =
497
- updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName;
495
+ updatedOptions?.associatedLinkName;
498
496
  }
499
497
  request.application_properties[Constants.trackingId] = generate_uuid();
500
498
  senderLogger.verbose("%s Cancel scheduled messages request body: %O.", this.logPrefix, request.body);
@@ -516,7 +514,6 @@ export class ManagementClient extends LinkEntity {
516
514
  * - Throws an error if the messages have not been deferred.
517
515
  */
518
516
  async receiveDeferredMessages(sequenceNumbers, receiveMode, sessionId, options) {
519
- var _a;
520
517
  throwErrorIfConnectionClosed(this._context);
521
518
  if (!sequenceNumbers.length) {
522
519
  return [];
@@ -550,9 +547,9 @@ export class ManagementClient extends LinkEntity {
550
547
  operation: Constants.operations.receiveBySequenceNumber,
551
548
  },
552
549
  };
553
- if (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName) {
550
+ if (updatedOptions?.associatedLinkName) {
554
551
  request.application_properties[Constants.associatedLinkName] =
555
- updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName;
552
+ updatedOptions?.associatedLinkName;
556
553
  }
557
554
  request.application_properties[Constants.trackingId] = generate_uuid();
558
555
  receiverLogger.verbose("%s Receive deferred messages request body: %O.", this.logPrefix, request.body);
@@ -560,7 +557,7 @@ export class ManagementClient extends LinkEntity {
560
557
  const messages = result.body.messages;
561
558
  for (const msg of messages) {
562
559
  const decodedMessage = RheaMessageUtil.decode(msg.message);
563
- const message = new ServiceBusMessageImpl(decodedMessage, { tag: msg["lock-token"] }, false, receiveMode, (_a = updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.skipParsingBodyAsJson) !== null && _a !== void 0 ? _a : false, false);
560
+ const message = new ServiceBusMessageImpl(decodedMessage, { tag: msg["lock-token"] }, false, receiveMode, updatedOptions?.skipParsingBodyAsJson ?? false, false);
564
561
  messageList.push(message);
565
562
  }
566
563
  return messageList;
@@ -587,9 +584,9 @@ export class ManagementClient extends LinkEntity {
587
584
  operation: Constants.operations.deleteMessages,
588
585
  },
589
586
  };
590
- if (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName) {
587
+ if (updatedOptions?.associatedLinkName) {
591
588
  request.application_properties[Constants.associatedLinkName] =
592
- updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName;
589
+ updatedOptions?.associatedLinkName;
593
590
  }
594
591
  request.application_properties[Constants.trackingId] = generate_uuid();
595
592
  receiverLogger.verbose("%s delete messages request body: %O.", this.logPrefix, request.body);
@@ -624,7 +621,7 @@ export class ManagementClient extends LinkEntity {
624
621
  if (isNaN(messageCount) || messageCount < 1) {
625
622
  throw new TypeError("'messageCount' must be a number greater than 0.");
626
623
  }
627
- enqueueTimeUtcOlderThan !== null && enqueueTimeUtcOlderThan !== void 0 ? enqueueTimeUtcOlderThan : (enqueueTimeUtcOlderThan = new Date());
624
+ enqueueTimeUtcOlderThan ??= new Date();
628
625
  return this._deleteMessages(messageCount, enqueueTimeUtcOlderThan, sessionId, options);
629
626
  }
630
627
  /**
@@ -712,9 +709,9 @@ export class ManagementClient extends LinkEntity {
712
709
  },
713
710
  };
714
711
  request.application_properties[Constants.trackingId] = generate_uuid();
715
- if (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName) {
712
+ if (updatedOptions?.associatedLinkName) {
716
713
  request.application_properties[Constants.associatedLinkName] =
717
- updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName;
714
+ updatedOptions?.associatedLinkName;
718
715
  }
719
716
  receiverLogger.verbose("%s Renew Session Lock request body: %O.", this.logPrefix, request.body);
720
717
  const result = await this._makeManagementRequest(request, receiverLogger, updatedOptions);
@@ -748,9 +745,9 @@ export class ManagementClient extends LinkEntity {
748
745
  operation: Constants.operations.setSessionState,
749
746
  },
750
747
  };
751
- if (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName) {
748
+ if (updatedOptions?.associatedLinkName) {
752
749
  request.application_properties[Constants.associatedLinkName] =
753
- updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName;
750
+ updatedOptions?.associatedLinkName;
754
751
  }
755
752
  request.application_properties[Constants.trackingId] = generate_uuid();
756
753
  receiverLogger.verbose("%s Set Session state request body: %O.", this.logPrefix, request.body);
@@ -781,9 +778,9 @@ export class ManagementClient extends LinkEntity {
781
778
  operation: Constants.operations.getSessionState,
782
779
  },
783
780
  };
784
- if (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName) {
781
+ if (updatedOptions?.associatedLinkName) {
785
782
  request.application_properties[Constants.associatedLinkName] =
786
- updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.associatedLinkName;
783
+ updatedOptions?.associatedLinkName;
787
784
  }
788
785
  request.application_properties[Constants.trackingId] = generate_uuid();
789
786
  receiverLogger.verbose("%s Get session state request body: %O.", this.logPrefix, request.body);
@@ -854,10 +851,10 @@ export class ManagementClient extends LinkEntity {
854
851
  const updatedOptions = (await this.initWithUniqueReplyTo(options));
855
852
  const request = {
856
853
  body: {
857
- top: (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.maxCount)
854
+ top: updatedOptions?.maxCount
858
855
  ? types.wrap_int(updatedOptions.maxCount)
859
856
  : types.wrap_int(max32BitNumber),
860
- skip: (updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.skip) ? types.wrap_int(updatedOptions.skip) : types.wrap_int(0),
857
+ skip: updatedOptions?.skip ? types.wrap_int(updatedOptions.skip) : types.wrap_int(0),
861
858
  },
862
859
  reply_to: this.replyTo,
863
860
  application_properties: {
@@ -1059,7 +1056,10 @@ export function toScheduleableMessage(item, scheduledEnqueueTimeUtc) {
1059
1056
  message: RheaMessageUtil.encode(rheaMessage),
1060
1057
  "message-id": rheaMessage.message_id,
1061
1058
  };
1062
- rheaMessage.message_annotations = Object.assign(Object.assign({}, rheaMessage.message_annotations), { [Constants.scheduledEnqueueTime]: scheduledEnqueueTimeUtc });
1059
+ rheaMessage.message_annotations = {
1060
+ ...rheaMessage.message_annotations,
1061
+ [Constants.scheduledEnqueueTime]: scheduledEnqueueTimeUtc,
1062
+ };
1063
1063
  if (rheaMessage.group_id) {
1064
1064
  entry[Constants.sessionIdMapKey] = rheaMessage.group_id;
1065
1065
  }