@signageos/lib 23.8.1 → 23.8.2-master.4405

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 (631) hide show
  1. package/dist/AMQP/CQRS/ICommand.d.ts +38 -0
  2. package/dist/AMQP/CQRS/ICommand.js +3 -0
  3. package/dist/AMQP/CQRS/ICommand.js.map +1 -0
  4. package/dist/AMQP/CQRS/ICommandError.d.ts +4 -0
  5. package/dist/AMQP/CQRS/ICommandError.js +3 -0
  6. package/dist/AMQP/CQRS/ICommandError.js.map +1 -0
  7. package/dist/AMQP/CQRS/commandQueue.d.ts +59 -0
  8. package/dist/AMQP/CQRS/commandQueue.js +313 -0
  9. package/dist/AMQP/CQRS/commandQueue.js.map +1 -0
  10. package/dist/AMQP/CQRS/commandResponseHelper.d.ts +3 -0
  11. package/dist/AMQP/CQRS/commandResponseHelper.js +8 -0
  12. package/dist/AMQP/CQRS/commandResponseHelper.js.map +1 -0
  13. package/dist/AMQP/CQRS/storedCommandQueue.d.ts +27 -0
  14. package/dist/AMQP/CQRS/storedCommandQueue.js +301 -0
  15. package/dist/AMQP/CQRS/storedCommandQueue.js.map +1 -0
  16. package/dist/AMQP/ChannelProvider.d.ts +37 -0
  17. package/dist/AMQP/ChannelProvider.js +886 -0
  18. package/dist/AMQP/ChannelProvider.js.map +1 -0
  19. package/dist/AMQP/DeviceActions/Bridge/deviceActionBridgeFactory.d.ts +39 -0
  20. package/dist/AMQP/DeviceActions/Bridge/deviceActionBridgeFactory.js +292 -0
  21. package/dist/AMQP/DeviceActions/Bridge/deviceActionBridgeFactory.js.map +1 -0
  22. package/dist/AMQP/DeviceActions/IDeviceAction.d.ts +4 -0
  23. package/dist/AMQP/DeviceActions/IDeviceAction.js +3 -0
  24. package/dist/AMQP/DeviceActions/IDeviceAction.js.map +1 -0
  25. package/dist/AMQP/DeviceActions/deviceActionsQueue.d.ts +83 -0
  26. package/dist/AMQP/DeviceActions/deviceActionsQueue.js +538 -0
  27. package/dist/AMQP/DeviceActions/deviceActionsQueue.js.map +1 -0
  28. package/dist/AMQP/EventSourcing/EventConsumer/AmqpEventConsumer.d.ts +47 -0
  29. package/dist/AMQP/EventSourcing/EventConsumer/AmqpEventConsumer.js +218 -0
  30. package/dist/AMQP/EventSourcing/EventConsumer/AmqpEventConsumer.js.map +1 -0
  31. package/dist/AMQP/EventSourcing/EventConsumer/IEventConsumer.d.ts +13 -0
  32. package/dist/AMQP/EventSourcing/EventConsumer/IEventConsumer.js +3 -0
  33. package/dist/AMQP/EventSourcing/EventConsumer/IEventConsumer.js.map +1 -0
  34. package/dist/AMQP/EventSourcing/EventConsumer/InMemoryEventConsumer.d.ts +15 -0
  35. package/dist/AMQP/EventSourcing/EventConsumer/InMemoryEventConsumer.js +76 -0
  36. package/dist/AMQP/EventSourcing/EventConsumer/InMemoryEventConsumer.js.map +1 -0
  37. package/dist/AMQP/EventSourcing/IEvent.d.ts +72 -0
  38. package/dist/AMQP/EventSourcing/IEvent.js +3 -0
  39. package/dist/AMQP/EventSourcing/IEvent.js.map +1 -0
  40. package/dist/AMQP/EventSourcing/Locked/deferredState.d.ts +21 -0
  41. package/dist/AMQP/EventSourcing/Locked/deferredState.js +72 -0
  42. package/dist/AMQP/EventSourcing/Locked/deferredState.js.map +1 -0
  43. package/dist/AMQP/EventSourcing/Locked/lockedEventConsumer.d.ts +63 -0
  44. package/dist/AMQP/EventSourcing/Locked/lockedEventConsumer.js +261 -0
  45. package/dist/AMQP/EventSourcing/Locked/lockedEventConsumer.js.map +1 -0
  46. package/dist/AMQP/EventSourcing/Locked/rejectedTimestamps.d.ts +24 -0
  47. package/dist/AMQP/EventSourcing/Locked/rejectedTimestamps.js +64 -0
  48. package/dist/AMQP/EventSourcing/Locked/rejectedTimestamps.js.map +1 -0
  49. package/dist/AMQP/EventSourcing/Locked/withLock.d.ts +42 -0
  50. package/dist/AMQP/EventSourcing/Locked/withLock.js +141 -0
  51. package/dist/AMQP/EventSourcing/Locked/withLock.js.map +1 -0
  52. package/dist/AMQP/EventSourcing/eventQueue.d.ts +87 -0
  53. package/dist/AMQP/EventSourcing/eventQueue.js +139 -0
  54. package/dist/AMQP/EventSourcing/eventQueue.js.map +1 -0
  55. package/dist/AMQP/EventSourcing/eventQueue.utils.d.ts +73 -0
  56. package/dist/AMQP/EventSourcing/eventQueue.utils.js +157 -0
  57. package/dist/AMQP/EventSourcing/eventQueue.utils.js.map +1 -0
  58. package/dist/AMQP/EventSourcing/eventQueueDetached.d.ts +49 -0
  59. package/dist/AMQP/EventSourcing/eventQueueDetached.js +428 -0
  60. package/dist/AMQP/EventSourcing/eventQueueDetached.js.map +1 -0
  61. package/dist/AMQP/EventSourcing/eventQueueDomain.d.ts +42 -0
  62. package/dist/AMQP/EventSourcing/eventQueueDomain.js +371 -0
  63. package/dist/AMQP/EventSourcing/eventQueueDomain.js.map +1 -0
  64. package/dist/AMQP/EventSourcing/eventQueuePublish.d.ts +19 -0
  65. package/dist/AMQP/EventSourcing/eventQueuePublish.js +209 -0
  66. package/dist/AMQP/EventSourcing/eventQueuePublish.js.map +1 -0
  67. package/dist/AMQP/EventSourcing/synchronization.d.ts +39 -0
  68. package/dist/AMQP/EventSourcing/synchronization.js +12 -0
  69. package/dist/AMQP/EventSourcing/synchronization.js.map +1 -0
  70. package/dist/AMQP/Exchange.d.ts +1 -0
  71. package/dist/AMQP/Exchange.js +3 -0
  72. package/dist/AMQP/Exchange.js.map +1 -0
  73. package/dist/AMQP/IAMQPPool.d.ts +5 -0
  74. package/dist/AMQP/IAMQPPool.js +3 -0
  75. package/dist/AMQP/IAMQPPool.js.map +1 -0
  76. package/dist/AMQP/IAsyncGotMessage.d.ts +15 -0
  77. package/dist/AMQP/IAsyncGotMessage.js +3 -0
  78. package/dist/AMQP/IAsyncGotMessage.js.map +1 -0
  79. package/dist/AMQP/IChannel.d.ts +43 -0
  80. package/dist/AMQP/IChannel.js +3 -0
  81. package/dist/AMQP/IChannel.js.map +1 -0
  82. package/dist/AMQP/IConsumeOptions.d.ts +106 -0
  83. package/dist/AMQP/IConsumeOptions.js +3 -0
  84. package/dist/AMQP/IConsumeOptions.js.map +1 -0
  85. package/dist/AMQP/IMessageOptions.d.ts +6 -0
  86. package/dist/AMQP/IMessageOptions.js +3 -0
  87. package/dist/AMQP/IMessageOptions.js.map +1 -0
  88. package/dist/AMQP/INackOptions.d.ts +4 -0
  89. package/dist/AMQP/INackOptions.js +3 -0
  90. package/dist/AMQP/INackOptions.js.map +1 -0
  91. package/dist/AMQP/IQueueOptions.d.ts +8 -0
  92. package/dist/AMQP/IQueueOptions.js +3 -0
  93. package/dist/AMQP/IQueueOptions.js.map +1 -0
  94. package/dist/AMQP/Logging/IDeviceLog.d.ts +15 -0
  95. package/dist/AMQP/Logging/IDeviceLog.js +10 -0
  96. package/dist/AMQP/Logging/IDeviceLog.js.map +1 -0
  97. package/dist/AMQP/Logging/logDeviceQueue.d.ts +12 -0
  98. package/dist/AMQP/Logging/logDeviceQueue.js +107 -0
  99. package/dist/AMQP/Logging/logDeviceQueue.js.map +1 -0
  100. package/dist/AMQP/QueueFetcher.d.ts +13 -0
  101. package/dist/AMQP/QueueFetcher.js +166 -0
  102. package/dist/AMQP/QueueFetcher.js.map +1 -0
  103. package/dist/AMQP/QueuePublisher.d.ts +7 -0
  104. package/dist/AMQP/QueuePublisher.js +135 -0
  105. package/dist/AMQP/QueuePublisher.js.map +1 -0
  106. package/dist/AMQP/QueueRepeatableSubscription.d.ts +14 -0
  107. package/dist/AMQP/QueueRepeatableSubscription.js +162 -0
  108. package/dist/AMQP/QueueRepeatableSubscription.js.map +1 -0
  109. package/dist/AMQP/QueueSubscriber.d.ts +11 -0
  110. package/dist/AMQP/QueueSubscriber.js +163 -0
  111. package/dist/AMQP/QueueSubscriber.js.map +1 -0
  112. package/dist/AMQP/ResponseProvider.d.ts +20 -0
  113. package/dist/AMQP/ResponseProvider.js +193 -0
  114. package/dist/AMQP/ResponseProvider.js.map +1 -0
  115. package/dist/AMQP/Static/filesQueue.d.ts +12 -0
  116. package/dist/AMQP/Static/filesQueue.js +220 -0
  117. package/dist/AMQP/Static/filesQueue.js.map +1 -0
  118. package/dist/AMQP/amqpConnectionFactory.d.ts +27 -0
  119. package/dist/AMQP/amqpConnectionFactory.js +236 -0
  120. package/dist/AMQP/amqpConnectionFactory.js.map +1 -0
  121. package/dist/AMQP/amqpErrors.d.ts +5 -0
  122. package/dist/AMQP/amqpErrors.js +30 -0
  123. package/dist/AMQP/amqpErrors.js.map +1 -0
  124. package/dist/AMQP/errors.d.ts +3 -0
  125. package/dist/AMQP/errors.js +30 -0
  126. package/dist/AMQP/errors.js.map +1 -0
  127. package/dist/AMQP/fetchNextMessage.d.ts +14 -0
  128. package/dist/AMQP/fetchNextMessage.js +118 -0
  129. package/dist/AMQP/fetchNextMessage.js.map +1 -0
  130. package/dist/AMQP/queueConfigurator.d.ts +5 -0
  131. package/dist/AMQP/queueConfigurator.js +78 -0
  132. package/dist/AMQP/queueConfigurator.js.map +1 -0
  133. package/dist/AWS/S3.d.ts +95 -0
  134. package/dist/AWS/S3.js +448 -0
  135. package/dist/AWS/S3.js.map +1 -0
  136. package/dist/AWS/S3Types.d.ts +113 -0
  137. package/dist/AWS/S3Types.js +3 -0
  138. package/dist/AWS/S3Types.js.map +1 -0
  139. package/dist/AWS/config.d.ts +2 -0
  140. package/dist/AWS/config.js +23 -0
  141. package/dist/AWS/config.js.map +1 -0
  142. package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.d.ts +30 -0
  143. package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.js +81 -0
  144. package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.js.map +1 -0
  145. package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.utils.d.ts +5 -0
  146. package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.utils.js +33 -0
  147. package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.utils.js.map +1 -0
  148. package/dist/Auth0/ManagementClient/Auth0ManagementClient.d.ts +41 -0
  149. package/dist/Auth0/ManagementClient/Auth0ManagementClient.js +137 -0
  150. package/dist/Auth0/ManagementClient/Auth0ManagementClient.js.map +1 -0
  151. package/dist/Auth0/ManagementClient/auth0ManagementClient.utils.d.ts +8 -0
  152. package/dist/Auth0/ManagementClient/auth0ManagementClient.utils.js +37 -0
  153. package/dist/Auth0/ManagementClient/auth0ManagementClient.utils.js.map +1 -0
  154. package/dist/Auth0/UserInfoClient/Auth0UserInfoClient.d.ts +14 -0
  155. package/dist/Auth0/UserInfoClient/Auth0UserInfoClient.js +58 -0
  156. package/dist/Auth0/UserInfoClient/Auth0UserInfoClient.js.map +1 -0
  157. package/dist/Auth0/auth0.types.d.ts +4 -0
  158. package/dist/Auth0/auth0.types.js +10 -0
  159. package/dist/Auth0/auth0.types.js.map +1 -0
  160. package/dist/Cache/lruCache.d.ts +22 -0
  161. package/dist/Cache/lruCache.js +42 -0
  162. package/dist/Cache/lruCache.js.map +1 -0
  163. package/dist/Cache/memoryCache.d.ts +7 -0
  164. package/dist/Cache/memoryCache.js +80 -0
  165. package/dist/Cache/memoryCache.js.map +1 -0
  166. package/dist/Config/config.d.ts +81 -0
  167. package/dist/Config/config.js +119 -0
  168. package/dist/Config/config.js.map +1 -0
  169. package/dist/Config/environment.d.ts +8 -0
  170. package/dist/Config/environment.js +13 -0
  171. package/dist/Config/environment.js.map +1 -0
  172. package/dist/Config/validation.d.ts +61 -0
  173. package/dist/Config/validation.js +56 -0
  174. package/dist/Config/validation.js.map +1 -0
  175. package/dist/DateTime/dateMonkeyPatch.d.ts +15 -0
  176. package/dist/DateTime/dateMonkeyPatch.js +149 -0
  177. package/dist/DateTime/dateMonkeyPatch.js.map +1 -0
  178. package/dist/DateTime/dateTimeFactory.d.ts +4 -0
  179. package/dist/DateTime/dateTimeFactory.js +22 -0
  180. package/dist/DateTime/dateTimeFactory.js.map +1 -0
  181. package/dist/DateTime/millisecondConstants.d.ts +7 -0
  182. package/dist/DateTime/millisecondConstants.js +11 -0
  183. package/dist/DateTime/millisecondConstants.js.map +1 -0
  184. package/dist/DateTime/posixTimezone.d.ts +1 -0
  185. package/dist/DateTime/posixTimezone.js +54 -0
  186. package/dist/DateTime/posixTimezone.js.map +1 -0
  187. package/dist/DateTime/statistics.d.ts +6 -0
  188. package/dist/DateTime/statistics.js +30 -0
  189. package/dist/DateTime/statistics.js.map +1 -0
  190. package/dist/DateTime/timeConverter.d.ts +1 -0
  191. package/dist/DateTime/timeConverter.js +11 -0
  192. package/dist/DateTime/timeConverter.js.map +1 -0
  193. package/dist/DateTime/timer.d.ts +10 -0
  194. package/dist/DateTime/timer.js +18 -0
  195. package/dist/DateTime/timer.js.map +1 -0
  196. package/dist/DateTime/timestamp.d.ts +2 -0
  197. package/dist/DateTime/timestamp.js +16 -0
  198. package/dist/DateTime/timestamp.js.map +1 -0
  199. package/dist/DateTime/waitUntil.d.ts +20 -0
  200. package/dist/DateTime/waitUntil.js +148 -0
  201. package/dist/DateTime/waitUntil.js.map +1 -0
  202. package/dist/Debug/debugClassDecorator.d.ts +13 -0
  203. package/dist/Debug/debugClassDecorator.js +63 -0
  204. package/dist/Debug/debugClassDecorator.js.map +1 -0
  205. package/dist/Debug/debugDecorator.d.ts +24 -0
  206. package/dist/Debug/debugDecorator.js +107 -0
  207. package/dist/Debug/debugDecorator.js.map +1 -0
  208. package/dist/Encryption/passwordEncryption.d.ts +4 -0
  209. package/dist/Encryption/passwordEncryption.js +29 -0
  210. package/dist/Encryption/passwordEncryption.js.map +1 -0
  211. package/dist/Encryption/tokenEncryption.d.ts +14 -0
  212. package/dist/Encryption/tokenEncryption.js +32 -0
  213. package/dist/Encryption/tokenEncryption.js.map +1 -0
  214. package/dist/Events/AsyncEventEmitter.d.ts +31 -0
  215. package/dist/Events/AsyncEventEmitter.js +125 -0
  216. package/dist/Events/AsyncEventEmitter.js.map +1 -0
  217. package/dist/Events/eventsHelpers.d.ts +3 -0
  218. package/dist/Events/eventsHelpers.js +24 -0
  219. package/dist/Events/eventsHelpers.js.map +1 -0
  220. package/dist/Events/genericGracefulExit.d.ts +11 -0
  221. package/dist/Events/genericGracefulExit.js +90 -0
  222. package/dist/Events/genericGracefulExit.js.map +1 -0
  223. package/dist/FileSystem/moduleDiscoverer.d.ts +7 -0
  224. package/dist/FileSystem/moduleDiscoverer.js +88 -0
  225. package/dist/FileSystem/moduleDiscoverer.js.map +1 -0
  226. package/dist/FileSystem/tmpDir.d.ts +9 -0
  227. package/dist/FileSystem/tmpDir.js +64 -0
  228. package/dist/FileSystem/tmpDir.js.map +1 -0
  229. package/dist/Functional/compose.d.ts +22 -0
  230. package/dist/Functional/compose.js +44 -0
  231. package/dist/Functional/compose.js.map +1 -0
  232. package/dist/GenericPool/options.d.ts +63 -0
  233. package/dist/GenericPool/options.js +3 -0
  234. package/dist/GenericPool/options.js.map +1 -0
  235. package/dist/Hash/checksum.d.ts +5 -0
  236. package/dist/Hash/checksum.js +20 -0
  237. package/dist/Hash/checksum.js.map +1 -0
  238. package/dist/Hash/checksumFile.d.ts +4 -0
  239. package/dist/Hash/checksumFile.js +82 -0
  240. package/dist/Hash/checksumFile.js.map +1 -0
  241. package/dist/Hash/generator.d.ts +2 -0
  242. package/dist/Hash/generator.js +15 -0
  243. package/dist/Hash/generator.js.map +1 -0
  244. package/dist/Http/download.d.ts +1 -0
  245. package/dist/Http/download.js +91 -0
  246. package/dist/Http/download.js.map +1 -0
  247. package/dist/HttpStatus/checks/amqpStatusCheck.d.ts +3 -0
  248. package/dist/HttpStatus/checks/amqpStatusCheck.js +98 -0
  249. package/dist/HttpStatus/checks/amqpStatusCheck.js.map +1 -0
  250. package/dist/HttpStatus/checks/mongoDBStatusCheck.d.ts +3 -0
  251. package/dist/HttpStatus/checks/mongoDBStatusCheck.js +60 -0
  252. package/dist/HttpStatus/checks/mongoDBStatusCheck.js.map +1 -0
  253. package/dist/HttpStatus/checks/redisStatusCheck.d.ts +3 -0
  254. package/dist/HttpStatus/checks/redisStatusCheck.js +94 -0
  255. package/dist/HttpStatus/checks/redisStatusCheck.js.map +1 -0
  256. package/dist/HttpStatus/createHttpStatusMiddleware.d.ts +9 -0
  257. package/dist/HttpStatus/createHttpStatusMiddleware.js +109 -0
  258. package/dist/HttpStatus/createHttpStatusMiddleware.js.map +1 -0
  259. package/dist/HttpStatus/enrichHttpServerWithStatus.d.ts +15 -0
  260. package/dist/HttpStatus/enrichHttpServerWithStatus.js +114 -0
  261. package/dist/HttpStatus/enrichHttpServerWithStatus.js.map +1 -0
  262. package/dist/HttpStatus/sendStatusResponse.d.ts +5 -0
  263. package/dist/HttpStatus/sendStatusResponse.js +71 -0
  264. package/dist/HttpStatus/sendStatusResponse.js.map +1 -0
  265. package/dist/HttpStatus/status.d.ts +19 -0
  266. package/dist/HttpStatus/status.js +132 -0
  267. package/dist/HttpStatus/status.js.map +1 -0
  268. package/dist/HttpStatus/statuses/amqpStatus.d.ts +3 -0
  269. package/dist/HttpStatus/statuses/amqpStatus.js +35 -0
  270. package/dist/HttpStatus/statuses/amqpStatus.js.map +1 -0
  271. package/dist/HttpStatus/statuses/mongoStatus.d.ts +3 -0
  272. package/dist/HttpStatus/statuses/mongoStatus.js +35 -0
  273. package/dist/HttpStatus/statuses/mongoStatus.js.map +1 -0
  274. package/dist/HttpStatus/statuses/redisStatus.d.ts +3 -0
  275. package/dist/HttpStatus/statuses/redisStatus.js +35 -0
  276. package/dist/HttpStatus/statuses/redisStatus.js.map +1 -0
  277. package/dist/InfluxDB/IInfluxDB.d.ts +5 -0
  278. package/dist/InfluxDB/IInfluxDB.js +3 -0
  279. package/dist/InfluxDB/IInfluxDB.js.map +1 -0
  280. package/dist/InfluxDB/influxDBConnectionFactory.d.ts +9 -0
  281. package/dist/InfluxDB/influxDBConnectionFactory.js +83 -0
  282. package/dist/InfluxDB/influxDBConnectionFactory.js.map +1 -0
  283. package/dist/JSON/jsonHelper.d.ts +4 -0
  284. package/dist/JSON/jsonHelper.js +21 -0
  285. package/dist/JSON/jsonHelper.js.map +1 -0
  286. package/dist/Lib/Redis/connection.utils.d.ts +22 -0
  287. package/dist/Lib/Redis/connection.utils.js +95 -0
  288. package/dist/Lib/Redis/connection.utils.js.map +1 -0
  289. package/dist/Lib/String/string.d.ts +1 -0
  290. package/dist/Lib/String/string.js +6 -0
  291. package/dist/Lib/String/string.js.map +1 -0
  292. package/dist/Lock/lockedDecorator.d.ts +12 -0
  293. package/dist/Lock/lockedDecorator.js +150 -0
  294. package/dist/Lock/lockedDecorator.js.map +1 -0
  295. package/dist/Logging/console.d.ts +8 -0
  296. package/dist/Logging/console.js +50 -0
  297. package/dist/Logging/console.js.map +1 -0
  298. package/dist/Logging/debug.d.ts +10 -0
  299. package/dist/Logging/debug.js +61 -0
  300. package/dist/Logging/debug.js.map +1 -0
  301. package/dist/Logging/format.d.ts +10 -0
  302. package/dist/Logging/format.js +79 -0
  303. package/dist/Logging/format.js.map +1 -0
  304. package/dist/Logging/logger.d.ts +53 -0
  305. package/dist/Logging/logger.js +63 -0
  306. package/dist/Logging/logger.js.map +1 -0
  307. package/dist/Logging/logging.d.ts +12 -0
  308. package/dist/Logging/logging.js +113 -0
  309. package/dist/Logging/logging.js.map +1 -0
  310. package/dist/Metrics/MetricsClient.d.ts +46 -0
  311. package/dist/Metrics/MetricsClient.js +101 -0
  312. package/dist/Metrics/MetricsClient.js.map +1 -0
  313. package/dist/Metrics/deviceConsumerMetrics.d.ts +6 -0
  314. package/dist/Metrics/deviceConsumerMetrics.js +59 -0
  315. package/dist/Metrics/deviceConsumerMetrics.js.map +1 -0
  316. package/dist/Metrics/eventConsumerMetrics.d.ts +19 -0
  317. package/dist/Metrics/eventConsumerMetrics.js +52 -0
  318. package/dist/Metrics/eventConsumerMetrics.js.map +1 -0
  319. package/dist/Metrics/eventQueueMetrics.d.ts +7 -0
  320. package/dist/Metrics/eventQueueMetrics.js +19 -0
  321. package/dist/Metrics/eventQueueMetrics.js.map +1 -0
  322. package/dist/Metrics/logMetrics.d.ts +4 -0
  323. package/dist/Metrics/logMetrics.js +20 -0
  324. package/dist/Metrics/logMetrics.js.map +1 -0
  325. package/dist/Metrics/metrics.d.ts +84 -0
  326. package/dist/Metrics/metrics.js +255 -0
  327. package/dist/Metrics/metrics.js.map +1 -0
  328. package/dist/Metrics/mongoDBMetrics.d.ts +35 -0
  329. package/dist/Metrics/mongoDBMetrics.js +162 -0
  330. package/dist/Metrics/mongoDBMetrics.js.map +1 -0
  331. package/dist/Metrics/processSocketsMetrics.d.ts +10 -0
  332. package/dist/Metrics/processSocketsMetrics.js +92 -0
  333. package/dist/Metrics/processSocketsMetrics.js.map +1 -0
  334. package/dist/Metrics/redisMetrics.d.ts +13 -0
  335. package/dist/Metrics/redisMetrics.js +60 -0
  336. package/dist/Metrics/redisMetrics.js.map +1 -0
  337. package/dist/MongoDB/MongoDBConnection.d.ts +19 -0
  338. package/dist/MongoDB/MongoDBConnection.js +185 -0
  339. package/dist/MongoDB/MongoDBConnection.js.map +1 -0
  340. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/dynamicPriority.d.ts +2 -0
  341. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/dynamicPriority.js +106 -0
  342. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/dynamicPriority.js.map +1 -0
  343. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/lowReadLatency.d.ts +2 -0
  344. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/lowReadLatency.js +94 -0
  345. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/lowReadLatency.js.map +1 -0
  346. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/ordinary.d.ts +2 -0
  347. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/ordinary.js +80 -0
  348. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/ordinary.js.map +1 -0
  349. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/random.d.ts +2 -0
  350. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/random.js +51 -0
  351. package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/random.js.map +1 -0
  352. package/dist/MongoDB/ProprietaryCluster/helper.d.ts +13 -0
  353. package/dist/MongoDB/ProprietaryCluster/helper.js +147 -0
  354. package/dist/MongoDB/ProprietaryCluster/helper.js.map +1 -0
  355. package/dist/MongoDB/cursorIterator.d.ts +5 -0
  356. package/dist/MongoDB/cursorIterator.js +63 -0
  357. package/dist/MongoDB/cursorIterator.js.map +1 -0
  358. package/dist/MongoDB/escape.d.ts +4 -0
  359. package/dist/MongoDB/escape.js +54 -0
  360. package/dist/MongoDB/escape.js.map +1 -0
  361. package/dist/MongoDB/mongoDBConnectionFactory.d.ts +13 -0
  362. package/dist/MongoDB/mongoDBConnectionFactory.js +11 -0
  363. package/dist/MongoDB/mongoDBConnectionFactory.js.map +1 -0
  364. package/dist/MongoDB/proprietaryCluster.d.ts +1 -0
  365. package/dist/MongoDB/proprietaryCluster.js +76 -0
  366. package/dist/MongoDB/proprietaryCluster.js.map +1 -0
  367. package/dist/Npm/INpmClient.d.ts +25 -0
  368. package/dist/Npm/INpmClient.js +3 -0
  369. package/dist/Npm/INpmClient.js.map +1 -0
  370. package/dist/Npm/MockNpmClient.d.ts +17 -0
  371. package/dist/Npm/MockNpmClient.js +124 -0
  372. package/dist/Npm/MockNpmClient.js.map +1 -0
  373. package/dist/Npm/NpmClient.d.ts +14 -0
  374. package/dist/Npm/NpmClient.js +212 -0
  375. package/dist/Npm/NpmClient.js.map +1 -0
  376. package/dist/Npm/NpmCredentialsProvider.d.ts +18 -0
  377. package/dist/Npm/NpmCredentialsProvider.js +111 -0
  378. package/dist/Npm/NpmCredentialsProvider.js.map +1 -0
  379. package/dist/Observable/helpers.d.ts +3 -0
  380. package/dist/Observable/helpers.js +117 -0
  381. package/dist/Observable/helpers.js.map +1 -0
  382. package/dist/Parsers/parsers.d.ts +1 -0
  383. package/dist/Parsers/parsers.js +17 -0
  384. package/dist/Parsers/parsers.js.map +1 -0
  385. package/dist/Path/detector.d.ts +9 -0
  386. package/dist/Path/detector.js +78 -0
  387. package/dist/Path/detector.js.map +1 -0
  388. package/dist/Pool/IBasePool.d.ts +6 -0
  389. package/dist/Pool/IBasePool.js +3 -0
  390. package/dist/Pool/IBasePool.js.map +1 -0
  391. package/dist/Promise/cancelable.d.ts +4 -0
  392. package/dist/Promise/cancelable.js +21 -0
  393. package/dist/Promise/cancelable.js.map +1 -0
  394. package/dist/Promise/deferred.d.ts +4 -0
  395. package/dist/Promise/deferred.js +21 -0
  396. package/dist/Promise/deferred.js.map +1 -0
  397. package/dist/Promise/deferredStream.d.ts +4 -0
  398. package/dist/Promise/deferredStream.js +21 -0
  399. package/dist/Promise/deferredStream.js.map +1 -0
  400. package/dist/Promise/lock.d.ts +4 -0
  401. package/dist/Promise/lock.js +21 -0
  402. package/dist/Promise/lock.js.map +1 -0
  403. package/dist/Promise/timeoutable.d.ts +4 -0
  404. package/dist/Promise/timeoutable.js +21 -0
  405. package/dist/Promise/timeoutable.js.map +1 -0
  406. package/dist/Redis/DeviceActions/PostponedAction.d.ts +4 -0
  407. package/dist/Redis/DeviceActions/PostponedAction.js +3 -0
  408. package/dist/Redis/DeviceActions/PostponedAction.js.map +1 -0
  409. package/dist/Redis/DeviceActions/postponedDeviceActions.d.ts +8 -0
  410. package/dist/Redis/DeviceActions/postponedDeviceActions.js +333 -0
  411. package/dist/Redis/DeviceActions/postponedDeviceActions.js.map +1 -0
  412. package/dist/Redis/redisConnectionFactory.d.ts +41 -0
  413. package/dist/Redis/redisConnectionFactory.js +158 -0
  414. package/dist/Redis/redisConnectionFactory.js.map +1 -0
  415. package/dist/Redis/redisLock.d.ts +11 -0
  416. package/dist/Redis/redisLock.js +213 -0
  417. package/dist/Redis/redisLock.js.map +1 -0
  418. package/dist/Retry/retry.d.ts +28 -0
  419. package/dist/Retry/retry.js +154 -0
  420. package/dist/Retry/retry.js.map +1 -0
  421. package/dist/Rsync/copier.d.ts +1 -0
  422. package/dist/Rsync/copier.js +123 -0
  423. package/dist/Rsync/copier.js.map +1 -0
  424. package/dist/SemVer/SemVerLevel.d.ts +6 -0
  425. package/dist/SemVer/SemVerLevel.js +10 -0
  426. package/dist/SemVer/SemVerLevel.js.map +1 -0
  427. package/dist/SemVer/semVerConstants.d.ts +2 -0
  428. package/dist/SemVer/semVerConstants.js +9 -0
  429. package/dist/SemVer/semVerConstants.js.map +1 -0
  430. package/dist/SemVer/semVerHelper.d.ts +7 -0
  431. package/dist/SemVer/semVerHelper.js +82 -0
  432. package/dist/SemVer/semVerHelper.js.map +1 -0
  433. package/dist/Service/HTTP/express/app.d.ts +33 -0
  434. package/dist/Service/HTTP/express/app.js +82 -0
  435. package/dist/Service/HTTP/express/app.js.map +1 -0
  436. package/dist/Service/HTTP/express/expressFactory.d.ts +4 -0
  437. package/dist/Service/HTTP/express/expressFactory.js +22 -0
  438. package/dist/Service/HTTP/express/expressFactory.js.map +1 -0
  439. package/dist/Service/HTTP/express/monitoring.d.ts +8 -0
  440. package/dist/Service/HTTP/express/monitoring.js +25 -0
  441. package/dist/Service/HTTP/express/monitoring.js.map +1 -0
  442. package/dist/Service/HTTP/httpServerFactory.d.ts +54 -0
  443. package/dist/Service/HTTP/httpServerFactory.js +104 -0
  444. package/dist/Service/HTTP/httpServerFactory.js.map +1 -0
  445. package/dist/Service/HTTP/middleware/accessLogMiddleware.d.ts +20 -0
  446. package/dist/Service/HTTP/middleware/accessLogMiddleware.js +90 -0
  447. package/dist/Service/HTTP/middleware/accessLogMiddleware.js.map +1 -0
  448. package/dist/Service/HTTP/middleware/headersMiddleware.d.ts +2 -0
  449. package/dist/Service/HTTP/middleware/headersMiddleware.js +18 -0
  450. package/dist/Service/HTTP/middleware/headersMiddleware.js.map +1 -0
  451. package/dist/Service/HTTP/routes/app/indexPage.d.ts +7 -0
  452. package/dist/Service/HTTP/routes/app/indexPage.js +12 -0
  453. package/dist/Service/HTTP/routes/app/indexPage.js.map +1 -0
  454. package/dist/Service/HTTP/routes/app/router.d.ts +14 -0
  455. package/dist/Service/HTTP/routes/app/router.js +12 -0
  456. package/dist/Service/HTTP/routes/app/router.js.map +1 -0
  457. package/dist/Service/HTTP/routes/app/status.d.ts +13 -0
  458. package/dist/Service/HTTP/routes/app/status.js +44 -0
  459. package/dist/Service/HTTP/routes/app/status.js.map +1 -0
  460. package/dist/Service/HTTP/routes/monitoring/aliveness.d.ts +20 -0
  461. package/dist/Service/HTTP/routes/monitoring/aliveness.js +75 -0
  462. package/dist/Service/HTTP/routes/monitoring/aliveness.js.map +1 -0
  463. package/dist/Service/HTTP/routes/monitoring/metrics.d.ts +9 -0
  464. package/dist/Service/HTTP/routes/monitoring/metrics.js +59 -0
  465. package/dist/Service/HTTP/routes/monitoring/metrics.js.map +1 -0
  466. package/dist/Service/HTTP/routes/monitoring/readniness.d.ts +18 -0
  467. package/dist/Service/HTTP/routes/monitoring/readniness.js +80 -0
  468. package/dist/Service/HTTP/routes/monitoring/readniness.js.map +1 -0
  469. package/dist/Service/HTTP/routes/monitoring/router.d.ts +10 -0
  470. package/dist/Service/HTTP/routes/monitoring/router.js +12 -0
  471. package/dist/Service/HTTP/routes/monitoring/router.js.map +1 -0
  472. package/dist/Service/HTTP/server/serverFactory.d.ts +10 -0
  473. package/dist/Service/HTTP/server/serverFactory.js +133 -0
  474. package/dist/Service/HTTP/server/serverFactory.js.map +1 -0
  475. package/dist/Service/Service.d.ts +17 -0
  476. package/dist/Service/Service.js +97 -0
  477. package/dist/Service/Service.js.map +1 -0
  478. package/dist/Service/dbConnections.d.ts +8 -0
  479. package/dist/Service/dbConnections.js +3 -0
  480. package/dist/Service/dbConnections.js.map +1 -0
  481. package/dist/Service/metrics/connections.d.ts +3 -0
  482. package/dist/Service/metrics/connections.js +47 -0
  483. package/dist/Service/metrics/connections.js.map +1 -0
  484. package/dist/Service/metrics/mongodb.d.ts +2 -0
  485. package/dist/Service/metrics/mongodb.js +13 -0
  486. package/dist/Service/metrics/mongodb.js.map +1 -0
  487. package/dist/Service/metrics/redis.d.ts +2 -0
  488. package/dist/Service/metrics/redis.js +11 -0
  489. package/dist/Service/metrics/redis.js.map +1 -0
  490. package/dist/Service/process.d.ts +11 -0
  491. package/dist/Service/process.js +88 -0
  492. package/dist/Service/process.js.map +1 -0
  493. package/dist/Service/serviceFactory.d.ts +115 -0
  494. package/dist/Service/serviceFactory.js +118 -0
  495. package/dist/Service/serviceFactory.js.map +1 -0
  496. package/dist/Service/types.d.ts +55 -0
  497. package/dist/Service/types.js +3 -0
  498. package/dist/Service/types.js.map +1 -0
  499. package/dist/Storage/IArrayStorage.d.ts +7 -0
  500. package/dist/Storage/IArrayStorage.js +3 -0
  501. package/dist/Storage/IArrayStorage.js.map +1 -0
  502. package/dist/Storage/MemoryArrayStorage.d.ts +9 -0
  503. package/dist/Storage/MemoryArrayStorage.js +22 -0
  504. package/dist/Storage/MemoryArrayStorage.js.map +1 -0
  505. package/dist/String/pad.d.ts +1 -0
  506. package/dist/String/pad.js +7 -0
  507. package/dist/String/pad.js.map +1 -0
  508. package/dist/String/string.d.ts +3 -0
  509. package/dist/String/string.js +17 -0
  510. package/dist/String/string.js.map +1 -0
  511. package/dist/String/webalize.d.ts +1 -0
  512. package/dist/String/webalize.js +15 -0
  513. package/dist/String/webalize.js.map +1 -0
  514. package/dist/String/word.d.ts +32 -0
  515. package/dist/String/word.js +97 -0
  516. package/dist/String/word.js.map +1 -0
  517. package/dist/System/signalSender.d.ts +1 -0
  518. package/dist/System/signalSender.js +7 -0
  519. package/dist/System/signalSender.js.map +1 -0
  520. package/dist/ThirdParty/connection.d.ts +28 -0
  521. package/dist/ThirdParty/connection.js +9 -0
  522. package/dist/ThirdParty/connection.js.map +1 -0
  523. package/dist/Timer/Power/PowerTimerSettings.d.ts +29 -0
  524. package/dist/Timer/Power/PowerTimerSettings.js +3 -0
  525. package/dist/Timer/Power/PowerTimerSettings.js.map +1 -0
  526. package/dist/Timer/Power/PowerTimerType.d.ts +2 -0
  527. package/dist/Timer/Power/PowerTimerType.js +3 -0
  528. package/dist/Timer/Power/PowerTimerType.js.map +1 -0
  529. package/dist/Timer/Power/PowerTimerWeekday.d.ts +18 -0
  530. package/dist/Timer/Power/PowerTimerWeekday.js +18 -0
  531. package/dist/Timer/Power/PowerTimerWeekday.js.map +1 -0
  532. package/dist/Timer/Power/PowerTimerWeekdayEnum.d.ts +28 -0
  533. package/dist/Timer/Power/PowerTimerWeekdayEnum.js +32 -0
  534. package/dist/Timer/Power/PowerTimerWeekdayEnum.js.map +1 -0
  535. package/dist/Timer/Power/TimerEventWeekdayNumber.d.ts +9 -0
  536. package/dist/Timer/Power/TimerEventWeekdayNumber.js +14 -0
  537. package/dist/Timer/Power/TimerEventWeekdayNumber.js.map +1 -0
  538. package/dist/Timer/Power/powerTimerComputer.d.ts +36 -0
  539. package/dist/Timer/Power/powerTimerComputer.js +141 -0
  540. package/dist/Timer/Power/powerTimerComputer.js.map +1 -0
  541. package/dist/Timer/convertWeekday.d.ts +25 -0
  542. package/dist/Timer/convertWeekday.js +211 -0
  543. package/dist/Timer/convertWeekday.js.map +1 -0
  544. package/dist/Timer/converters.d.ts +44 -0
  545. package/dist/Timer/converters.js +72 -0
  546. package/dist/Timer/converters.js.map +1 -0
  547. package/dist/Timer/increasingInterval.d.ts +2 -0
  548. package/dist/Timer/increasingInterval.js +108 -0
  549. package/dist/Timer/increasingInterval.js.map +1 -0
  550. package/dist/Timer/nonConcurrentInterval.d.ts +4 -0
  551. package/dist/Timer/nonConcurrentInterval.js +73 -0
  552. package/dist/Timer/nonConcurrentInterval.js.map +1 -0
  553. package/dist/Timer/progressiveWait.d.ts +40 -0
  554. package/dist/Timer/progressiveWait.js +96 -0
  555. package/dist/Timer/progressiveWait.js.map +1 -0
  556. package/dist/Timer/timeout.d.ts +4 -0
  557. package/dist/Timer/timeout.js +21 -0
  558. package/dist/Timer/timeout.js.map +1 -0
  559. package/dist/Timer/wait.d.ts +5 -0
  560. package/dist/Timer/wait.js +27 -0
  561. package/dist/Timer/wait.js.map +1 -0
  562. package/dist/TypeScript/asyncIterator.d.ts +1 -0
  563. package/dist/TypeScript/asyncIterator.js +76 -0
  564. package/dist/TypeScript/asyncIterator.js.map +1 -0
  565. package/dist/TypeScript/expect.d.ts +6 -0
  566. package/dist/TypeScript/expect.js +12 -0
  567. package/dist/TypeScript/expect.js.map +1 -0
  568. package/dist/TypeScript/generator.d.ts +1 -0
  569. package/dist/TypeScript/generator.js +20 -0
  570. package/dist/TypeScript/generator.js.map +1 -0
  571. package/dist/TypeScript/object.d.ts +12 -0
  572. package/dist/TypeScript/object.js +3 -0
  573. package/dist/TypeScript/object.js.map +1 -0
  574. package/dist/TypeScript/observable-polyfill.d.ts +1 -0
  575. package/dist/TypeScript/observable-polyfill.js +33 -0
  576. package/dist/TypeScript/observable-polyfill.js.map +1 -0
  577. package/dist/Utils/array.d.ts +2 -0
  578. package/dist/Utils/array.js +23 -0
  579. package/dist/Utils/array.js.map +1 -0
  580. package/dist/Utils/enum.d.ts +24 -0
  581. package/dist/Utils/enum.js +35 -0
  582. package/dist/Utils/enum.js.map +1 -0
  583. package/dist/Utils/file.d.ts +1 -0
  584. package/dist/Utils/file.js +55 -0
  585. package/dist/Utils/file.js.map +1 -0
  586. package/dist/Utils/http.d.ts +23 -0
  587. package/dist/Utils/http.js +68 -0
  588. package/dist/Utils/http.js.map +1 -0
  589. package/dist/Utils/object.d.ts +22 -0
  590. package/dist/Utils/object.js +112 -0
  591. package/dist/Utils/object.js.map +1 -0
  592. package/dist/Utils/sorting.d.ts +1 -0
  593. package/dist/Utils/sorting.js +33 -0
  594. package/dist/Utils/sorting.js.map +1 -0
  595. package/dist/WebSocket/Client/ISocket.d.ts +55 -0
  596. package/dist/WebSocket/Client/ISocket.js +46 -0
  597. package/dist/WebSocket/Client/ISocket.js.map +1 -0
  598. package/dist/WebSocket/Client/SocketIO/createSocketIOSocket.d.ts +8 -0
  599. package/dist/WebSocket/Client/SocketIO/createSocketIOSocket.js +81 -0
  600. package/dist/WebSocket/Client/SocketIO/createSocketIOSocket.js.map +1 -0
  601. package/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.d.ts +25 -0
  602. package/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.js +174 -0
  603. package/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.js.map +1 -0
  604. package/dist/WebSocket/Client/WS/createWSSocket.d.ts +8 -0
  605. package/dist/WebSocket/Client/WS/createWSSocket.js +155 -0
  606. package/dist/WebSocket/Client/WS/createWSSocket.js.map +1 -0
  607. package/dist/WebSocket/autoWsServerFactory.d.ts +4 -0
  608. package/dist/WebSocket/autoWsServerFactory.js +334 -0
  609. package/dist/WebSocket/autoWsServerFactory.js.map +1 -0
  610. package/dist/WebSocket/perMessageDeflate.d.ts +14 -0
  611. package/dist/WebSocket/perMessageDeflate.js +3 -0
  612. package/dist/WebSocket/perMessageDeflate.js.map +1 -0
  613. package/dist/WebSocket/socketIOServerFactory.d.ts +6 -0
  614. package/dist/WebSocket/socketIOServerFactory.js +124 -0
  615. package/dist/WebSocket/socketIOServerFactory.js.map +1 -0
  616. package/dist/WebSocket/socketServer.d.ts +30 -0
  617. package/dist/WebSocket/socketServer.js +3 -0
  618. package/dist/WebSocket/socketServer.js.map +1 -0
  619. package/dist/WebSocket/wsServerFactory.d.ts +8 -0
  620. package/dist/WebSocket/wsServerFactory.js +272 -0
  621. package/dist/WebSocket/wsServerFactory.js.map +1 -0
  622. package/dist/Webpack/NpmPackPlugin.d.ts +14 -0
  623. package/dist/Webpack/NpmPackPlugin.js +90 -0
  624. package/dist/Webpack/NpmPackPlugin.js.map +1 -0
  625. package/dist/Zod/zod.d.ts +2 -0
  626. package/dist/Zod/zod.js +7 -0
  627. package/dist/Zod/zod.js.map +1 -0
  628. package/dist/Zod/zodError.d.ts +40 -0
  629. package/dist/Zod/zodError.js +76 -0
  630. package/dist/Zod/zodError.js.map +1 -0
  631. package/package.json +36 -2
@@ -0,0 +1,886 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
30
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
33
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
34
+ };
35
+ var __importStar = (this && this.__importStar) || function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ var __metadata = (this && this.__metadata) || function (k, v) {
43
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
44
+ };
45
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
46
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
47
+ return new (P || (P = Promise))(function (resolve, reject) {
48
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
49
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
50
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
51
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
52
+ });
53
+ };
54
+ var __generator = (this && this.__generator) || function (thisArg, body) {
55
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
56
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
57
+ function verb(n) { return function (v) { return step([n, v]); }; }
58
+ function step(op) {
59
+ if (f) throw new TypeError("Generator is already executing.");
60
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
61
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
62
+ if (y = 0, t) op = [op[0] & 2, t.value];
63
+ switch (op[0]) {
64
+ case 0: case 1: t = op; break;
65
+ case 4: _.label++; return { value: op[1], done: false };
66
+ case 5: _.label++; y = op[1]; op = [0]; continue;
67
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
68
+ default:
69
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
70
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
71
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
72
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
73
+ if (t[2]) _.ops.pop();
74
+ _.trys.pop(); continue;
75
+ }
76
+ op = body.call(thisArg, _);
77
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
78
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
79
+ }
80
+ };
81
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
82
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
83
+ if (ar || !(i in from)) {
84
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
85
+ ar[i] = from[i];
86
+ }
87
+ }
88
+ return to.concat(ar || Array.prototype.slice.call(from));
89
+ };
90
+ var __importDefault = (this && this.__importDefault) || function (mod) {
91
+ return (mod && mod.__esModule) ? mod : { "default": mod };
92
+ };
93
+ Object.defineProperty(exports, "__esModule", { value: true });
94
+ exports.DEFAULT_QUORUM_INITIAL_GROUP_SIZE = exports.REJECTED_QUEUE_PREFIX = void 0;
95
+ var _ = __importStar(require("lodash"));
96
+ var jsonHelper_1 = require("../JSON/jsonHelper");
97
+ var debug_1 = __importDefault(require("debug"));
98
+ var amqpErrors_1 = require("./amqpErrors");
99
+ var wait_1 = __importDefault(require("../Timer/wait"));
100
+ var lockedDecorator_1 = require("../Lock/lockedDecorator");
101
+ var timeout_1 = require("../Timer/timeout");
102
+ var errors_1 = require("./errors");
103
+ var ResponseProvider_1 = require("./ResponseProvider");
104
+ var deferred_1 = require("../Promise/deferred");
105
+ var eventsHelpers_1 = require("../Events/eventsHelpers");
106
+ var debug = (0, debug_1.default)('@signageos/lib:AMQP:ChannelProvider');
107
+ var MAX_PENDING_TASKS = 100e3;
108
+ var CHANNEL_IDLE_TIMEOUT_SECONDS = 20;
109
+ var DEFAULT_PREFETCH_COUNT = 100;
110
+ exports.REJECTED_QUEUE_PREFIX = '__rejected.';
111
+ exports.DEFAULT_QUORUM_INITIAL_GROUP_SIZE = 3;
112
+ var ChannelProvider = /** @class */ (function () {
113
+ function ChannelProvider(amqpPool) {
114
+ this.amqpPool = amqpPool;
115
+ this.decodeMessageBuffer = function (encodedMessageBuffer) {
116
+ return (encodedMessageBuffer === null || encodedMessageBuffer === void 0 ? void 0 : encodedMessageBuffer.toString()) ? JSON.parse(encodedMessageBuffer.toString(), jsonHelper_1.deserializeJSON) : null;
117
+ };
118
+ this.amqplibChannelMap = {};
119
+ this.responseProviderMap = {};
120
+ }
121
+ ChannelProvider.prototype.getChannel = function (namespace_1) {
122
+ return __awaiter(this, arguments, void 0, function (namespace, options) {
123
+ var amqplibConnection, amqplibChannel, responseProvider, channel;
124
+ var _this = this;
125
+ if (options === void 0) { options = {}; }
126
+ return __generator(this, function (_a) {
127
+ switch (_a.label) {
128
+ case 0: return [4 /*yield*/, this.getAmqplibConnection()];
129
+ case 1:
130
+ amqplibConnection = _a.sent();
131
+ if (!options.confirmable) return [3 /*break*/, 3];
132
+ return [4 /*yield*/, this.getAmqplibConfirmChannel(amqplibConnection, namespace)];
133
+ case 2:
134
+ amqplibChannel = _a.sent();
135
+ return [3 /*break*/, 5];
136
+ case 3: return [4 /*yield*/, this.getAmqplibChannel(amqplibConnection, namespace)];
137
+ case 4:
138
+ amqplibChannel = _a.sent();
139
+ _a.label = 5;
140
+ case 5:
141
+ responseProvider = this.getResponseProvider(amqplibConnection, namespace);
142
+ channel = {
143
+ assertExchange: function (exchangeName, type, exchangeOptions) { return __awaiter(_this, void 0, void 0, function () {
144
+ return __generator(this, function (_a) {
145
+ switch (_a.label) {
146
+ case 0: return [4 /*yield*/, amqplibChannel.assertExchange(exchangeName, type, exchangeOptions)];
147
+ case 1:
148
+ _a.sent();
149
+ return [2 /*return*/];
150
+ }
151
+ });
152
+ }); },
153
+ send: function (message_1) {
154
+ var args_1 = [];
155
+ for (var _i = 1; _i < arguments.length; _i++) {
156
+ args_1[_i - 1] = arguments[_i];
157
+ }
158
+ return __awaiter(_this, __spreadArray([message_1], args_1, true), void 0, function (message, messageOptions, headers, exchangeName, routingKey) {
159
+ var encodedMessageBuffer, amqplibSendOptions;
160
+ if (messageOptions === void 0) { messageOptions = {}; }
161
+ if (headers === void 0) { headers = {}; }
162
+ if (exchangeName === void 0) { exchangeName = ''; }
163
+ return __generator(this, function (_a) {
164
+ switch (_a.label) {
165
+ case 0:
166
+ encodedMessageBuffer = this.encodeMessageIntoBuffer(message);
167
+ amqplibSendOptions = this.createAmqplibSendOptions(options, messageOptions, headers);
168
+ return [4 /*yield*/, this.publish(amqplibChannel, exchangeName, routingKey, encodedMessageBuffer, amqplibSendOptions, options)];
169
+ case 1:
170
+ _a.sent();
171
+ return [2 /*return*/];
172
+ }
173
+ });
174
+ });
175
+ },
176
+ sendBatch: function (messages_1) {
177
+ var args_1 = [];
178
+ for (var _i = 1; _i < arguments.length; _i++) {
179
+ args_1[_i - 1] = arguments[_i];
180
+ }
181
+ return __awaiter(_this, __spreadArray([messages_1], args_1, true), void 0, function (messages, messageOptions, headers, getExchangeName, getRoutingKey, onMessagePublished, batchSize) {
182
+ var outStanding, _a, messages_2, message, encodedMessageBuffer, amqplibSendOptions, exchangeName, routingKey;
183
+ if (messageOptions === void 0) { messageOptions = {}; }
184
+ if (headers === void 0) { headers = {}; }
185
+ if (batchSize === void 0) { batchSize = 100; }
186
+ return __generator(this, function (_b) {
187
+ switch (_b.label) {
188
+ case 0:
189
+ outStanding = 0;
190
+ _a = 0, messages_2 = messages;
191
+ _b.label = 1;
192
+ case 1:
193
+ if (!(_a < messages_2.length)) return [3 /*break*/, 5];
194
+ message = messages_2[_a];
195
+ encodedMessageBuffer = this.encodeMessageIntoBuffer(message);
196
+ amqplibSendOptions = this.createAmqplibSendOptions(options, messageOptions, headers);
197
+ exchangeName = getExchangeName(message);
198
+ routingKey = getRoutingKey(message);
199
+ return [4 /*yield*/, this.publish(amqplibChannel, exchangeName, routingKey, encodedMessageBuffer, amqplibSendOptions, __assign(__assign({}, options), { confirmable: false }))];
200
+ case 2:
201
+ _b.sent();
202
+ onMessagePublished(message);
203
+ outStanding++;
204
+ if (!(outStanding === batchSize)) return [3 /*break*/, 4];
205
+ /**
206
+ * Consider adding simple in memory lock to prevent
207
+ * https://gitlab.com/signageos/lib/lib/-/merge_requests/541#note_2489625173
208
+ */
209
+ return [4 /*yield*/, amqplibChannel.waitForConfirms()];
210
+ case 3:
211
+ /**
212
+ * Consider adding simple in memory lock to prevent
213
+ * https://gitlab.com/signageos/lib/lib/-/merge_requests/541#note_2489625173
214
+ */
215
+ _b.sent();
216
+ outStanding = 0;
217
+ _b.label = 4;
218
+ case 4:
219
+ _a++;
220
+ return [3 /*break*/, 1];
221
+ case 5:
222
+ if (!(outStanding > 0)) return [3 /*break*/, 7];
223
+ return [4 /*yield*/, amqplibChannel.waitForConfirms()];
224
+ case 6:
225
+ _b.sent();
226
+ _b.label = 7;
227
+ case 7: return [2 /*return*/];
228
+ }
229
+ });
230
+ });
231
+ },
232
+ sendExpectingResponse: function (message_1) {
233
+ var args_1 = [];
234
+ for (var _i = 1; _i < arguments.length; _i++) {
235
+ args_1[_i - 1] = arguments[_i];
236
+ }
237
+ return __awaiter(_this, __spreadArray([message_1], args_1, true), void 0, function (message, messageOptions, headers, exchangeName, routingKey, responseTimeout) {
238
+ var encodedMessageBuffer, response, amqplibSendOptions, responsePromises, timeoutPromise, error_1;
239
+ if (messageOptions === void 0) { messageOptions = {}; }
240
+ if (headers === void 0) { headers = {}; }
241
+ if (exchangeName === void 0) { exchangeName = ''; }
242
+ return __generator(this, function (_a) {
243
+ switch (_a.label) {
244
+ case 0:
245
+ encodedMessageBuffer = this.encodeMessageIntoBuffer(message);
246
+ _a.label = 1;
247
+ case 1:
248
+ _a.trys.push([1, 5, , 6]);
249
+ return [4 /*yield*/, responseProvider.prepareResponse()];
250
+ case 2:
251
+ response = _a.sent();
252
+ amqplibSendOptions = __assign(__assign({}, this.createAmqplibSendOptions(options, messageOptions, headers)), { replyTo: response.queueName, correlationId: response.correlationId });
253
+ return [4 /*yield*/, this.publish(amqplibChannel, exchangeName, routingKey, encodedMessageBuffer, amqplibSendOptions, options)];
254
+ case 3:
255
+ _a.sent();
256
+ responsePromises = [response.promise];
257
+ if (typeof responseTimeout !== 'undefined') {
258
+ timeoutPromise = (0, timeout_1.rejectAfterTimeout)(responseTimeout);
259
+ responsePromises.push(timeoutPromise);
260
+ }
261
+ return [4 /*yield*/, Promise.race(responsePromises)];
262
+ case 4: return [2 /*return*/, _a.sent()];
263
+ case 5:
264
+ error_1 = _a.sent();
265
+ if (error_1 instanceof timeout_1.TimeoutError) {
266
+ throw new errors_1.ResponseTimeoutError();
267
+ }
268
+ else {
269
+ throw error_1;
270
+ }
271
+ return [3 /*break*/, 6];
272
+ case 6: return [2 /*return*/];
273
+ }
274
+ });
275
+ });
276
+ },
277
+ consumeSimple: function (queueName_1, bindings_1, onMessage_1) {
278
+ var args_1 = [];
279
+ for (var _i = 3; _i < arguments.length; _i++) {
280
+ args_1[_i - 3] = arguments[_i];
281
+ }
282
+ return __awaiter(_this, __spreadArray([queueName_1, bindings_1, onMessage_1], args_1, true), void 0, function (queueName, bindings, onMessage, consumeOptions, onEnded) {
283
+ var _this = this;
284
+ if (consumeOptions === void 0) { consumeOptions = {}; }
285
+ return __generator(this, function (_a) {
286
+ switch (_a.label) {
287
+ case 0: return [4 /*yield*/, channel.consume(queueName, bindings, function (message, headers, ack, nack, fields) { return __awaiter(_this, void 0, void 0, function () {
288
+ var response, error_2, requeue;
289
+ return __generator(this, function (_a) {
290
+ switch (_a.label) {
291
+ case 0:
292
+ _a.trys.push([0, 2, , 3]);
293
+ return [4 /*yield*/, onMessage(message, headers)];
294
+ case 1:
295
+ response = _a.sent();
296
+ ack();
297
+ return [2 /*return*/, response];
298
+ case 2:
299
+ error_2 = _a.sent();
300
+ debug('Error in consumeSimple callback', { queueName: queueName, error: error_2 });
301
+ requeue = !this.shouldDeadLetter(consumeOptions, fields.redelivered);
302
+ nack({ requeue: requeue });
303
+ if (!consumeOptions.suppressFirstError || fields.redelivered) {
304
+ throw error_2;
305
+ }
306
+ return [3 /*break*/, 3];
307
+ case 3: return [2 /*return*/];
308
+ }
309
+ });
310
+ }); }, consumeOptions, onEnded)];
311
+ case 1: return [2 /*return*/, _a.sent()];
312
+ }
313
+ });
314
+ });
315
+ },
316
+ assertRejectableQueue: function (queueName_1) {
317
+ var args_1 = [];
318
+ for (var _i = 1; _i < arguments.length; _i++) {
319
+ args_1[_i - 1] = arguments[_i];
320
+ }
321
+ return __awaiter(_this, __spreadArray([queueName_1], args_1, true), void 0, function (queueName, consumeOptions) {
322
+ if (consumeOptions === void 0) { consumeOptions = {}; }
323
+ return __generator(this, function (_a) {
324
+ switch (_a.label) {
325
+ case 0: return [4 /*yield*/, this.assertRejectableQueue(amqplibChannel, queueName, options, consumeOptions)];
326
+ case 1: return [2 /*return*/, _a.sent()];
327
+ }
328
+ });
329
+ });
330
+ },
331
+ consume: function (queueName_1, bindings_1, onMessage_1) {
332
+ var args_1 = [];
333
+ for (var _i = 3; _i < arguments.length; _i++) {
334
+ args_1[_i - 3] = arguments[_i];
335
+ }
336
+ return __awaiter(_this, __spreadArray([queueName_1, bindings_1, onMessage_1], args_1, true), void 0, function (queueName, bindings, onMessage, consumeOptions, onEnded) {
337
+ var onEndedCallback, amqplibConsumeOptions, uniqueConsumerTagName, consumerTag_1, error_3;
338
+ var _this = this;
339
+ if (consumeOptions === void 0) { consumeOptions = {}; }
340
+ return __generator(this, function (_a) {
341
+ switch (_a.label) {
342
+ case 0:
343
+ onEndedCallback = function () {
344
+ if (onEnded) {
345
+ onEnded();
346
+ onEnded = undefined;
347
+ }
348
+ };
349
+ return [4 /*yield*/, amqplibChannel.prefetch(options.prefetchCount || DEFAULT_PREFETCH_COUNT)];
350
+ case 1:
351
+ _a.sent();
352
+ return [4 /*yield*/, this.assertRejectableQueue(amqplibChannel, queueName, options, consumeOptions)];
353
+ case 2:
354
+ _a.sent();
355
+ amqplibConsumeOptions = {};
356
+ if (consumeOptions.exclusiveConsumption) {
357
+ uniqueConsumerTagName = "amqp.ctag-".concat(queueName);
358
+ amqplibConsumeOptions.consumerTag = uniqueConsumerTagName; // This will prevent have more than one consumption on queue
359
+ }
360
+ if (consumeOptions.noAck) {
361
+ amqplibConsumeOptions.noAck = true;
362
+ }
363
+ _a.label = 3;
364
+ case 3:
365
+ _a.trys.push([3, 6, , 7]);
366
+ return [4 /*yield*/, amqplibChannel.consume(queueName, function (amqplibMessage) { return __awaiter(_this, void 0, void 0, function () {
367
+ var sendResponse, message, response;
368
+ return __generator(this, function (_a) {
369
+ switch (_a.label) {
370
+ case 0:
371
+ if (amqplibMessage === null) {
372
+ onEndedCallback(); // consumption canceled unexpectedly
373
+ amqplibChannel.removeListener('close', onEndedCallback);
374
+ return [2 /*return*/];
375
+ }
376
+ if (!(consumeOptions.deadLetterIfRedeliveredAndErred && consumeOptions.redeliverDelayMs && amqplibMessage.fields.redelivered)) return [3 /*break*/, 2];
377
+ return [4 /*yield*/, (0, wait_1.default)(consumeOptions.redeliverDelayMs)];
378
+ case 1:
379
+ _a.sent();
380
+ _a.label = 2;
381
+ case 2:
382
+ sendResponse = true;
383
+ message = this.decodeMessageBuffer(amqplibMessage.content);
384
+ return [4 /*yield*/, onMessage(message, amqplibMessage.properties.headers, function () {
385
+ if (!consumeOptions.noAck) {
386
+ amqplibChannel.ack(amqplibMessage);
387
+ }
388
+ }, function (nackOptions) {
389
+ if (!consumeOptions.noAck) {
390
+ amqplibChannel.nack(amqplibMessage, undefined, nackOptions ? nackOptions.requeue : undefined);
391
+ }
392
+ sendResponse = false;
393
+ }, amqplibMessage.fields)];
394
+ case 3:
395
+ response = _a.sent();
396
+ if (sendResponse && consumeOptions.respond && amqplibMessage.properties.replyTo) {
397
+ amqplibChannel.sendToQueue(amqplibMessage.properties.replyTo, this.encodeMessageIntoBuffer(response), {
398
+ correlationId: amqplibMessage.properties.correlationId,
399
+ });
400
+ }
401
+ return [2 /*return*/];
402
+ }
403
+ });
404
+ }); }, amqplibConsumeOptions)];
405
+ case 4:
406
+ consumerTag_1 = (_a.sent()).consumerTag;
407
+ return [4 /*yield*/, Promise.all(bindings.map(function (binding) {
408
+ return _this.bindQueue(amqplibChannel, queueName, binding.exchangeName, binding.routingKey || '', binding.routingHeaders);
409
+ }))];
410
+ case 5:
411
+ _a.sent();
412
+ amqplibChannel.once('close', onEndedCallback);
413
+ return [2 /*return*/, function () { return __awaiter(_this, void 0, void 0, function () {
414
+ var message;
415
+ var _this = this;
416
+ return __generator(this, function (_a) {
417
+ switch (_a.label) {
418
+ case 0:
419
+ amqplibChannel.removeListener('close', onEndedCallback);
420
+ return [4 /*yield*/, Promise.all(bindings.map(function (binding) { return __awaiter(_this, void 0, void 0, function () {
421
+ return __generator(this, function (_a) {
422
+ switch (_a.label) {
423
+ case 0:
424
+ if (!!binding.persistent) return [3 /*break*/, 2];
425
+ return [4 /*yield*/, this.unbindQueue(amqplibChannel, queueName, binding.exchangeName, binding.routingKey || '', binding.routingHeaders)];
426
+ case 1:
427
+ _a.sent();
428
+ _a.label = 2;
429
+ case 2: return [2 /*return*/];
430
+ }
431
+ });
432
+ }); }))];
433
+ case 1:
434
+ _a.sent();
435
+ if (!('autoDeleteDeadLetter' in consumeOptions && consumeOptions.autoDeleteDeadLetter)) return [3 /*break*/, 6];
436
+ message = void 0;
437
+ _a.label = 2;
438
+ case 2: return [4 /*yield*/, amqplibChannel.get(queueName)];
439
+ case 3:
440
+ if (!(message = _a.sent())) return [3 /*break*/, 4];
441
+ // requeue=false will dead-letter message even if whole queue is deleted later
442
+ amqplibChannel.nack(message, undefined, false);
443
+ return [3 /*break*/, 2];
444
+ case 4: return [4 /*yield*/, amqplibChannel.deleteQueue(queueName)];
445
+ case 5:
446
+ _a.sent();
447
+ _a.label = 6;
448
+ case 6:
449
+ // cancel has to be last to prevent conflicting with other consumer
450
+ return [4 /*yield*/, amqplibChannel.cancel(consumerTag_1)];
451
+ case 7:
452
+ // cancel has to be last to prevent conflicting with other consumer
453
+ _a.sent();
454
+ return [2 /*return*/];
455
+ }
456
+ });
457
+ }); }];
458
+ case 6:
459
+ error_3 = _a.sent();
460
+ throw new amqpErrors_1.ConsumptionError("Could not start consumption on queue", queueName, error_3);
461
+ case 7: return [2 /*return*/];
462
+ }
463
+ });
464
+ });
465
+ },
466
+ unbind: function (queueName, binding) { return __awaiter(_this, void 0, void 0, function () {
467
+ return __generator(this, function (_a) {
468
+ switch (_a.label) {
469
+ case 0: return [4 /*yield*/, this.unbindQueue(amqplibChannel, queueName, binding.exchangeName, binding.routingKey || '', binding.routingHeaders)];
470
+ case 1:
471
+ _a.sent();
472
+ return [2 /*return*/];
473
+ }
474
+ });
475
+ }); },
476
+ get: function (queueName) { return __awaiter(_this, void 0, void 0, function () {
477
+ var amqplibMessage, message;
478
+ return __generator(this, function (_a) {
479
+ switch (_a.label) {
480
+ case 0: return [4 /*yield*/, amqplibChannel.get(queueName)];
481
+ case 1:
482
+ amqplibMessage = (_a.sent());
483
+ if (amqplibMessage) {
484
+ message = this.decodeMessageBuffer(amqplibMessage.content);
485
+ return [2 /*return*/, {
486
+ headers: amqplibMessage.properties.headers,
487
+ message: message,
488
+ fields: amqplibMessage.fields,
489
+ ack: function () { return amqplibChannel.ack(amqplibMessage); },
490
+ nack: function (nackOptions) {
491
+ return amqplibChannel.nack(amqplibMessage, undefined, nackOptions ? nackOptions.requeue : undefined);
492
+ },
493
+ }];
494
+ }
495
+ else {
496
+ return [2 /*return*/, null];
497
+ }
498
+ return [2 /*return*/];
499
+ }
500
+ });
501
+ }); },
502
+ purge: function (queueName) { return __awaiter(_this, void 0, void 0, function () {
503
+ return __generator(this, function (_a) {
504
+ switch (_a.label) {
505
+ case 0: return [4 /*yield*/, amqplibChannel.purgeQueue(queueName)];
506
+ case 1:
507
+ _a.sent();
508
+ return [2 /*return*/];
509
+ }
510
+ });
511
+ }); },
512
+ delete: function (queueName) { return __awaiter(_this, void 0, void 0, function () {
513
+ return __generator(this, function (_a) {
514
+ switch (_a.label) {
515
+ case 0: return [4 /*yield*/, amqplibChannel.deleteQueue(queueName)];
516
+ case 1:
517
+ _a.sent();
518
+ return [2 /*return*/];
519
+ }
520
+ });
521
+ }); },
522
+ close: function () { return __awaiter(_this, void 0, void 0, function () {
523
+ return __generator(this, function (_a) {
524
+ switch (_a.label) {
525
+ case 0:
526
+ if (!options.confirmable) return [3 /*break*/, 2];
527
+ return [4 /*yield*/, this.closeAmqplibConfirmChannel(namespace)];
528
+ case 1:
529
+ _a.sent();
530
+ return [3 /*break*/, 4];
531
+ case 2: return [4 /*yield*/, this.closeAmqplibChannel(namespace)];
532
+ case 3:
533
+ _a.sent();
534
+ _a.label = 4;
535
+ case 4: return [2 /*return*/];
536
+ }
537
+ });
538
+ }); },
539
+ };
540
+ return [2 /*return*/, channel];
541
+ }
542
+ });
543
+ });
544
+ };
545
+ ChannelProvider.prototype.shouldDeadLetter = function (consumeOptions, redelivered) {
546
+ // TODO remove deadLetterIfRedeliveredAndErred option in future when no more used
547
+ if (consumeOptions.deadLetterIfRedeliveredAndErred && redelivered) {
548
+ return true;
549
+ }
550
+ if (consumeOptions.deadLetterIfErred) {
551
+ return true;
552
+ }
553
+ return false;
554
+ };
555
+ ChannelProvider.prototype.close = function () {
556
+ return __awaiter(this, void 0, void 0, function () {
557
+ var amqplibConnection;
558
+ return __generator(this, function (_a) {
559
+ switch (_a.label) {
560
+ case 0: return [4 /*yield*/, this.getAmqplibConnection()];
561
+ case 1:
562
+ amqplibConnection = _a.sent();
563
+ return [4 /*yield*/, this.amqpPool.destroy(amqplibConnection)];
564
+ case 2:
565
+ _a.sent();
566
+ return [2 /*return*/];
567
+ }
568
+ });
569
+ });
570
+ };
571
+ ChannelProvider.prototype.encodeMessageIntoBuffer = function (message) {
572
+ return Buffer.from(typeof message !== 'undefined' ? JSON.stringify(message) : '');
573
+ };
574
+ ChannelProvider.prototype.getAmqplibConnection = function () {
575
+ return __awaiter(this, void 0, void 0, function () {
576
+ var amqplibConnection;
577
+ var _this = this;
578
+ return __generator(this, function (_a) {
579
+ switch (_a.label) {
580
+ case 0:
581
+ if (!!this.amqplibConnection) return [3 /*break*/, 2];
582
+ debug('Create connection');
583
+ return [4 /*yield*/, this.amqpPool.acquire()];
584
+ case 1:
585
+ amqplibConnection = _a.sent();
586
+ debug('Created connection');
587
+ amqplibConnection.on('close', function () {
588
+ debug('Closed connection');
589
+ _this.amqplibConnection = undefined;
590
+ _this.amqplibChannelMap = {};
591
+ });
592
+ this.amqplibConnection = amqplibConnection;
593
+ _a.label = 2;
594
+ case 2: return [2 /*return*/, this.amqplibConnection];
595
+ }
596
+ });
597
+ });
598
+ };
599
+ ChannelProvider.prototype.createAmqplibSendOptions = function (options, messageOptions, headers) {
600
+ return {
601
+ persistent: typeof messageOptions.persistent !== 'undefined' ? messageOptions.persistent : options.persistent,
602
+ priority: messageOptions.priority,
603
+ expiration: messageOptions.expiration,
604
+ headers: headers,
605
+ };
606
+ };
607
+ ChannelProvider.prototype.publish = function (amqplibChannel, exchangeName, routingKey, encodedMessageBuffer, sendOptions, options) {
608
+ return __awaiter(this, void 0, void 0, function () {
609
+ var amqplibConfirmableChannel, deferred_2, bufferIsReady, bufferIsReady;
610
+ return __generator(this, function (_a) {
611
+ switch (_a.label) {
612
+ case 0:
613
+ if (!options.confirmable) return [3 /*break*/, 3];
614
+ amqplibConfirmableChannel = amqplibChannel;
615
+ deferred_2 = (0, deferred_1.createDeferred)(true);
616
+ bufferIsReady = amqplibConfirmableChannel.publish(exchangeName, routingKey, encodedMessageBuffer, sendOptions, function (error) {
617
+ if (error) {
618
+ deferred_2.reject(error);
619
+ }
620
+ else {
621
+ deferred_2.resolve();
622
+ }
623
+ });
624
+ return [4 /*yield*/, this.waitUntilBufferDrainsWhenBufferIsFull(bufferIsReady, amqplibConfirmableChannel)];
625
+ case 1:
626
+ _a.sent();
627
+ // Wait for confirmation regardless of buffer state
628
+ return [4 /*yield*/, deferred_2.promise];
629
+ case 2:
630
+ // Wait for confirmation regardless of buffer state
631
+ _a.sent();
632
+ return [3 /*break*/, 5];
633
+ case 3:
634
+ bufferIsReady = amqplibChannel.publish(exchangeName, routingKey, encodedMessageBuffer, sendOptions);
635
+ return [4 /*yield*/, this.waitUntilBufferDrainsWhenBufferIsFull(bufferIsReady, amqplibChannel)];
636
+ case 4:
637
+ _a.sent();
638
+ _a.label = 5;
639
+ case 5: return [2 /*return*/];
640
+ }
641
+ });
642
+ });
643
+ };
644
+ /**
645
+ * When publish returns false, the message has been sent but the write buffer is full.
646
+ * We need to wait for the drain event before sending more messages to avoid overwhelming the buffer.
647
+ * The current message has already been queued, so we don't retry it.
648
+ */
649
+ ChannelProvider.prototype.waitUntilBufferDrainsWhenBufferIsFull = function (bufferIsReady, amqplibChannel) {
650
+ return __awaiter(this, void 0, void 0, function () {
651
+ return __generator(this, function (_a) {
652
+ switch (_a.label) {
653
+ case 0:
654
+ if (!!bufferIsReady) return [3 /*break*/, 2];
655
+ return [4 /*yield*/, (0, eventsHelpers_1.waitForSuccessEventsOrFailEvent)(amqplibChannel, ['drain'], 'error')];
656
+ case 1:
657
+ _a.sent();
658
+ _a.label = 2;
659
+ case 2: return [2 /*return*/];
660
+ }
661
+ });
662
+ });
663
+ };
664
+ ChannelProvider.prototype.getAmqplibChannel = function (amqplibConnection, identifier) {
665
+ return __awaiter(this, void 0, void 0, function () {
666
+ var _this = this;
667
+ return __generator(this, function (_a) {
668
+ switch (_a.label) {
669
+ case 0: return [4 /*yield*/, this.getOrCreateAmqplibChannel('not_confirm-' + identifier, function () { return __awaiter(_this, void 0, void 0, function () {
670
+ return __generator(this, function (_a) {
671
+ switch (_a.label) {
672
+ case 0: return [4 /*yield*/, amqplibConnection.createChannel()];
673
+ case 1: return [2 /*return*/, _a.sent()];
674
+ }
675
+ });
676
+ }); })];
677
+ case 1: return [2 /*return*/, _a.sent()];
678
+ }
679
+ });
680
+ });
681
+ };
682
+ ChannelProvider.prototype.getAmqplibConfirmChannel = function (amqplibConnection, identifier) {
683
+ return __awaiter(this, void 0, void 0, function () {
684
+ var _this = this;
685
+ return __generator(this, function (_a) {
686
+ switch (_a.label) {
687
+ case 0: return [4 /*yield*/, this.getOrCreateAmqplibChannel('confirm-' + identifier, function () { return __awaiter(_this, void 0, void 0, function () {
688
+ return __generator(this, function (_a) {
689
+ switch (_a.label) {
690
+ case 0: return [4 /*yield*/, amqplibConnection.createConfirmChannel()];
691
+ case 1: return [2 /*return*/, _a.sent()];
692
+ }
693
+ });
694
+ }); })];
695
+ case 1: return [2 /*return*/, _a.sent()];
696
+ }
697
+ });
698
+ });
699
+ };
700
+ ChannelProvider.prototype.closeAmqplibChannel = function (identifier) {
701
+ return __awaiter(this, void 0, void 0, function () {
702
+ return __generator(this, function (_a) {
703
+ switch (_a.label) {
704
+ case 0: return [4 /*yield*/, this.releaseAmqplibChannel('not_confirm-' + identifier)];
705
+ case 1:
706
+ _a.sent();
707
+ return [2 /*return*/];
708
+ }
709
+ });
710
+ });
711
+ };
712
+ ChannelProvider.prototype.closeAmqplibConfirmChannel = function (identifier) {
713
+ return __awaiter(this, void 0, void 0, function () {
714
+ return __generator(this, function (_a) {
715
+ switch (_a.label) {
716
+ case 0: return [4 /*yield*/, this.releaseAmqplibChannel('confirm-' + identifier)];
717
+ case 1:
718
+ _a.sent();
719
+ return [2 /*return*/];
720
+ }
721
+ });
722
+ });
723
+ };
724
+ ChannelProvider.prototype.getOrCreateAmqplibChannel = function (identifier, createChannel) {
725
+ return __awaiter(this, void 0, void 0, function () {
726
+ var amqplibChannel_1;
727
+ var _this = this;
728
+ return __generator(this, function (_a) {
729
+ switch (_a.label) {
730
+ case 0:
731
+ if (!(this.amqplibChannelMap[identifier] === undefined)) return [3 /*break*/, 2];
732
+ debug('Create channel %s', identifier);
733
+ return [4 /*yield*/, createChannel()];
734
+ case 1:
735
+ amqplibChannel_1 = _a.sent();
736
+ amqplibChannel_1.setMaxListeners(100);
737
+ debug('Created channel %s', identifier);
738
+ amqplibChannel_1.once('error', function (error) {
739
+ console.error("Channel error, closing immediately ".concat(identifier), error);
740
+ // When channel has error, it's automatically closed
741
+ delete _this.amqplibChannelMap[identifier];
742
+ amqplibChannel_1.close().catch(function (closeError) { return console.warn("Could not close erred channel", closeError); });
743
+ });
744
+ this.amqplibChannelMap[identifier] = {
745
+ channel: amqplibChannel_1,
746
+ clientCount: 0,
747
+ closeAfterAWhile: _.debounce(function () { return _this.tryCloseAmqplibChannelWhenUnused(identifier); }, CHANNEL_IDLE_TIMEOUT_SECONDS * 1000),
748
+ };
749
+ _a.label = 2;
750
+ case 2:
751
+ this.amqplibChannelMap[identifier].clientCount++;
752
+ this.amqplibChannelMap[identifier].closeAfterAWhile.cancel();
753
+ return [2 /*return*/, this.amqplibChannelMap[identifier].channel];
754
+ }
755
+ });
756
+ });
757
+ };
758
+ ChannelProvider.prototype.releaseAmqplibChannel = function (identifier) {
759
+ return __awaiter(this, void 0, void 0, function () {
760
+ return __generator(this, function (_a) {
761
+ if (typeof this.amqplibChannelMap[identifier] !== 'undefined') {
762
+ this.amqplibChannelMap[identifier].clientCount--;
763
+ this.amqplibChannelMap[identifier].closeAfterAWhile();
764
+ }
765
+ else {
766
+ console.log('Unexpected close channel to non-existent channel ' + identifier);
767
+ }
768
+ return [2 /*return*/];
769
+ });
770
+ });
771
+ };
772
+ ChannelProvider.prototype.tryCloseAmqplibChannelWhenUnused = function (identifier) {
773
+ if (typeof this.amqplibChannelMap[identifier] !== 'undefined') {
774
+ if (this.amqplibChannelMap[identifier].clientCount <= 0) {
775
+ var channel = this.amqplibChannelMap[identifier].channel;
776
+ delete this.amqplibChannelMap[identifier];
777
+ channel.close().catch(function (error) { return console.warn("Could not closed idle channel", error); });
778
+ }
779
+ }
780
+ if (this.responseProviderMap[identifier]) {
781
+ var responseProvider = this.responseProviderMap[identifier];
782
+ delete this.responseProviderMap[identifier];
783
+ responseProvider.close().catch(function (error) { return console.warn("Could not close idle responseProvider", error); });
784
+ }
785
+ };
786
+ ChannelProvider.prototype.getResponseProvider = function (amqplibConnection, identifier) {
787
+ if (!this.responseProviderMap[identifier]) {
788
+ var responseProvider = new ResponseProvider_1.ResponseProvider(amqplibConnection, this.decodeMessageBuffer);
789
+ this.responseProviderMap[identifier] = responseProvider;
790
+ }
791
+ return this.responseProviderMap[identifier];
792
+ };
793
+ ChannelProvider.prototype.assertRejectableQueue = function (amqplibChannel, queueName, queueOptions, consumeOptions) {
794
+ return __awaiter(this, void 0, void 0, function () {
795
+ var extraArguments;
796
+ return __generator(this, function (_a) {
797
+ switch (_a.label) {
798
+ case 0:
799
+ extraArguments = {};
800
+ if (consumeOptions.queueExpiresMs) {
801
+ // x-expires is only feature of RabbitMQ, not standard amqp
802
+ extraArguments['x-expires'] = consumeOptions.queueExpiresMs;
803
+ }
804
+ if (consumeOptions.messageExpiresMs) {
805
+ // x-message-ttl is only feature of RabbitMQ, not standard amqp
806
+ extraArguments['x-message-ttl'] = consumeOptions.messageExpiresMs;
807
+ }
808
+ if (consumeOptions.singleActiveConsumer) {
809
+ // x-single-active-consumer is only feature of RabbitMQ, not standard amqp
810
+ extraArguments['x-single-active-consumer'] = consumeOptions.singleActiveConsumer;
811
+ }
812
+ if (consumeOptions.queueType === 'quorum') {
813
+ // default is classic
814
+ extraArguments['x-queue-type'] = 'quorum';
815
+ extraArguments['x-quorum-initial-group-size'] = exports.DEFAULT_QUORUM_INITIAL_GROUP_SIZE;
816
+ }
817
+ if (consumeOptions.overflow) {
818
+ // x-overflow is only feature of RabbitMQ, not standard amqp
819
+ extraArguments['x-overflow'] = consumeOptions.overflow;
820
+ }
821
+ return [4 /*yield*/, amqplibChannel.assertQueue(queueName, {
822
+ deadLetterExchange: typeof consumeOptions.deadLetterExchange !== 'undefined' ? consumeOptions.deadLetterExchange : '',
823
+ deadLetterRoutingKey: typeof consumeOptions.deadLetterRoutingKey !== 'undefined'
824
+ ? consumeOptions.deadLetterRoutingKey
825
+ : exports.REJECTED_QUEUE_PREFIX + queueName,
826
+ maxPriority: queueOptions.maxPriority,
827
+ autoDelete: typeof consumeOptions.autoDelete !== 'undefined' ? consumeOptions.autoDelete : false,
828
+ exclusive: typeof consumeOptions.exclusive !== 'undefined' ? consumeOptions.exclusive : false,
829
+ durable: typeof consumeOptions.durable !== 'undefined' ? consumeOptions.durable : true,
830
+ arguments: extraArguments,
831
+ maxLength: typeof consumeOptions.maxLength !== 'undefined' ? consumeOptions.maxLength : undefined,
832
+ })];
833
+ case 1: return [2 /*return*/, _a.sent()];
834
+ }
835
+ });
836
+ });
837
+ };
838
+ ChannelProvider.prototype.bindQueue = function (amqplibChannel, queueName, exchangeName, routingKey, routingHeaders) {
839
+ return __awaiter(this, void 0, void 0, function () {
840
+ return __generator(this, function (_a) {
841
+ switch (_a.label) {
842
+ case 0:
843
+ if (!(exchangeName !== '')) return [3 /*break*/, 2];
844
+ return [4 /*yield*/, amqplibChannel.bindQueue(queueName, exchangeName, routingKey, routingHeaders)];
845
+ case 1:
846
+ _a.sent();
847
+ _a.label = 2;
848
+ case 2: return [2 /*return*/];
849
+ }
850
+ });
851
+ });
852
+ };
853
+ ChannelProvider.prototype.unbindQueue = function (amqplibChannel, queueName, exchangeName, routingKey, routingHeaders) {
854
+ return __awaiter(this, void 0, void 0, function () {
855
+ return __generator(this, function (_a) {
856
+ switch (_a.label) {
857
+ case 0:
858
+ if (!(exchangeName !== '')) return [3 /*break*/, 2];
859
+ return [4 /*yield*/, amqplibChannel.unbindQueue(queueName, exchangeName, routingKey, routingHeaders)];
860
+ case 1:
861
+ _a.sent();
862
+ _a.label = 2;
863
+ case 2: return [2 /*return*/];
864
+ }
865
+ });
866
+ });
867
+ };
868
+ __decorate([
869
+ (0, lockedDecorator_1.locked)("AMQP.ChannelProvider.getAmqplibConnection", { scope: 'instance', maxPending: MAX_PENDING_TASKS }),
870
+ __metadata("design:type", Function),
871
+ __metadata("design:paramtypes", []),
872
+ __metadata("design:returntype", Promise)
873
+ ], ChannelProvider.prototype, "getAmqplibConnection", null);
874
+ __decorate([
875
+ (0, lockedDecorator_1.locked)(function (identifier) { return "AMQP.ChannelProvider.getOrCreateAmqplibChannel.".concat(identifier); }, {
876
+ scope: 'instance',
877
+ maxPending: MAX_PENDING_TASKS,
878
+ }),
879
+ __metadata("design:type", Function),
880
+ __metadata("design:paramtypes", [String, Function]),
881
+ __metadata("design:returntype", Promise)
882
+ ], ChannelProvider.prototype, "getOrCreateAmqplibChannel", null);
883
+ return ChannelProvider;
884
+ }());
885
+ exports.default = ChannelProvider;
886
+ //# sourceMappingURL=ChannelProvider.js.map