@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,92 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.collectSocketMetrics = exports.metricNames = void 0;
15
+ var http_1 = require("http");
16
+ var prom_client_1 = require("prom-client");
17
+ var NODEJS_ACTIVE_SOCKETS = 'nodejs_active_sockets';
18
+ var defaultConfig = {
19
+ prefix: 'sos_',
20
+ registry: undefined,
21
+ process: process,
22
+ };
23
+ exports.metricNames = [NODEJS_ACTIVE_SOCKETS];
24
+ var collectSocketMetrics = function (cfg) {
25
+ if (cfg === void 0) { cfg = {}; }
26
+ var config = __assign(__assign({}, defaultConfig), cfg);
27
+ if (typeof config.process._getActiveHandles !== 'function') {
28
+ return;
29
+ }
30
+ var processExt = process;
31
+ var registers = config.registry ? [config.registry] : undefined;
32
+ var namePrefix = config.prefix ? config.prefix : '';
33
+ var localServerPorts = new Set();
34
+ var socketMapper = function (socket) {
35
+ var _a;
36
+ return socket.localPort
37
+ ? localServerPorts.has((_a = socket.localPort) !== null && _a !== void 0 ? _a : 0)
38
+ ? "local:".concat(socket === null || socket === void 0 ? void 0 : socket.localPort)
39
+ : (socket === null || socket === void 0 ? void 0 : socket.remotePort)
40
+ ? "remote:".concat(socket === null || socket === void 0 ? void 0 : socket.remotePort)
41
+ : null
42
+ : null;
43
+ };
44
+ var mappers = {
45
+ TCP: socketMapper,
46
+ TLSSocket: socketMapper,
47
+ Socket: socketMapper,
48
+ Server: function (server) {
49
+ if (server instanceof http_1.Server) {
50
+ var address = server.address();
51
+ if (address && typeof address === 'object') {
52
+ localServerPorts.add(address.port);
53
+ }
54
+ }
55
+ // Server will be not accounted in resulted metrics
56
+ return null;
57
+ },
58
+ };
59
+ function collect() {
60
+ // prepare
61
+ this.reset();
62
+ localServerPorts.clear();
63
+ // fetch handles
64
+ var activeHandles = processExt._getActiveHandles();
65
+ var sockets = activeHandles.reduce(function (acc, handle) {
66
+ var _a, _b, _c, _d;
67
+ var name = (_b = (_a = handle === null || handle === void 0 ? void 0 : handle.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'unknown';
68
+ var label = (_c = mappers[name]) === null || _c === void 0 ? void 0 : _c.call(mappers, handle);
69
+ // output only socket-like handles, for the rest class name based accumulator present
70
+ // in default prom metrics will suffice
71
+ // we want this extra information (IPs) from socket handles, so we could easyly identify
72
+ // which kind of connection is hanging
73
+ if (label) {
74
+ var key = "".concat(name, ":").concat(label);
75
+ acc[key] = ((_d = acc[key]) !== null && _d !== void 0 ? _d : 0) + 1;
76
+ }
77
+ return acc;
78
+ }, {});
79
+ for (var key in sockets) {
80
+ this.labels({ socket: key }).set(sockets[key]);
81
+ }
82
+ }
83
+ new prom_client_1.Gauge({
84
+ name: namePrefix + NODEJS_ACTIVE_SOCKETS,
85
+ help: 'curent counts of sockets by local/remote ports',
86
+ labelNames: ['socket'],
87
+ registers: registers,
88
+ collect: collect,
89
+ });
90
+ };
91
+ exports.collectSocketMetrics = collectSocketMetrics;
92
+ //# sourceMappingURL=processSocketsMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processSocketsMetrics.js","sourceRoot":"","sources":["../../src/Metrics/processSocketsMetrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import * as redis from 'redis';
2
+ export interface IRedisDBDriverExporter extends RedisDBDriverExporter {
3
+ }
4
+ export declare class RedisDBDriverExporter {
5
+ /**
6
+ * Start monitoring the given redis client instance
7
+ *
8
+ * @param redisClient mongo client instance
9
+ * @param name unique name for the client that will be used as a label to differentiate between multiple clients
10
+ */
11
+ monitorRedisClient(redisClient: redis.RedisClient, name: string): void;
12
+ private onError;
13
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisDBDriverExporter = void 0;
4
+ var metrics_1 = require("./metrics");
5
+ var prefix = 'sos_';
6
+ var redisMetricsConfig = {
7
+ redis_driver_errors: {
8
+ metric: 'Counter',
9
+ help: 'Counter of redis errors',
10
+ method: 'inc',
11
+ labels: {
12
+ name: 'NOT_PREDEFINED_VALUE',
13
+ error_type: 'NOT_PREDEFINED_VALUE',
14
+ },
15
+ },
16
+ redis_driver_connection_ready: {
17
+ metric: 'Counter',
18
+ help: 'Counter of redis successful connections',
19
+ method: 'inc',
20
+ labels: {
21
+ name: 'NOT_PREDEFINED_VALUE',
22
+ },
23
+ },
24
+ redis_driver_connection_end: {
25
+ metric: 'Counter',
26
+ help: 'Counter of redis ended connections',
27
+ method: 'inc',
28
+ labels: {
29
+ name: 'NOT_PREDEFINED_VALUE',
30
+ },
31
+ },
32
+ };
33
+ var metrics = new metrics_1.Metrics({
34
+ metricsConfig: redisMetricsConfig,
35
+ prefix: prefix,
36
+ });
37
+ var RedisDBDriverExporter = /** @class */ (function () {
38
+ function RedisDBDriverExporter() {
39
+ }
40
+ /**
41
+ * Start monitoring the given redis client instance
42
+ *
43
+ * @param redisClient mongo client instance
44
+ * @param name unique name for the client that will be used as a label to differentiate between multiple clients
45
+ */
46
+ RedisDBDriverExporter.prototype.monitorRedisClient = function (redisClient, name) {
47
+ var _this = this;
48
+ var labels = { name: name };
49
+ redisClient.on('error', function (event) { return _this.onError(labels, event); });
50
+ redisClient.on('end', function () { return metrics.emit('redis_driver_connection_end', labels, 1, 'inc'); });
51
+ redisClient.on('ready', function () { return metrics.emit('redis_driver_connection_ready', labels, 1, 'inc'); });
52
+ };
53
+ RedisDBDriverExporter.prototype.onError = function (labels, event) {
54
+ labels.error_type = event.code ? event.code : 'UNKNOWN_ERROR';
55
+ metrics.emit('redis_driver_errors', labels, 1, 'inc');
56
+ };
57
+ return RedisDBDriverExporter;
58
+ }());
59
+ exports.RedisDBDriverExporter = RedisDBDriverExporter;
60
+ //# sourceMappingURL=redisMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisMetrics.js","sourceRoot":"","sources":["../../src/Metrics/redisMetrics.ts"],"names":[],"mappings":";;;AAEA,qCAAoD;AAUpD,IAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,IAAM,kBAAkB,GAAgD;IACvE,mBAAmB,EAAE;QACpB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACP,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,sBAAsB;SAClC;KACD;IACD,6BAA6B,EAAE;QAC9B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,yCAAyC;QAC/C,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACP,IAAI,EAAE,sBAAsB;SAC5B;KACD;IACD,2BAA2B,EAAE;QAC5B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,oCAAoC;QAC1C,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACP,IAAI,EAAE,sBAAsB;SAC5B;KACD;CACD,CAAC;AAEF,IAAI,OAAO,GAAG,IAAI,iBAAO,CAA8B;IACtD,aAAa,EAAE,kBAAkB;IACjC,MAAM,QAAA;CACN,CAAC,CAAC;AAEH;IAAA;IAkBA,CAAC;IAjBA;;;;;OAKG;IACI,kDAAkB,GAAzB,UAA0B,WAA8B,EAAE,IAAY;QAAtE,iBAKC;QAJA,IAAM,MAAM,GAAG,EAAE,IAAI,MAAA,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC;QAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAA7D,CAA6D,CAAC,CAAC;QAC3F,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAA/D,CAA+D,CAAC,CAAC;IAChG,CAAC;IAEO,uCAAO,GAAf,UAAgB,MAA8B,EAAE,KAAU;QACzD,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACF,4BAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,sDAAqB"}
@@ -0,0 +1,19 @@
1
+ import mongoose from 'mongoose';
2
+ import { IMongoDBDriverExporter } from '../Metrics/mongoDBMetrics';
3
+ import { IMongodbConnection } from './mongoDBConnectionFactory';
4
+ export declare class MongoDBConnection implements IMongodbConnection {
5
+ private mongoDbDsn;
6
+ connection: mongoose.Connection | null;
7
+ private options;
8
+ private metrics;
9
+ constructor(mongoDbDsn: string, options?: mongoose.ConnectOptions);
10
+ connect(): Promise<void>;
11
+ close(): Promise<void>;
12
+ monitor(connectionName: string, exporter: IMongoDBDriverExporter): void;
13
+ /**
14
+ * @see https://www.mongodb.com/docs/drivers/node/current/fundamentals/monitoring/command-monitoring/#command-monitoring
15
+ */
16
+ private monitorConnection;
17
+ private logConnectionEvent;
18
+ private logMongoClient;
19
+ }
@@ -0,0 +1,185 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.MongoDBConnection = void 0;
54
+ var mongoose_1 = __importDefault(require("mongoose"));
55
+ var debug_1 = __importDefault(require("debug"));
56
+ var proprietaryCluster_1 = require("./proprietaryCluster");
57
+ var logging_1 = require("../Logging/logging");
58
+ mongoose_1.default.Promise = Promise;
59
+ var debug = (0, debug_1.default)('@signageos/lib:MongoDB:mongoDBConnectionFactory');
60
+ var logger = logging_1.logger.createNamespace('MongoDBConnection');
61
+ var defaultOptions = {
62
+ autoIndex: false,
63
+ connectTimeoutMS: 10 * 60 * 1e3, // 10m
64
+ socketTimeoutMS: 3 * 60 * 60 * 1e3, // 3h
65
+ monitorCommands: true,
66
+ };
67
+ var MongoDBConnection = /** @class */ (function () {
68
+ function MongoDBConnection(mongoDbDsn, options) {
69
+ if (options === void 0) { options = {}; }
70
+ this.mongoDbDsn = mongoDbDsn;
71
+ this.connection = null;
72
+ this.metrics = null;
73
+ this.options = __assign(__assign({}, defaultOptions), options);
74
+ }
75
+ MongoDBConnection.prototype.connect = function () {
76
+ return __awaiter(this, void 0, void 0, function () {
77
+ var updatedMongDbDsn, connection;
78
+ return __generator(this, function (_a) {
79
+ switch (_a.label) {
80
+ case 0:
81
+ debug('connect');
82
+ return [4 /*yield*/, (0, proprietaryCluster_1.updateDsnIfProprietaryCluster)(this.mongoDbDsn)];
83
+ case 1:
84
+ updatedMongDbDsn = _a.sent();
85
+ connection = mongoose_1.default.createConnection(updatedMongDbDsn, this.options);
86
+ this.logMongoClient(connection.getClient());
87
+ if (this.metrics) {
88
+ this.monitorConnection(connection, this.metrics.exporter, this.metrics.connectionName);
89
+ }
90
+ return [4 /*yield*/, connection.asPromise()];
91
+ case 2:
92
+ _a.sent();
93
+ debug('connected');
94
+ this.connection = connection;
95
+ return [2 /*return*/];
96
+ }
97
+ });
98
+ });
99
+ };
100
+ MongoDBConnection.prototype.close = function () {
101
+ return __awaiter(this, void 0, void 0, function () {
102
+ return __generator(this, function (_a) {
103
+ switch (_a.label) {
104
+ case 0:
105
+ if (!this.connection) return [3 /*break*/, 2];
106
+ return [4 /*yield*/, this.connection.close()];
107
+ case 1:
108
+ _a.sent();
109
+ _a.label = 2;
110
+ case 2: return [2 /*return*/];
111
+ }
112
+ });
113
+ });
114
+ };
115
+ MongoDBConnection.prototype.monitor = function (connectionName, exporter) {
116
+ if (this.connection) {
117
+ debug("monitor connection ".concat(connectionName, " now"));
118
+ this.monitorConnection(this.connection, exporter, connectionName);
119
+ }
120
+ else {
121
+ debug("monitor connection ".concat(connectionName, ", once it connects"));
122
+ // if connection is not yet established, store the exporter and name for later use
123
+ this.metrics = {
124
+ exporter: exporter,
125
+ connectionName: connectionName,
126
+ };
127
+ }
128
+ };
129
+ /**
130
+ * @see https://www.mongodb.com/docs/drivers/node/current/fundamentals/monitoring/command-monitoring/#command-monitoring
131
+ */
132
+ MongoDBConnection.prototype.monitorConnection = function (connection, exporter, connectionName) {
133
+ debug("monitor connection ".concat(connectionName));
134
+ connection.on('connected', function () { return logger.info('connected', { connectionName: connectionName }); });
135
+ connection.on('disconnected', function () { return logger.error('disconnected', { connectionName: connectionName }); });
136
+ connection.on('error', function (error) { return logger.error('error', { connectionName: connectionName, error: error }); });
137
+ connection.on('close', function () { return logger.error('closed', { connectionName: connectionName }); });
138
+ var mongoClient = connection.getClient();
139
+ exporter.monitorMongoClient(mongoClient, connectionName);
140
+ var eventNames = ['commandStarted', 'commandSucceeded', 'commandFailed'];
141
+ var _loop_1 = function (eventName) {
142
+ mongoClient.addListener(eventName, function (event) {
143
+ debug(eventName,
144
+ // https://github.com/GoogleChromeLabs/jsbi/issues/30
145
+ JSON.stringify(event, function (_key, value) { return (typeof value === 'bigint' ? value.toString() : value); }));
146
+ });
147
+ };
148
+ for (var _i = 0, eventNames_1 = eventNames; _i < eventNames_1.length; _i++) {
149
+ var eventName = eventNames_1[_i];
150
+ _loop_1(eventName);
151
+ }
152
+ };
153
+ MongoDBConnection.prototype.logConnectionEvent = function (event, level) {
154
+ var _a;
155
+ if (level === void 0) { level = 'debug'; }
156
+ // name is not defined in interface, but it is there in most cases
157
+ var logMessage = "MongoDB event".concat(event.name ? ": '".concat(event.name, "'") : '');
158
+ var connectionName = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.connectionName;
159
+ if (level === 'debug') {
160
+ debug(logMessage, { event: event, connectionName: connectionName });
161
+ return;
162
+ }
163
+ logger[level](logMessage, { event: event, connectionName: connectionName });
164
+ };
165
+ MongoDBConnection.prototype.logMongoClient = function (mongoClient) {
166
+ var _this = this;
167
+ mongoClient.on('connectionPoolCreated', function (event) { return _this.logConnectionEvent(event); });
168
+ mongoClient.on('connectionPoolClosed', function (event) { return _this.logConnectionEvent(event, 'error'); });
169
+ mongoClient.on('connectionCreated', function (event) { return _this.logConnectionEvent(event); });
170
+ mongoClient.on('connectionClosed', function (event) { return _this.logConnectionEvent(event, 'error'); });
171
+ mongoClient.on('connectionCheckOutStarted', function (event) { return _this.logConnectionEvent(event); });
172
+ mongoClient.on('connectionCheckedOut', function (event) { return _this.logConnectionEvent(event); });
173
+ mongoClient.on('connectionCheckOutFailed', function (event) { return _this.logConnectionEvent(event, 'error'); });
174
+ mongoClient.on('connectionCheckedIn', function (event) { return _this.logConnectionEvent(event); });
175
+ mongoClient.on('commandSucceeded', function (event) { return _this.logConnectionEvent(event); });
176
+ mongoClient.on('commandFailed', function (event) { return _this.logConnectionEvent(event, 'debug'); });
177
+ mongoClient.on('serverClosed', function (event) { return _this.logConnectionEvent(event, 'error'); });
178
+ mongoClient.on('serverOpening', function (event) { return _this.logConnectionEvent(event); });
179
+ mongoClient.on('serverHeartbeatFailed', function (event) { return _this.logConnectionEvent(event, 'error'); });
180
+ mongoClient.on('topologyDescriptionChanged', function (event) { return _this.logConnectionEvent(event, 'error'); });
181
+ };
182
+ return MongoDBConnection;
183
+ }());
184
+ exports.MongoDBConnection = MongoDBConnection;
185
+ //# sourceMappingURL=MongoDBConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoDBConnection.js","sourceRoot":"","sources":["../../src/MongoDB/MongoDBConnection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { IConnectionStringParameters } from 'connection-string-parser';
2
+ export declare function dynamicPriority(parsedDsn: IConnectionStringParameters, originalDsn: string): Promise<string>;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.dynamicPriority = dynamicPriority;
40
+ var helper_1 = require("../helper");
41
+ var timeout_1 = require("../../../Timer/timeout");
42
+ var GET_PRIORITY_TIMEOUT = 5e3;
43
+ var EXTRA_OPTIONS = ['proprietaryPriorityPath'];
44
+ function dynamicPriority(parsedDsn, originalDsn) {
45
+ return __awaiter(this, void 0, void 0, function () {
46
+ var items, _i, _a, host, priority, error_1, priorityItem, selectedDsn;
47
+ return __generator(this, function (_b) {
48
+ switch (_b.label) {
49
+ case 0:
50
+ items = [];
51
+ _i = 0, _a = parsedDsn.hosts;
52
+ _b.label = 1;
53
+ case 1:
54
+ if (!(_i < _a.length)) return [3 /*break*/, 6];
55
+ host = _a[_i];
56
+ _b.label = 2;
57
+ case 2:
58
+ _b.trys.push([2, 4, , 5]);
59
+ return [4 /*yield*/, (0, timeout_1.withTimeout)(getPriority(host, parsedDsn), GET_PRIORITY_TIMEOUT)];
60
+ case 3:
61
+ priority = _b.sent();
62
+ items.push({ host: host, priority: priority });
63
+ return [3 /*break*/, 5];
64
+ case 4:
65
+ error_1 = _b.sent();
66
+ console.error('Not available host', host, error_1);
67
+ return [3 /*break*/, 5];
68
+ case 5:
69
+ _i++;
70
+ return [3 /*break*/, 1];
71
+ case 6:
72
+ priorityItem = items.reduce(function (acc, item) { return (!acc || item.priority > acc.priority ? item : acc); }, null);
73
+ if (!priorityItem) {
74
+ throw new Error("No available connection string (DSN) found: ".concat(originalDsn));
75
+ }
76
+ selectedDsn = (0, helper_1.getDsn)(priorityItem.host, parsedDsn, EXTRA_OPTIONS);
77
+ return [2 /*return*/, selectedDsn];
78
+ }
79
+ });
80
+ });
81
+ }
82
+ function getPriority(host, parameters) {
83
+ return __awaiter(this, void 0, void 0, function () {
84
+ var simplifiedParameters;
85
+ var _this = this;
86
+ return __generator(this, function (_a) {
87
+ simplifiedParameters = (0, helper_1.withoutOptions)(parameters, EXTRA_OPTIONS);
88
+ return [2 /*return*/, (0, helper_1.doConnectionCallback)(host, simplifiedParameters, function (connection) { return __awaiter(_this, void 0, void 0, function () {
89
+ var proprietaryPriorityPath, _a, collectionName, key, settings;
90
+ var _b, _c, _d;
91
+ return __generator(this, function (_e) {
92
+ switch (_e.label) {
93
+ case 0:
94
+ proprietaryPriorityPath = (_c = (_b = parameters.options) === null || _b === void 0 ? void 0 : _b.proprietaryPriorityPath) !== null && _c !== void 0 ? _c : 'proprietaryClusterSettings.priority';
95
+ _a = proprietaryPriorityPath.split('.'), collectionName = _a[0], key = _a[1];
96
+ return [4 /*yield*/, connection.db(parameters.endpoint).collection(collectionName).findOne({})];
97
+ case 1:
98
+ settings = _e.sent();
99
+ return [2 /*return*/, (_d = settings === null || settings === void 0 ? void 0 : settings[key]) !== null && _d !== void 0 ? _d : 0];
100
+ }
101
+ });
102
+ }); })];
103
+ });
104
+ });
105
+ }
106
+ //# sourceMappingURL=dynamicPriority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicPriority.js","sourceRoot":"","sources":["../../../../src/MongoDB/ProprietaryCluster/SelectionStrategy/dynamicPriority.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,0CAuBC;AA7BD,oCAAyE;AACzE,kDAAqD;AAErD,IAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,IAAM,aAAa,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAElD,SAAsB,eAAe,CAAC,SAAsC,EAAE,WAAmB;;;;;;oBAM1F,KAAK,GAAW,EAAE,CAAC;0BACS,EAAf,KAAA,SAAS,CAAC,KAAK;;;yBAAf,CAAA,cAAe,CAAA;oBAAvB,IAAI;;;;oBAEI,qBAAM,IAAA,qBAAW,EAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,oBAAoB,CAAC,EAAA;;oBAAhF,QAAQ,GAAG,SAAqE;oBACtF,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;;;;oBAE/B,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAK,CAAC,CAAC;;;oBALhC,IAAe,CAAA;;;oBAS5B,YAAY,GAAG,KAAK,CAAC,MAAM,CAAc,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAnD,CAAmD,EAAE,IAAI,CAAC,CAAC;oBACzH,IAAI,CAAC,YAAY,EAAE,CAAC;wBACnB,MAAM,IAAI,KAAK,CAAC,sDAA+C,WAAW,CAAE,CAAC,CAAC;oBAC/E,CAAC;oBAEK,WAAW,GAAG,IAAA,eAAM,EAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;oBACxE,sBAAO,WAAW,EAAC;;;;CACnB;AAED,SAAe,WAAW,CAAC,IAA2B,EAAE,UAAuC;;;;;YACxF,oBAAoB,GAAG,IAAA,uBAAc,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACvE,sBAAO,IAAA,6BAAoB,EAAC,IAAI,EAAE,oBAAoB,EAAE,UAAO,UAAU;;;;;;gCAClE,uBAAuB,GAAW,MAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,uBAAuB,mCAAI,qCAAqC,CAAC;gCACvH,KAAwB,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAzD,cAAc,QAAA,EAAE,GAAG,QAAA,CAAuC;gCAChD,qBAAM,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;gCAA1F,QAAQ,GAAG,SAA+E;gCAChG,sBAAO,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,mCAAI,CAAC,EAAC;;;qBAC5B,CAAC,EAAC;;;CACH"}
@@ -0,0 +1,2 @@
1
+ import { IConnectionStringParameters } from 'connection-string-parser';
2
+ export declare function lowReadLatency(parsedDsn: IConnectionStringParameters, _originalDsn: string): Promise<string>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.lowReadLatency = lowReadLatency;
40
+ var helper_1 = require("../helper");
41
+ var timeout_1 = require("../../../Timer/timeout");
42
+ var READ_LATENCY_TIMEOUT = 5e3;
43
+ function lowReadLatency(parsedDsn, _originalDsn) {
44
+ return __awaiter(this, void 0, void 0, function () {
45
+ var nodeLatencies, succeededLatencies, minLatency, selectedDsn;
46
+ var _this = this;
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0: return [4 /*yield*/, Promise.allSettled(parsedDsn.hosts.map(function (host) { return __awaiter(_this, void 0, void 0, function () {
50
+ var _a;
51
+ return __generator(this, function (_b) {
52
+ switch (_b.label) {
53
+ case 0:
54
+ _a = {
55
+ host: host
56
+ };
57
+ return [4 /*yield*/, (0, timeout_1.withTimeout)(getNodeReadsLatency(host, parsedDsn), READ_LATENCY_TIMEOUT)];
58
+ case 1: return [2 /*return*/, (_a.latency = _b.sent(),
59
+ _a)];
60
+ }
61
+ });
62
+ }); }))];
63
+ case 1:
64
+ nodeLatencies = _a.sent();
65
+ succeededLatencies = nodeLatencies
66
+ .filter(function (latency) { return latency.status === 'fulfilled'; })
67
+ .map(function (latency) { return latency.value; });
68
+ succeededLatencies.sort(function (a, b) { return a.latency - b.latency; }); // mutable sort
69
+ minLatency = succeededLatencies[0];
70
+ selectedDsn = (0, helper_1.getDsn)(minLatency.host, parsedDsn);
71
+ return [2 /*return*/, selectedDsn];
72
+ }
73
+ });
74
+ });
75
+ }
76
+ function getNodeReadsLatency(host, parameters) {
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ var _this = this;
79
+ return __generator(this, function (_a) {
80
+ return [2 /*return*/, (0, helper_1.doConnectionCallback)(host, parameters, function (connection) { return __awaiter(_this, void 0, void 0, function () {
81
+ var status;
82
+ return __generator(this, function (_a) {
83
+ switch (_a.label) {
84
+ case 0: return [4 /*yield*/, connection.db(parameters.endpoint).admin().serverStatus()];
85
+ case 1:
86
+ status = _a.sent();
87
+ return [2 /*return*/, status.opLatencies.reads.latency];
88
+ }
89
+ });
90
+ }); })];
91
+ });
92
+ });
93
+ }
94
+ //# sourceMappingURL=lowReadLatency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lowReadLatency.js","sourceRoot":"","sources":["../../../../src/MongoDB/ProprietaryCluster/SelectionStrategy/lowReadLatency.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wCAgBC;AArBD,oCAAyD;AACzD,kDAAqD;AAErD,IAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,SAAsB,cAAc,CAAC,SAAsC,EAAE,YAAoB;;;;;;wBAC1E,qBAAM,OAAO,CAAC,UAAU,CAC7C,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,UAAO,IAA2B;;;;;;wCACrD,IAAI,MAAA;;oCACK,qBAAM,IAAA,qBAAW,EAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,oBAAoB,CAAC,EAAA;wCAF5B,sBAAA,CAE1D,UAAO,GAAE,SAA6E;2CACrF,EAAA;;;yBAAA,CAAC,CACH,EAAA;;oBALK,aAAa,GAAG,SAKrB;oBACK,kBAAkB,GAAG,aAAa;yBACtC,MAAM,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,MAAM,KAAK,WAAW,EAA9B,CAA8B,CAAC;yBACnD,GAAG,CAAC,UAAC,OAAO,IAAK,OAAC,OAAmD,CAAC,KAAK,EAA1D,CAA0D,CAAC,CAAC;oBAE/E,kBAAkB,CAAC,IAAI,CAAC,UAAC,CAAkB,EAAE,CAAkB,IAAK,OAAA,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAArB,CAAqB,CAAC,CAAC,CAAC,eAAe;oBAErG,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;oBACnC,WAAW,GAAG,IAAA,eAAM,EAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBACvD,sBAAO,WAAW,EAAC;;;;CACnB;AAOD,SAAe,mBAAmB,CAAC,IAA2B,EAAE,UAAuC;;;;YACtG,sBAAO,IAAA,6BAAoB,EAAC,IAAI,EAAE,UAAU,EAAE,UAAO,UAAU;;;;oCAC/C,qBAAM,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,EAAA;;gCAAxE,MAAM,GAAG,SAA+D;gCAC9E,sBAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAiB,EAAC;;;qBAClD,CAAC,EAAC;;;CACH"}
@@ -0,0 +1,2 @@
1
+ import { IConnectionStringParameters } from 'connection-string-parser';
2
+ export declare function ordinary(parsedDsn: IConnectionStringParameters, originalDsn: string): Promise<string>;