@trigger.dev/core 4.5.13 → 4.5.15

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 (288) hide show
  1. package/dist/commonjs/v3/apiClient/index.d.ts +26 -6
  2. package/dist/commonjs/v3/apiClient/index.js +56 -8
  3. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  4. package/dist/commonjs/v3/apiClient/refreshAccessToken.d.ts +9 -0
  5. package/dist/commonjs/v3/apiClient/refreshAccessToken.js +22 -0
  6. package/dist/commonjs/v3/apiClient/refreshAccessToken.js.map +1 -0
  7. package/dist/commonjs/v3/apiClient/runStream.d.ts +37 -0
  8. package/dist/commonjs/v3/apiClient/runStream.js +58 -8
  9. package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
  10. package/dist/commonjs/v3/apiClientManager/index.js +3 -2
  11. package/dist/commonjs/v3/apiClientManager/index.js.map +1 -1
  12. package/dist/commonjs/v3/apiClientManager/types.d.ts +6 -0
  13. package/dist/commonjs/v3/index.d.ts +1 -0
  14. package/dist/commonjs/v3/index.js +1 -0
  15. package/dist/commonjs/v3/index.js.map +1 -1
  16. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.d.ts +2 -2
  17. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js +6 -6
  18. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -1
  19. package/dist/commonjs/v3/realtimeStreams/types.d.ts +10 -0
  20. package/dist/commonjs/v3/schemas/api.js +1 -1
  21. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  22. package/dist/commonjs/v3/session-streams-api.d.ts +1 -0
  23. package/dist/commonjs/v3/session-streams-api.js +1 -0
  24. package/dist/commonjs/v3/session-streams-api.js.map +1 -1
  25. package/dist/commonjs/v3/sessionStreams/channels.d.ts +25 -0
  26. package/dist/commonjs/v3/sessionStreams/channels.js +3 -0
  27. package/dist/commonjs/v3/sessionStreams/channels.js.map +1 -0
  28. package/dist/commonjs/v3/sessionStreams/index.d.ts +16 -16
  29. package/dist/commonjs/v3/sessionStreams/index.js +32 -32
  30. package/dist/commonjs/v3/sessionStreams/index.js.map +1 -1
  31. package/dist/commonjs/v3/sessionStreams/manager.d.ts +16 -16
  32. package/dist/commonjs/v3/sessionStreams/manager.js +48 -47
  33. package/dist/commonjs/v3/sessionStreams/manager.js.map +1 -1
  34. package/dist/commonjs/v3/sessionStreams/types.d.ts +16 -16
  35. package/dist/commonjs/version.js +1 -1
  36. package/dist/esm/v3/apiClient/index.d.ts +26 -6
  37. package/dist/esm/v3/apiClient/index.js +56 -9
  38. package/dist/esm/v3/apiClient/index.js.map +1 -1
  39. package/dist/esm/v3/apiClient/refreshAccessToken.d.ts +9 -0
  40. package/dist/esm/v3/apiClient/refreshAccessToken.js +19 -0
  41. package/dist/esm/v3/apiClient/refreshAccessToken.js.map +1 -0
  42. package/dist/esm/v3/apiClient/runStream.d.ts +37 -0
  43. package/dist/esm/v3/apiClient/runStream.js +57 -7
  44. package/dist/esm/v3/apiClient/runStream.js.map +1 -1
  45. package/dist/esm/v3/apiClientManager/index.js +3 -2
  46. package/dist/esm/v3/apiClientManager/index.js.map +1 -1
  47. package/dist/esm/v3/apiClientManager/types.d.ts +6 -0
  48. package/dist/esm/v3/index.d.ts +1 -0
  49. package/dist/esm/v3/index.js +1 -0
  50. package/dist/esm/v3/index.js.map +1 -1
  51. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.d.ts +2 -2
  52. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js +6 -6
  53. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -1
  54. package/dist/esm/v3/realtimeStreams/types.d.ts +10 -0
  55. package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +54 -54
  56. package/dist/esm/v3/schemas/api.js +1 -1
  57. package/dist/esm/v3/schemas/api.js.map +1 -1
  58. package/dist/esm/v3/session-streams-api.d.ts +1 -0
  59. package/dist/esm/v3/session-streams-api.js +1 -0
  60. package/dist/esm/v3/session-streams-api.js.map +1 -1
  61. package/dist/esm/v3/sessionStreams/channels.d.ts +25 -0
  62. package/dist/esm/v3/sessionStreams/channels.js +2 -0
  63. package/dist/esm/v3/sessionStreams/channels.js.map +1 -0
  64. package/dist/esm/v3/sessionStreams/index.d.ts +16 -16
  65. package/dist/esm/v3/sessionStreams/index.js +32 -32
  66. package/dist/esm/v3/sessionStreams/index.js.map +1 -1
  67. package/dist/esm/v3/sessionStreams/manager.d.ts +16 -16
  68. package/dist/esm/v3/sessionStreams/manager.js +48 -47
  69. package/dist/esm/v3/sessionStreams/manager.js.map +1 -1
  70. package/dist/esm/v3/sessionStreams/types.d.ts +16 -16
  71. package/dist/esm/version.js +1 -1
  72. package/package.json +4 -1
  73. package/dist/commonjs/v3/apiClient/bulkActions.test.d.ts +0 -1
  74. package/dist/commonjs/v3/apiClient/bulkActions.test.js +0 -151
  75. package/dist/commonjs/v3/apiClient/bulkActions.test.js.map +0 -1
  76. package/dist/commonjs/v3/apiClient/runStream.test.d.ts +0 -1
  77. package/dist/commonjs/v3/apiClient/runStream.test.js +0 -546
  78. package/dist/commonjs/v3/apiClient/runStream.test.js.map +0 -1
  79. package/dist/commonjs/v3/apiClient/streamBatchItems.test.d.ts +0 -1
  80. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js +0 -408
  81. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js.map +0 -1
  82. package/dist/commonjs/v3/apiKeys.test.d.ts +0 -1
  83. package/dist/commonjs/v3/apiKeys.test.js +0 -19
  84. package/dist/commonjs/v3/apiKeys.test.js.map +0 -1
  85. package/dist/commonjs/v3/apps/exec.test.d.ts +0 -1
  86. package/dist/commonjs/v3/apps/exec.test.js +0 -23
  87. package/dist/commonjs/v3/apps/exec.test.js.map +0 -1
  88. package/dist/commonjs/v3/build/flags.test.d.ts +0 -1
  89. package/dist/commonjs/v3/build/flags.test.js +0 -50
  90. package/dist/commonjs/v3/build/flags.test.js.map +0 -1
  91. package/dist/commonjs/v3/build/runtime.test.d.ts +0 -1
  92. package/dist/commonjs/v3/build/runtime.test.js +0 -44
  93. package/dist/commonjs/v3/build/runtime.test.js.map +0 -1
  94. package/dist/commonjs/v3/errors.test.d.ts +0 -1
  95. package/dist/commonjs/v3/errors.test.js +0 -36
  96. package/dist/commonjs/v3/errors.test.js.map +0 -1
  97. package/dist/commonjs/v3/externalDeploymentId.test.d.ts +0 -1
  98. package/dist/commonjs/v3/externalDeploymentId.test.js +0 -173
  99. package/dist/commonjs/v3/externalDeploymentId.test.js.map +0 -1
  100. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.d.ts +0 -1
  101. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js +0 -44
  102. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js.map +0 -1
  103. package/dist/commonjs/v3/idempotencyKeys.test.d.ts +0 -1
  104. package/dist/commonjs/v3/idempotencyKeys.test.js +0 -192
  105. package/dist/commonjs/v3/idempotencyKeys.test.js.map +0 -1
  106. package/dist/commonjs/v3/isomorphic/friendlyId.test.d.ts +0 -1
  107. package/dist/commonjs/v3/isomorphic/friendlyId.test.js +0 -497
  108. package/dist/commonjs/v3/isomorphic/friendlyId.test.js.map +0 -1
  109. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.d.ts +0 -1
  110. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js +0 -141
  111. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js.map +0 -1
  112. package/dist/commonjs/v3/isomorphic/waitpointMint.test.d.ts +0 -1
  113. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js +0 -97
  114. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js.map +0 -1
  115. package/dist/commonjs/v3/machines/max-old-space.test.d.ts +0 -1
  116. package/dist/commonjs/v3/machines/max-old-space.test.js +0 -44
  117. package/dist/commonjs/v3/machines/max-old-space.test.js.map +0 -1
  118. package/dist/commonjs/v3/otel/tracingSDK.test.d.ts +0 -1
  119. package/dist/commonjs/v3/otel/tracingSDK.test.js +0 -174
  120. package/dist/commonjs/v3/otel/tracingSDK.test.js.map +0 -1
  121. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.d.ts +0 -1
  122. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.js +0 -18
  123. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.js.map +0 -1
  124. package/dist/commonjs/v3/realtimeStreams/manager.test.d.ts +0 -1
  125. package/dist/commonjs/v3/realtimeStreams/manager.test.js +0 -89
  126. package/dist/commonjs/v3/realtimeStreams/manager.test.js.map +0 -1
  127. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.d.ts +0 -1
  128. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js +0 -68
  129. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js.map +0 -1
  130. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.d.ts +0 -1
  131. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.js +0 -674
  132. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.js.map +0 -1
  133. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.d.ts +0 -1
  134. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.js +0 -77
  135. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.js.map +0 -1
  136. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.d.ts +0 -1
  137. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js +0 -293
  138. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js.map +0 -1
  139. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.d.ts +0 -1
  140. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.js +0 -235
  141. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.js.map +0 -1
  142. package/dist/commonjs/v3/schemas/api-type.test.d.ts +0 -1
  143. package/dist/commonjs/v3/schemas/api-type.test.js +0 -358
  144. package/dist/commonjs/v3/schemas/api-type.test.js.map +0 -1
  145. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.d.ts +0 -1
  146. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.js +0 -79
  147. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.js.map +0 -1
  148. package/dist/commonjs/v3/schemas/idempotencyKey.test.d.ts +0 -1
  149. package/dist/commonjs/v3/schemas/idempotencyKey.test.js +0 -157
  150. package/dist/commonjs/v3/schemas/idempotencyKey.test.js.map +0 -1
  151. package/dist/commonjs/v3/schemas/scheduleWindow.test.d.ts +0 -1
  152. package/dist/commonjs/v3/schemas/scheduleWindow.test.js +0 -52
  153. package/dist/commonjs/v3/schemas/scheduleWindow.test.js.map +0 -1
  154. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.d.ts +0 -1
  155. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.js +0 -104
  156. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.js.map +0 -1
  157. package/dist/commonjs/v3/serverOnly/shutdownManager.test.d.ts +0 -1
  158. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js +0 -139
  159. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js.map +0 -1
  160. package/dist/commonjs/v3/sessionStreams/manager.test.d.ts +0 -1
  161. package/dist/commonjs/v3/sessionStreams/manager.test.js +0 -375
  162. package/dist/commonjs/v3/sessionStreams/manager.test.js.map +0 -1
  163. package/dist/commonjs/v3/sessionStreams/router.test.d.ts +0 -1
  164. package/dist/commonjs/v3/sessionStreams/router.test.js +0 -463
  165. package/dist/commonjs/v3/sessionStreams/router.test.js.map +0 -1
  166. package/dist/commonjs/v3/taskContext/index.test.d.ts +0 -1
  167. package/dist/commonjs/v3/taskContext/index.test.js +0 -73
  168. package/dist/commonjs/v3/taskContext/index.test.js.map +0 -1
  169. package/dist/commonjs/v3/taskContext/otelProcessors.test.d.ts +0 -1
  170. package/dist/commonjs/v3/taskContext/otelProcessors.test.js +0 -109
  171. package/dist/commonjs/v3/taskContext/otelProcessors.test.js.map +0 -1
  172. package/dist/commonjs/v3/telnetLogServer.test.d.ts +0 -1
  173. package/dist/commonjs/v3/telnetLogServer.test.js +0 -144
  174. package/dist/commonjs/v3/telnetLogServer.test.js.map +0 -1
  175. package/dist/commonjs/v3/utils/reconnectBackoff.test.d.ts +0 -1
  176. package/dist/commonjs/v3/utils/reconnectBackoff.test.js +0 -76
  177. package/dist/commonjs/v3/utils/reconnectBackoff.test.js.map +0 -1
  178. package/dist/commonjs/v3/workloadDeploymentToken.test.d.ts +0 -1
  179. package/dist/commonjs/v3/workloadDeploymentToken.test.js +0 -110
  180. package/dist/commonjs/v3/workloadDeploymentToken.test.js.map +0 -1
  181. package/dist/esm/v3/apiClient/bulkActions.test.d.ts +0 -1
  182. package/dist/esm/v3/apiClient/bulkActions.test.js +0 -149
  183. package/dist/esm/v3/apiClient/bulkActions.test.js.map +0 -1
  184. package/dist/esm/v3/apiClient/runStream.test.d.ts +0 -1
  185. package/dist/esm/v3/apiClient/runStream.test.js +0 -544
  186. package/dist/esm/v3/apiClient/runStream.test.js.map +0 -1
  187. package/dist/esm/v3/apiClient/streamBatchItems.test.d.ts +0 -1
  188. package/dist/esm/v3/apiClient/streamBatchItems.test.js +0 -406
  189. package/dist/esm/v3/apiClient/streamBatchItems.test.js.map +0 -1
  190. package/dist/esm/v3/apiKeys.test.d.ts +0 -1
  191. package/dist/esm/v3/apiKeys.test.js +0 -17
  192. package/dist/esm/v3/apiKeys.test.js.map +0 -1
  193. package/dist/esm/v3/apps/exec.test.d.ts +0 -1
  194. package/dist/esm/v3/apps/exec.test.js +0 -21
  195. package/dist/esm/v3/apps/exec.test.js.map +0 -1
  196. package/dist/esm/v3/build/flags.test.d.ts +0 -1
  197. package/dist/esm/v3/build/flags.test.js +0 -48
  198. package/dist/esm/v3/build/flags.test.js.map +0 -1
  199. package/dist/esm/v3/build/runtime.test.d.ts +0 -1
  200. package/dist/esm/v3/build/runtime.test.js +0 -42
  201. package/dist/esm/v3/build/runtime.test.js.map +0 -1
  202. package/dist/esm/v3/errors.test.d.ts +0 -1
  203. package/dist/esm/v3/errors.test.js +0 -34
  204. package/dist/esm/v3/errors.test.js.map +0 -1
  205. package/dist/esm/v3/externalDeploymentId.test.d.ts +0 -1
  206. package/dist/esm/v3/externalDeploymentId.test.js +0 -171
  207. package/dist/esm/v3/externalDeploymentId.test.js.map +0 -1
  208. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.d.ts +0 -1
  209. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js +0 -42
  210. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js.map +0 -1
  211. package/dist/esm/v3/idempotencyKeys.test.d.ts +0 -1
  212. package/dist/esm/v3/idempotencyKeys.test.js +0 -190
  213. package/dist/esm/v3/idempotencyKeys.test.js.map +0 -1
  214. package/dist/esm/v3/isomorphic/friendlyId.test.d.ts +0 -1
  215. package/dist/esm/v3/isomorphic/friendlyId.test.js +0 -495
  216. package/dist/esm/v3/isomorphic/friendlyId.test.js.map +0 -1
  217. package/dist/esm/v3/isomorphic/runOpsResidency.test.d.ts +0 -1
  218. package/dist/esm/v3/isomorphic/runOpsResidency.test.js +0 -139
  219. package/dist/esm/v3/isomorphic/runOpsResidency.test.js.map +0 -1
  220. package/dist/esm/v3/isomorphic/waitpointMint.test.d.ts +0 -1
  221. package/dist/esm/v3/isomorphic/waitpointMint.test.js +0 -95
  222. package/dist/esm/v3/isomorphic/waitpointMint.test.js.map +0 -1
  223. package/dist/esm/v3/machines/max-old-space.test.d.ts +0 -1
  224. package/dist/esm/v3/machines/max-old-space.test.js +0 -42
  225. package/dist/esm/v3/machines/max-old-space.test.js.map +0 -1
  226. package/dist/esm/v3/otel/tracingSDK.test.d.ts +0 -1
  227. package/dist/esm/v3/otel/tracingSDK.test.js +0 -172
  228. package/dist/esm/v3/otel/tracingSDK.test.js.map +0 -1
  229. package/dist/esm/v3/otel/tracingSDKShutdown.test.d.ts +0 -1
  230. package/dist/esm/v3/otel/tracingSDKShutdown.test.js +0 -16
  231. package/dist/esm/v3/otel/tracingSDKShutdown.test.js.map +0 -1
  232. package/dist/esm/v3/realtimeStreams/manager.test.d.ts +0 -1
  233. package/dist/esm/v3/realtimeStreams/manager.test.js +0 -87
  234. package/dist/esm/v3/realtimeStreams/manager.test.js.map +0 -1
  235. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.d.ts +0 -1
  236. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js +0 -66
  237. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js.map +0 -1
  238. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.d.ts +0 -1
  239. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.js +0 -672
  240. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.js.map +0 -1
  241. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.d.ts +0 -1
  242. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.js +0 -75
  243. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.js.map +0 -1
  244. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.d.ts +0 -1
  245. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js +0 -291
  246. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js.map +0 -1
  247. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.d.ts +0 -1
  248. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.js +0 -233
  249. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.js.map +0 -1
  250. package/dist/esm/v3/schemas/api-type.test.d.ts +0 -1
  251. package/dist/esm/v3/schemas/api-type.test.js +0 -356
  252. package/dist/esm/v3/schemas/api-type.test.js.map +0 -1
  253. package/dist/esm/v3/schemas/batchItemNDJSON.test.d.ts +0 -1
  254. package/dist/esm/v3/schemas/batchItemNDJSON.test.js +0 -77
  255. package/dist/esm/v3/schemas/batchItemNDJSON.test.js.map +0 -1
  256. package/dist/esm/v3/schemas/idempotencyKey.test.d.ts +0 -1
  257. package/dist/esm/v3/schemas/idempotencyKey.test.js +0 -155
  258. package/dist/esm/v3/schemas/idempotencyKey.test.js.map +0 -1
  259. package/dist/esm/v3/schemas/scheduleWindow.test.d.ts +0 -1
  260. package/dist/esm/v3/schemas/scheduleWindow.test.js +0 -50
  261. package/dist/esm/v3/schemas/scheduleWindow.test.js.map +0 -1
  262. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.d.ts +0 -1
  263. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.js +0 -102
  264. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.js.map +0 -1
  265. package/dist/esm/v3/serverOnly/shutdownManager.test.d.ts +0 -1
  266. package/dist/esm/v3/serverOnly/shutdownManager.test.js +0 -137
  267. package/dist/esm/v3/serverOnly/shutdownManager.test.js.map +0 -1
  268. package/dist/esm/v3/sessionStreams/manager.test.d.ts +0 -1
  269. package/dist/esm/v3/sessionStreams/manager.test.js +0 -373
  270. package/dist/esm/v3/sessionStreams/manager.test.js.map +0 -1
  271. package/dist/esm/v3/sessionStreams/router.test.d.ts +0 -1
  272. package/dist/esm/v3/sessionStreams/router.test.js +0 -461
  273. package/dist/esm/v3/sessionStreams/router.test.js.map +0 -1
  274. package/dist/esm/v3/taskContext/index.test.d.ts +0 -1
  275. package/dist/esm/v3/taskContext/index.test.js +0 -71
  276. package/dist/esm/v3/taskContext/index.test.js.map +0 -1
  277. package/dist/esm/v3/taskContext/otelProcessors.test.d.ts +0 -1
  278. package/dist/esm/v3/taskContext/otelProcessors.test.js +0 -107
  279. package/dist/esm/v3/taskContext/otelProcessors.test.js.map +0 -1
  280. package/dist/esm/v3/telnetLogServer.test.d.ts +0 -1
  281. package/dist/esm/v3/telnetLogServer.test.js +0 -139
  282. package/dist/esm/v3/telnetLogServer.test.js.map +0 -1
  283. package/dist/esm/v3/utils/reconnectBackoff.test.d.ts +0 -1
  284. package/dist/esm/v3/utils/reconnectBackoff.test.js +0 -74
  285. package/dist/esm/v3/utils/reconnectBackoff.test.js.map +0 -1
  286. package/dist/esm/v3/workloadDeploymentToken.test.d.ts +0 -1
  287. package/dist/esm/v3/workloadDeploymentToken.test.js +0 -108
  288. package/dist/esm/v3/workloadDeploymentToken.test.js.map +0 -1
@@ -1,674 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const consumerPool_js_1 = require("./consumerPool.js");
5
- const consumerPoolMetrics_js_1 = require("./consumerPoolMetrics.js");
6
- const prom_client_1 = require("prom-client");
7
- // Mock only the logger
8
- vitest_1.vi.mock("../../utils/structuredLogger.js");
9
- // Test implementation of QueueConsumer
10
- class TestQueueConsumer {
11
- started = false;
12
- stopped = false;
13
- onDequeue;
14
- metrics;
15
- constructor(opts) {
16
- this.onDequeue = opts.onDequeue;
17
- this.metrics = opts.metrics;
18
- }
19
- start() {
20
- this.started = true;
21
- this.stopped = false;
22
- }
23
- stop() {
24
- this.stopped = true;
25
- this.started = false;
26
- }
27
- }
28
- (0, vitest_1.describe)("RunQueueConsumerPool", () => {
29
- let mockClient;
30
- let mockOnDequeue;
31
- let pool;
32
- let defaultOptions;
33
- let testConsumers;
34
- let testConsumerFactory;
35
- (0, vitest_1.beforeEach)(() => {
36
- vitest_1.vi.clearAllMocks();
37
- vitest_1.vi.useFakeTimers();
38
- mockClient = {};
39
- mockOnDequeue = vitest_1.vi.fn();
40
- testConsumers = [];
41
- testConsumerFactory = (opts) => {
42
- const consumer = new TestQueueConsumer(opts);
43
- testConsumers.push(consumer);
44
- return consumer;
45
- };
46
- defaultOptions = {
47
- consumer: {
48
- client: mockClient,
49
- intervalMs: 0,
50
- idleIntervalMs: 1000,
51
- onDequeue: mockOnDequeue,
52
- },
53
- consumerFactory: testConsumerFactory,
54
- };
55
- });
56
- (0, vitest_1.afterEach)(() => {
57
- vitest_1.vi.useRealTimers();
58
- if (pool) {
59
- pool.stop();
60
- }
61
- });
62
- function advanceTimeAndProcessMetrics(ms) {
63
- vitest_1.vi.advanceTimersByTime(ms);
64
- // Trigger batch processing if ready (without adding a sample)
65
- if (pool["metricsProcessor"].shouldProcessBatch()) {
66
- pool["processMetricsBatch"]();
67
- }
68
- }
69
- (0, vitest_1.describe)("Static mode (strategy='none')", () => {
70
- (0, vitest_1.it)("should start with maxConsumerCount in static mode", async () => {
71
- pool = new consumerPool_js_1.RunQueueConsumerPool({
72
- ...defaultOptions,
73
- scaling: { strategy: "none", maxConsumerCount: 5 },
74
- });
75
- await pool.start();
76
- (0, vitest_1.expect)(pool.size).toBe(5);
77
- (0, vitest_1.expect)(testConsumers.length).toBe(5);
78
- });
79
- (0, vitest_1.it)("should not scale in static mode even with queue length updates", async () => {
80
- pool = new consumerPool_js_1.RunQueueConsumerPool({
81
- ...defaultOptions,
82
- scaling: { strategy: "none", maxConsumerCount: 3 },
83
- });
84
- await pool.start();
85
- const initialCount = pool.size;
86
- pool.updateQueueLength(100);
87
- vitest_1.vi.advanceTimersByTime(2000);
88
- (0, vitest_1.expect)(pool.size).toBe(initialCount);
89
- (0, vitest_1.expect)(pool.size).toBe(3);
90
- });
91
- });
92
- (0, vitest_1.describe)("Smooth scaling strategy", () => {
93
- (0, vitest_1.it)("should scale smoothly with damping", async () => {
94
- pool = new consumerPool_js_1.RunQueueConsumerPool({
95
- ...defaultOptions,
96
- scaling: {
97
- strategy: "smooth",
98
- minConsumerCount: 1,
99
- maxConsumerCount: 10,
100
- scaleUpCooldownMs: 0,
101
- disableJitter: true,
102
- },
103
- });
104
- await pool.start();
105
- (0, vitest_1.expect)(pool.size).toBe(1);
106
- pool.updateQueueLength(5);
107
- advanceTimeAndProcessMetrics(1100);
108
- (0, vitest_1.expect)(pool.size).toBe(4); // Damped scaling
109
- pool.updateQueueLength(5);
110
- advanceTimeAndProcessMetrics(1100);
111
- (0, vitest_1.expect)(pool.size).toBe(5); // Gradually approaches target
112
- });
113
- (0, vitest_1.it)("should respect max consumer count", async () => {
114
- pool = new consumerPool_js_1.RunQueueConsumerPool({
115
- ...defaultOptions,
116
- scaling: {
117
- strategy: "smooth",
118
- minConsumerCount: 1,
119
- maxConsumerCount: 5,
120
- scaleUpCooldownMs: 0,
121
- disableJitter: true,
122
- },
123
- });
124
- await pool.start();
125
- (0, vitest_1.expect)(pool.size).toBe(1);
126
- pool.updateQueueLength(100);
127
- advanceTimeAndProcessMetrics(1100);
128
- (0, vitest_1.expect)(pool.size).toBe(5);
129
- pool.updateQueueLength(100);
130
- advanceTimeAndProcessMetrics(1100);
131
- (0, vitest_1.expect)(pool.size).toBe(5);
132
- });
133
- });
134
- (0, vitest_1.describe)("Aggressive scaling strategy", () => {
135
- (0, vitest_1.it)("should scale up quickly based on queue pressure", async () => {
136
- pool = new consumerPool_js_1.RunQueueConsumerPool({
137
- ...defaultOptions,
138
- scaling: {
139
- strategy: "aggressive",
140
- minConsumerCount: 2,
141
- maxConsumerCount: 10,
142
- scaleUpCooldownMs: 0,
143
- disableJitter: true,
144
- },
145
- });
146
- await pool.start();
147
- (0, vitest_1.expect)(pool.size).toBe(2);
148
- pool.updateQueueLength(10);
149
- advanceTimeAndProcessMetrics(1100);
150
- (0, vitest_1.expect)(pool.size).toBe(3);
151
- pool.updateQueueLength(20);
152
- advanceTimeAndProcessMetrics(1100);
153
- (0, vitest_1.expect)(pool.size).toBe(4);
154
- });
155
- (0, vitest_1.it)("should scale down cautiously when queue is small", async () => {
156
- pool = new consumerPool_js_1.RunQueueConsumerPool({
157
- ...defaultOptions,
158
- scaling: {
159
- strategy: "aggressive",
160
- minConsumerCount: 1,
161
- maxConsumerCount: 10,
162
- scaleUpCooldownMs: 0,
163
- scaleDownCooldownMs: 0,
164
- disableJitter: true,
165
- },
166
- });
167
- await pool.start();
168
- (0, vitest_1.expect)(pool.size).toBe(1);
169
- pool.updateQueueLength(10);
170
- advanceTimeAndProcessMetrics(1100);
171
- (0, vitest_1.expect)(pool.size).toBe(2);
172
- pool.updateQueueLength(0.5);
173
- advanceTimeAndProcessMetrics(1100);
174
- (0, vitest_1.expect)(pool.size).toBe(3); // EWMA smoothing delays scale down
175
- pool.updateQueueLength(0.5);
176
- advanceTimeAndProcessMetrics(1100);
177
- (0, vitest_1.expect)(pool.size).toBeGreaterThanOrEqual(3); // Stays in optimal zone
178
- });
179
- (0, vitest_1.it)("should maintain current level in optimal zone", async () => {
180
- pool = new consumerPool_js_1.RunQueueConsumerPool({
181
- ...defaultOptions,
182
- scaling: {
183
- strategy: "aggressive",
184
- minConsumerCount: 3,
185
- maxConsumerCount: 10,
186
- scaleUpCooldownMs: 0,
187
- disableJitter: true,
188
- },
189
- });
190
- await pool.start();
191
- (0, vitest_1.expect)(pool.size).toBe(3);
192
- pool.updateQueueLength(3);
193
- advanceTimeAndProcessMetrics(1100);
194
- (0, vitest_1.expect)(pool.size).toBe(3);
195
- pool.updateQueueLength(4);
196
- advanceTimeAndProcessMetrics(1100);
197
- (0, vitest_1.expect)(pool.size).toBe(3);
198
- });
199
- });
200
- (0, vitest_1.describe)("Smooth scaling with EWMA", () => {
201
- (0, vitest_1.it)("should use exponential smoothing for stable scaling", async () => {
202
- pool = new consumerPool_js_1.RunQueueConsumerPool({
203
- ...defaultOptions,
204
- scaling: {
205
- strategy: "smooth",
206
- minConsumerCount: 1,
207
- maxConsumerCount: 10,
208
- disableJitter: true,
209
- },
210
- });
211
- await pool.start();
212
- const queueLengths = [10, 2, 8, 3, 9, 1, 7];
213
- for (const length of queueLengths) {
214
- pool.updateQueueLength(length);
215
- vitest_1.vi.advanceTimersByTime(200);
216
- }
217
- vitest_1.vi.advanceTimersByTime(900);
218
- const metrics = pool.getMetrics();
219
- (0, vitest_1.expect)(metrics.smoothedQueueLength).toBeGreaterThan(0);
220
- (0, vitest_1.expect)(metrics.smoothedQueueLength).toBeLessThan(10);
221
- });
222
- (0, vitest_1.it)("should apply damping factor to avoid rapid changes", async () => {
223
- pool = new consumerPool_js_1.RunQueueConsumerPool({
224
- ...defaultOptions,
225
- scaling: {
226
- strategy: "smooth",
227
- minConsumerCount: 1,
228
- maxConsumerCount: 10,
229
- disableJitter: true,
230
- },
231
- });
232
- await pool.start();
233
- pool.updateQueueLength(2);
234
- advanceTimeAndProcessMetrics(1100);
235
- const metrics1 = pool.getMetrics();
236
- (0, vitest_1.expect)(metrics1.smoothedQueueLength).toBe(2);
237
- pool.updateQueueLength(20);
238
- advanceTimeAndProcessMetrics(1100);
239
- const metrics2 = pool.getMetrics();
240
- (0, vitest_1.expect)(metrics2.smoothedQueueLength).toBeGreaterThan(2);
241
- (0, vitest_1.expect)(metrics2.smoothedQueueLength).toBeLessThan(20);
242
- });
243
- });
244
- (0, vitest_1.describe)("High throughput parallel dequeuing", () => {
245
- (0, vitest_1.it)("should handle rapid parallel queue updates", async () => {
246
- pool = new consumerPool_js_1.RunQueueConsumerPool({
247
- ...defaultOptions,
248
- scaling: {
249
- strategy: "aggressive",
250
- minConsumerCount: 1,
251
- maxConsumerCount: 20,
252
- disableJitter: true,
253
- },
254
- });
255
- await pool.start();
256
- const updates = [];
257
- for (let i = 0; i < 100; i++) {
258
- updates.push(Math.floor(Math.random() * 50) + 10);
259
- }
260
- updates.forEach((length, index) => {
261
- setTimeout(() => pool.updateQueueLength(length), index * 10);
262
- });
263
- advanceTimeAndProcessMetrics(1100);
264
- const metrics = pool.getMetrics();
265
- (0, vitest_1.expect)(metrics.queueLength).toBeDefined();
266
- });
267
- (0, vitest_1.it)("should batch metrics updates to avoid excessive scaling", async () => {
268
- pool = new consumerPool_js_1.RunQueueConsumerPool({
269
- ...defaultOptions,
270
- scaling: {
271
- strategy: "smooth",
272
- minConsumerCount: 1,
273
- maxConsumerCount: 10,
274
- disableJitter: true,
275
- },
276
- });
277
- await pool.start();
278
- const evaluateScalingSpy = vitest_1.vi.spyOn(pool, "evaluateScaling");
279
- pool.updateQueueLength(10);
280
- for (let i = 1; i < 50; i++) {
281
- pool.updateQueueLength(Math.floor(Math.random() * 20) + 5);
282
- }
283
- (0, vitest_1.expect)(evaluateScalingSpy).not.toHaveBeenCalled();
284
- advanceTimeAndProcessMetrics(1000);
285
- (0, vitest_1.expect)(evaluateScalingSpy).toHaveBeenCalledTimes(1);
286
- });
287
- (0, vitest_1.it)("should use median to filter outliers in high-frequency updates", async () => {
288
- pool = new consumerPool_js_1.RunQueueConsumerPool({
289
- ...defaultOptions,
290
- scaling: {
291
- strategy: "aggressive",
292
- minConsumerCount: 1,
293
- maxConsumerCount: 10,
294
- disableJitter: true,
295
- },
296
- });
297
- await pool.start();
298
- const updates = [10, 11, 9, 12, 10, 100, 11, 10, 9, 11, 1];
299
- updates.forEach((length) => pool.updateQueueLength(length));
300
- advanceTimeAndProcessMetrics(1100);
301
- const metrics = pool.getMetrics();
302
- (0, vitest_1.expect)(metrics.queueLength).toBeGreaterThanOrEqual(9);
303
- (0, vitest_1.expect)(metrics.queueLength).toBeLessThanOrEqual(12);
304
- });
305
- });
306
- (0, vitest_1.describe)("Scaling cooldowns and jitter", () => {
307
- (0, vitest_1.it)("should respect scale-up cooldown", async () => {
308
- pool = new consumerPool_js_1.RunQueueConsumerPool({
309
- ...defaultOptions,
310
- scaling: {
311
- strategy: "smooth",
312
- scaleUpCooldownMs: 5000,
313
- minConsumerCount: 1,
314
- maxConsumerCount: 10,
315
- disableJitter: true,
316
- },
317
- });
318
- await pool.start();
319
- pool["scaleToTarget"](5);
320
- const scaleToTargetSpy = vitest_1.vi.spyOn(pool, "scaleToTarget");
321
- pool.updateQueueLength(10);
322
- advanceTimeAndProcessMetrics(1100);
323
- (0, vitest_1.expect)(scaleToTargetSpy).not.toHaveBeenCalled();
324
- vitest_1.vi.advanceTimersByTime(10000);
325
- pool.updateQueueLength(20);
326
- advanceTimeAndProcessMetrics(1100);
327
- });
328
- (0, vitest_1.it)("should respect scale-down cooldown (longer than scale-up)", async () => {
329
- pool = new consumerPool_js_1.RunQueueConsumerPool({
330
- ...defaultOptions,
331
- scaling: {
332
- strategy: "aggressive",
333
- minConsumerCount: 1,
334
- maxConsumerCount: 10,
335
- disableJitter: true,
336
- },
337
- });
338
- await pool.start();
339
- for (let i = 0; i < 4; i++) {
340
- pool["addConsumers"](1);
341
- }
342
- pool["scaleToTarget"](5);
343
- pool["metrics"].lastScaleTime = new Date(Date.now() - 70000);
344
- pool.updateQueueLength(1);
345
- advanceTimeAndProcessMetrics(1100);
346
- const metrics = pool.getMetrics();
347
- (0, vitest_1.expect)(metrics.queueLength).toBe(1);
348
- });
349
- (0, vitest_1.it)("should add random jitter to prevent thundering herd", async () => {
350
- const pools = [];
351
- const scaleTimes = [];
352
- for (let i = 0; i < 3; i++) {
353
- const p = new consumerPool_js_1.RunQueueConsumerPool({
354
- ...defaultOptions,
355
- scaling: {
356
- strategy: "smooth",
357
- minConsumerCount: 1,
358
- maxConsumerCount: 10,
359
- disableJitter: true,
360
- },
361
- });
362
- const originalScale = p["scaleToTarget"];
363
- p["scaleToTarget"] = vitest_1.vi.fn(async (target) => {
364
- scaleTimes.push(Date.now());
365
- return originalScale.call(p, target);
366
- });
367
- pools.push(p);
368
- await p.start();
369
- }
370
- pools.forEach((p) => p.updateQueueLength(20));
371
- advanceTimeAndProcessMetrics(1100);
372
- vitest_1.vi.advanceTimersByTime(15000);
373
- await Promise.all(pools.map((p) => p.stop()));
374
- });
375
- });
376
- (0, vitest_1.describe)("Consumer lifecycle management", () => {
377
- (0, vitest_1.it)("should properly start and stop consumers", async () => {
378
- pool = new consumerPool_js_1.RunQueueConsumerPool({
379
- ...defaultOptions,
380
- scaling: {
381
- strategy: "none",
382
- maxConsumerCount: 3,
383
- disableJitter: true,
384
- },
385
- });
386
- await pool.start();
387
- (0, vitest_1.expect)(pool.size).toBe(3);
388
- (0, vitest_1.expect)(testConsumers.length).toBe(3);
389
- testConsumers.forEach((consumer) => {
390
- (0, vitest_1.expect)(consumer.started).toBe(true);
391
- });
392
- await pool.stop();
393
- testConsumers.forEach((consumer) => {
394
- (0, vitest_1.expect)(consumer.stopped).toBe(true);
395
- });
396
- });
397
- (0, vitest_1.it)("should forward dequeue messages with queue length updates", async () => {
398
- pool = new consumerPool_js_1.RunQueueConsumerPool({
399
- ...defaultOptions,
400
- scaling: {
401
- strategy: "aggressive",
402
- maxConsumerCount: 2,
403
- disableJitter: true,
404
- },
405
- });
406
- await pool.start();
407
- const messages = [{ workerQueueLength: 15 }];
408
- if (testConsumers[0]?.onDequeue) {
409
- await testConsumers[0].onDequeue(messages);
410
- }
411
- (0, vitest_1.expect)(mockOnDequeue).toHaveBeenCalledWith(messages, undefined);
412
- advanceTimeAndProcessMetrics(1100);
413
- const metrics = pool.getMetrics();
414
- (0, vitest_1.expect)(metrics.queueLength).toBe(15);
415
- });
416
- });
417
- (0, vitest_1.describe)("Memory leak prevention", () => {
418
- (0, vitest_1.it)("should collect all samples within batch window without limit", async () => {
419
- pool = new consumerPool_js_1.RunQueueConsumerPool({
420
- ...defaultOptions,
421
- scaling: {
422
- strategy: "aggressive",
423
- minConsumerCount: 1,
424
- maxConsumerCount: 10,
425
- disableJitter: true,
426
- },
427
- });
428
- await pool.start();
429
- for (let i = 0; i < 100; i++) {
430
- pool.updateQueueLength(i);
431
- }
432
- const metrics = pool.getMetrics();
433
- (0, vitest_1.expect)(metrics.queueLength).toBeUndefined();
434
- });
435
- (0, vitest_1.it)("should clear consumer map on stop", async () => {
436
- pool = new consumerPool_js_1.RunQueueConsumerPool({
437
- ...defaultOptions,
438
- scaling: {
439
- strategy: "none",
440
- maxConsumerCount: 5,
441
- disableJitter: true,
442
- },
443
- });
444
- await pool.start();
445
- (0, vitest_1.expect)(pool.size).toBe(5);
446
- await pool.stop();
447
- (0, vitest_1.expect)(pool.size).toBe(0);
448
- });
449
- (0, vitest_1.it)("should clear recentQueueLengths after processing batch", async () => {
450
- pool = new consumerPool_js_1.RunQueueConsumerPool({
451
- ...defaultOptions,
452
- scaling: { strategy: "smooth" },
453
- });
454
- await pool.start();
455
- for (let i = 0; i < 5; i++) {
456
- pool.updateQueueLength(10 + i);
457
- }
458
- advanceTimeAndProcessMetrics(1100);
459
- const metrics = pool.getMetrics();
460
- (0, vitest_1.expect)(metrics.queueLength).toBeDefined();
461
- });
462
- (0, vitest_1.it)("should not accumulate scaling operations in memory", async () => {
463
- pool = new consumerPool_js_1.RunQueueConsumerPool({
464
- ...defaultOptions,
465
- scaling: {
466
- strategy: "aggressive",
467
- scaleUpCooldownMs: 100,
468
- scaleDownCooldownMs: 100,
469
- minConsumerCount: 1,
470
- maxConsumerCount: 10,
471
- disableJitter: true,
472
- },
473
- });
474
- await pool.start();
475
- for (let i = 0; i < 5; i++) {
476
- pool["metrics"].lastScaleTime = new Date(0);
477
- pool.updateQueueLength(i % 2 === 0 ? 50 : 1);
478
- vitest_1.vi.advanceTimersByTime(1100);
479
- }
480
- (0, vitest_1.expect)(pool.size).toBeGreaterThanOrEqual(1);
481
- (0, vitest_1.expect)(pool.size).toBeLessThanOrEqual(10);
482
- });
483
- });
484
- (0, vitest_1.describe)("Edge cases", () => {
485
- (0, vitest_1.it)("should handle empty recent queue lengths", async () => {
486
- pool = new consumerPool_js_1.RunQueueConsumerPool({
487
- ...defaultOptions,
488
- scaling: { strategy: "aggressive" },
489
- });
490
- await pool.start();
491
- const metrics = pool.getMetrics();
492
- (0, vitest_1.expect)(metrics.queueLength).toBeUndefined();
493
- });
494
- (0, vitest_1.it)("should clamp consumer count to min/max bounds", async () => {
495
- pool = new consumerPool_js_1.RunQueueConsumerPool({
496
- ...defaultOptions,
497
- scaling: {
498
- strategy: "smooth",
499
- minConsumerCount: 2,
500
- maxConsumerCount: 5,
501
- disableJitter: true,
502
- },
503
- });
504
- await pool.start();
505
- (0, vitest_1.expect)(pool.size).toBe(2);
506
- pool.updateQueueLength(100);
507
- advanceTimeAndProcessMetrics(1100);
508
- (0, vitest_1.expect)(pool.size).toBeLessThanOrEqual(5);
509
- });
510
- (0, vitest_1.it)("should respect custom targetRatio with smooth strategy", async () => {
511
- pool = new consumerPool_js_1.RunQueueConsumerPool({
512
- ...defaultOptions,
513
- scaling: {
514
- strategy: "smooth",
515
- targetRatio: 5,
516
- scaleUpCooldownMs: 0,
517
- minConsumerCount: 1,
518
- maxConsumerCount: 10,
519
- disableJitter: true,
520
- },
521
- });
522
- await pool.start();
523
- (0, vitest_1.expect)(pool.size).toBe(1);
524
- pool.updateQueueLength(10);
525
- advanceTimeAndProcessMetrics(1100);
526
- const firstSize = pool.size;
527
- (0, vitest_1.expect)(firstSize).toBeGreaterThanOrEqual(1);
528
- (0, vitest_1.expect)(firstSize).toBeLessThanOrEqual(2);
529
- pool.updateQueueLength(10);
530
- advanceTimeAndProcessMetrics(1100);
531
- (0, vitest_1.expect)(pool.size).toBeLessThanOrEqual(2);
532
- });
533
- (0, vitest_1.it)("should respect custom targetRatio with aggressive strategy", async () => {
534
- pool = new consumerPool_js_1.RunQueueConsumerPool({
535
- ...defaultOptions,
536
- scaling: {
537
- strategy: "aggressive",
538
- targetRatio: 5,
539
- scaleUpCooldownMs: 0,
540
- minConsumerCount: 1,
541
- maxConsumerCount: 10,
542
- disableJitter: true,
543
- },
544
- });
545
- await pool.start();
546
- (0, vitest_1.expect)(pool.size).toBe(1);
547
- pool.updateQueueLength(20);
548
- advanceTimeAndProcessMetrics(1100);
549
- const sizeAfterFirstScale = pool.size;
550
- (0, vitest_1.expect)(sizeAfterFirstScale).toBeGreaterThanOrEqual(1);
551
- pool.updateQueueLength(20);
552
- advanceTimeAndProcessMetrics(1100);
553
- (0, vitest_1.expect)(pool.size).toBeLessThanOrEqual(6);
554
- });
555
- (0, vitest_1.it)("should scale down when no items are dequeued (zero queue length)", async () => {
556
- pool = new consumerPool_js_1.RunQueueConsumerPool({
557
- ...defaultOptions,
558
- scaling: {
559
- strategy: "smooth",
560
- minConsumerCount: 1,
561
- maxConsumerCount: 10,
562
- scaleUpCooldownMs: 0,
563
- scaleDownCooldownMs: 0,
564
- disableJitter: true,
565
- },
566
- });
567
- await pool.start();
568
- (0, vitest_1.expect)(pool.size).toBe(1);
569
- // Scale up first
570
- pool.updateQueueLength(20);
571
- advanceTimeAndProcessMetrics(1100);
572
- (0, vitest_1.expect)(pool.size).toBeGreaterThan(1);
573
- const sizeAfterScaleUp = pool.size;
574
- // Now send multiple zero queue lengths to converge EWMA to 0
575
- // The EWMA needs time to converge due to exponential smoothing
576
- for (let i = 0; i < 5; i++) {
577
- pool.updateQueueLength(0);
578
- advanceTimeAndProcessMetrics(1100);
579
- }
580
- // After multiple iterations with zero queue, should scale down but not to minimum yet
581
- (0, vitest_1.expect)(pool.size).toBeLessThan(sizeAfterScaleUp);
582
- (0, vitest_1.expect)(pool.size).toBeGreaterThan(1);
583
- // Continue until we reach minimum
584
- for (let i = 0; i < 5; i++) {
585
- pool.updateQueueLength(0);
586
- advanceTimeAndProcessMetrics(1100);
587
- }
588
- // Should eventually reach minimum
589
- (0, vitest_1.expect)(pool.size).toBe(1);
590
- });
591
- });
592
- (0, vitest_1.describe)("Metrics wiring", () => {
593
- (0, vitest_1.it)("injects the pool's shared ConsumerPoolMetrics into every consumer when a registry is provided", async () => {
594
- pool = new consumerPool_js_1.RunQueueConsumerPool({
595
- ...defaultOptions,
596
- metricsRegistry: new prom_client_1.Registry(),
597
- scaling: { strategy: "none", maxConsumerCount: 3 },
598
- });
599
- await pool.start();
600
- (0, vitest_1.expect)(testConsumers.length).toBe(3);
601
- const poolMetrics = pool["promMetrics"];
602
- (0, vitest_1.expect)(poolMetrics).toBeInstanceOf(consumerPoolMetrics_js_1.ConsumerPoolMetrics);
603
- testConsumers.forEach((consumer) => {
604
- (0, vitest_1.expect)(consumer.metrics).toBe(poolMetrics);
605
- });
606
- });
607
- (0, vitest_1.it)("preserves a caller-supplied consumer metrics instance when no registry is provided", async () => {
608
- const callerMetrics = new consumerPoolMetrics_js_1.ConsumerPoolMetrics({ register: new prom_client_1.Registry() });
609
- pool = new consumerPool_js_1.RunQueueConsumerPool({
610
- ...defaultOptions,
611
- consumer: { ...defaultOptions.consumer, metrics: callerMetrics },
612
- scaling: { strategy: "none", maxConsumerCount: 1 },
613
- });
614
- await pool.start();
615
- (0, vitest_1.expect)(testConsumers[0]?.metrics).toBe(callerMetrics);
616
- });
617
- });
618
- (0, vitest_1.describe)("Backpressure scale-up freeze", () => {
619
- (0, vitest_1.it)("freezes scale-up while shouldPauseScaling returns true, then resumes", async () => {
620
- let paused = true;
621
- pool = new consumerPool_js_1.RunQueueConsumerPool({
622
- ...defaultOptions,
623
- scaling: {
624
- strategy: "smooth",
625
- minConsumerCount: 1,
626
- maxConsumerCount: 10,
627
- scaleUpCooldownMs: 0,
628
- disableJitter: true,
629
- shouldPauseScaling: () => paused,
630
- },
631
- });
632
- await pool.start();
633
- (0, vitest_1.expect)(pool.size).toBe(1);
634
- // A high queue would normally scale up, but backpressure freezes it.
635
- pool.updateQueueLength(10);
636
- advanceTimeAndProcessMetrics(1100);
637
- (0, vitest_1.expect)(pool.size).toBe(1);
638
- // Once backpressure releases, scaling resumes.
639
- paused = false;
640
- pool.updateQueueLength(10);
641
- advanceTimeAndProcessMetrics(1100);
642
- (0, vitest_1.expect)(pool.size).toBeGreaterThan(1);
643
- });
644
- (0, vitest_1.it)("still allows scale-down while paused", async () => {
645
- let paused = false;
646
- pool = new consumerPool_js_1.RunQueueConsumerPool({
647
- ...defaultOptions,
648
- scaling: {
649
- strategy: "smooth",
650
- minConsumerCount: 1,
651
- maxConsumerCount: 10,
652
- scaleUpCooldownMs: 0,
653
- scaleDownCooldownMs: 0,
654
- disableJitter: true,
655
- shouldPauseScaling: () => paused,
656
- },
657
- });
658
- await pool.start();
659
- pool.updateQueueLength(10);
660
- advanceTimeAndProcessMetrics(1100);
661
- const scaledUp = pool.size;
662
- (0, vitest_1.expect)(scaledUp).toBeGreaterThan(1);
663
- // Pausing must not block shrinking - we want to drain down, just not grow.
664
- // Loop to let the EWMA-smoothed queue length fall (one batch isn't enough).
665
- paused = true;
666
- for (let i = 0; i < 5; i++) {
667
- pool.updateQueueLength(0);
668
- advanceTimeAndProcessMetrics(1100);
669
- }
670
- (0, vitest_1.expect)(pool.size).toBeLessThan(scaledUp);
671
- });
672
- });
673
- });
674
- //# sourceMappingURL=consumerPool.test.js.map