@trigger.dev/core 4.5.14 → 4.5.16

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 (271) hide show
  1. package/dist/commonjs/v3/apiClient/index.d.ts +8 -2
  2. package/dist/commonjs/v3/apiClient/index.js +19 -6
  3. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  4. package/dist/commonjs/v3/build/extensions.d.ts +8 -0
  5. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.d.ts +2 -2
  6. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js +6 -6
  7. package/dist/commonjs/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -1
  8. package/dist/commonjs/v3/schemas/api.d.ts +1 -0
  9. package/dist/commonjs/v3/schemas/api.js +17 -1
  10. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  11. package/dist/commonjs/v3/session-streams-api.d.ts +1 -0
  12. package/dist/commonjs/v3/session-streams-api.js +1 -0
  13. package/dist/commonjs/v3/session-streams-api.js.map +1 -1
  14. package/dist/commonjs/v3/sessionStreams/channels.d.ts +25 -0
  15. package/dist/commonjs/v3/sessionStreams/channels.js +3 -0
  16. package/dist/commonjs/v3/sessionStreams/channels.js.map +1 -0
  17. package/dist/commonjs/v3/sessionStreams/index.d.ts +16 -16
  18. package/dist/commonjs/v3/sessionStreams/index.js +32 -32
  19. package/dist/commonjs/v3/sessionStreams/index.js.map +1 -1
  20. package/dist/commonjs/v3/sessionStreams/manager.d.ts +16 -16
  21. package/dist/commonjs/v3/sessionStreams/manager.js +48 -47
  22. package/dist/commonjs/v3/sessionStreams/manager.js.map +1 -1
  23. package/dist/commonjs/v3/sessionStreams/types.d.ts +16 -16
  24. package/dist/commonjs/version.js +1 -1
  25. package/dist/esm/v3/apiClient/index.d.ts +8 -2
  26. package/dist/esm/v3/apiClient/index.js +19 -6
  27. package/dist/esm/v3/apiClient/index.js.map +1 -1
  28. package/dist/esm/v3/build/extensions.d.ts +8 -0
  29. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.d.ts +2 -2
  30. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js +6 -6
  31. package/dist/esm/v3/realtimeStreams/sessionStreamOneshot.js.map +1 -1
  32. package/dist/esm/v3/schemas/api.d.ts +1 -0
  33. package/dist/esm/v3/schemas/api.js +16 -1
  34. package/dist/esm/v3/schemas/api.js.map +1 -1
  35. package/dist/esm/v3/session-streams-api.d.ts +1 -0
  36. package/dist/esm/v3/session-streams-api.js +1 -0
  37. package/dist/esm/v3/session-streams-api.js.map +1 -1
  38. package/dist/esm/v3/sessionStreams/channels.d.ts +25 -0
  39. package/dist/esm/v3/sessionStreams/channels.js +2 -0
  40. package/dist/esm/v3/sessionStreams/channels.js.map +1 -0
  41. package/dist/esm/v3/sessionStreams/index.d.ts +16 -16
  42. package/dist/esm/v3/sessionStreams/index.js +32 -32
  43. package/dist/esm/v3/sessionStreams/index.js.map +1 -1
  44. package/dist/esm/v3/sessionStreams/manager.d.ts +16 -16
  45. package/dist/esm/v3/sessionStreams/manager.js +48 -47
  46. package/dist/esm/v3/sessionStreams/manager.js.map +1 -1
  47. package/dist/esm/v3/sessionStreams/types.d.ts +16 -16
  48. package/dist/esm/version.js +1 -1
  49. package/package.json +4 -1
  50. package/dist/commonjs/v3/apiClient/bulkActions.test.d.ts +0 -1
  51. package/dist/commonjs/v3/apiClient/bulkActions.test.js +0 -151
  52. package/dist/commonjs/v3/apiClient/bulkActions.test.js.map +0 -1
  53. package/dist/commonjs/v3/apiClient/refreshAccessToken.test.d.ts +0 -1
  54. package/dist/commonjs/v3/apiClient/refreshAccessToken.test.js +0 -55
  55. package/dist/commonjs/v3/apiClient/refreshAccessToken.test.js.map +0 -1
  56. package/dist/commonjs/v3/apiClient/runStream.test.d.ts +0 -1
  57. package/dist/commonjs/v3/apiClient/runStream.test.js +0 -825
  58. package/dist/commonjs/v3/apiClient/runStream.test.js.map +0 -1
  59. package/dist/commonjs/v3/apiClient/streamBatchItems.test.d.ts +0 -1
  60. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js +0 -408
  61. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js.map +0 -1
  62. package/dist/commonjs/v3/apiKeys.test.d.ts +0 -1
  63. package/dist/commonjs/v3/apiKeys.test.js +0 -19
  64. package/dist/commonjs/v3/apiKeys.test.js.map +0 -1
  65. package/dist/commonjs/v3/apps/exec.test.d.ts +0 -1
  66. package/dist/commonjs/v3/apps/exec.test.js +0 -23
  67. package/dist/commonjs/v3/apps/exec.test.js.map +0 -1
  68. package/dist/commonjs/v3/build/flags.test.d.ts +0 -1
  69. package/dist/commonjs/v3/build/flags.test.js +0 -50
  70. package/dist/commonjs/v3/build/flags.test.js.map +0 -1
  71. package/dist/commonjs/v3/build/runtime.test.d.ts +0 -1
  72. package/dist/commonjs/v3/build/runtime.test.js +0 -44
  73. package/dist/commonjs/v3/build/runtime.test.js.map +0 -1
  74. package/dist/commonjs/v3/errors.test.d.ts +0 -1
  75. package/dist/commonjs/v3/errors.test.js +0 -36
  76. package/dist/commonjs/v3/errors.test.js.map +0 -1
  77. package/dist/commonjs/v3/externalDeploymentId.test.d.ts +0 -1
  78. package/dist/commonjs/v3/externalDeploymentId.test.js +0 -173
  79. package/dist/commonjs/v3/externalDeploymentId.test.js.map +0 -1
  80. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.d.ts +0 -1
  81. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js +0 -44
  82. package/dist/commonjs/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js.map +0 -1
  83. package/dist/commonjs/v3/idempotencyKeys.test.d.ts +0 -1
  84. package/dist/commonjs/v3/idempotencyKeys.test.js +0 -192
  85. package/dist/commonjs/v3/idempotencyKeys.test.js.map +0 -1
  86. package/dist/commonjs/v3/isomorphic/friendlyId.test.d.ts +0 -1
  87. package/dist/commonjs/v3/isomorphic/friendlyId.test.js +0 -497
  88. package/dist/commonjs/v3/isomorphic/friendlyId.test.js.map +0 -1
  89. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.d.ts +0 -1
  90. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js +0 -141
  91. package/dist/commonjs/v3/isomorphic/runOpsResidency.test.js.map +0 -1
  92. package/dist/commonjs/v3/isomorphic/waitpointMint.test.d.ts +0 -1
  93. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js +0 -97
  94. package/dist/commonjs/v3/isomorphic/waitpointMint.test.js.map +0 -1
  95. package/dist/commonjs/v3/machines/max-old-space.test.d.ts +0 -1
  96. package/dist/commonjs/v3/machines/max-old-space.test.js +0 -44
  97. package/dist/commonjs/v3/machines/max-old-space.test.js.map +0 -1
  98. package/dist/commonjs/v3/otel/tracingSDK.test.d.ts +0 -1
  99. package/dist/commonjs/v3/otel/tracingSDK.test.js +0 -174
  100. package/dist/commonjs/v3/otel/tracingSDK.test.js.map +0 -1
  101. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.d.ts +0 -1
  102. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.js +0 -18
  103. package/dist/commonjs/v3/otel/tracingSDKShutdown.test.js.map +0 -1
  104. package/dist/commonjs/v3/realtimeStreams/manager.test.d.ts +0 -1
  105. package/dist/commonjs/v3/realtimeStreams/manager.test.js +0 -89
  106. package/dist/commonjs/v3/realtimeStreams/manager.test.js.map +0 -1
  107. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.d.ts +0 -1
  108. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js +0 -68
  109. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.test.js.map +0 -1
  110. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.d.ts +0 -1
  111. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.js +0 -674
  112. package/dist/commonjs/v3/runEngineWorker/supervisor/consumerPool.test.js.map +0 -1
  113. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.d.ts +0 -1
  114. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.js +0 -77
  115. package/dist/commonjs/v3/runEngineWorker/supervisor/queueConsumer.test.js.map +0 -1
  116. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.d.ts +0 -1
  117. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js +0 -293
  118. package/dist/commonjs/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js.map +0 -1
  119. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.d.ts +0 -1
  120. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.js +0 -235
  121. package/dist/commonjs/v3/runEngineWorker/supervisor/scalingStrategies.test.js.map +0 -1
  122. package/dist/commonjs/v3/schemas/api-type.test.d.ts +0 -1
  123. package/dist/commonjs/v3/schemas/api-type.test.js +0 -358
  124. package/dist/commonjs/v3/schemas/api-type.test.js.map +0 -1
  125. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.d.ts +0 -1
  126. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.js +0 -79
  127. package/dist/commonjs/v3/schemas/batchItemNDJSON.test.js.map +0 -1
  128. package/dist/commonjs/v3/schemas/idempotencyKey.test.d.ts +0 -1
  129. package/dist/commonjs/v3/schemas/idempotencyKey.test.js +0 -157
  130. package/dist/commonjs/v3/schemas/idempotencyKey.test.js.map +0 -1
  131. package/dist/commonjs/v3/schemas/scheduleWindow.test.d.ts +0 -1
  132. package/dist/commonjs/v3/schemas/scheduleWindow.test.js +0 -52
  133. package/dist/commonjs/v3/schemas/scheduleWindow.test.js.map +0 -1
  134. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.d.ts +0 -1
  135. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.js +0 -104
  136. package/dist/commonjs/v3/schemas/triggerExternalDeploymentId.test.js.map +0 -1
  137. package/dist/commonjs/v3/serverOnly/shutdownManager.test.d.ts +0 -1
  138. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js +0 -139
  139. package/dist/commonjs/v3/serverOnly/shutdownManager.test.js.map +0 -1
  140. package/dist/commonjs/v3/sessionStreams/manager.test.d.ts +0 -1
  141. package/dist/commonjs/v3/sessionStreams/manager.test.js +0 -375
  142. package/dist/commonjs/v3/sessionStreams/manager.test.js.map +0 -1
  143. package/dist/commonjs/v3/sessionStreams/router.test.d.ts +0 -1
  144. package/dist/commonjs/v3/sessionStreams/router.test.js +0 -463
  145. package/dist/commonjs/v3/sessionStreams/router.test.js.map +0 -1
  146. package/dist/commonjs/v3/taskContext/index.test.d.ts +0 -1
  147. package/dist/commonjs/v3/taskContext/index.test.js +0 -73
  148. package/dist/commonjs/v3/taskContext/index.test.js.map +0 -1
  149. package/dist/commonjs/v3/taskContext/otelProcessors.test.d.ts +0 -1
  150. package/dist/commonjs/v3/taskContext/otelProcessors.test.js +0 -109
  151. package/dist/commonjs/v3/taskContext/otelProcessors.test.js.map +0 -1
  152. package/dist/commonjs/v3/telnetLogServer.test.d.ts +0 -1
  153. package/dist/commonjs/v3/telnetLogServer.test.js +0 -144
  154. package/dist/commonjs/v3/telnetLogServer.test.js.map +0 -1
  155. package/dist/commonjs/v3/utils/reconnectBackoff.test.d.ts +0 -1
  156. package/dist/commonjs/v3/utils/reconnectBackoff.test.js +0 -76
  157. package/dist/commonjs/v3/utils/reconnectBackoff.test.js.map +0 -1
  158. package/dist/commonjs/v3/workloadDeploymentToken.test.d.ts +0 -1
  159. package/dist/commonjs/v3/workloadDeploymentToken.test.js +0 -110
  160. package/dist/commonjs/v3/workloadDeploymentToken.test.js.map +0 -1
  161. package/dist/esm/v3/apiClient/bulkActions.test.d.ts +0 -1
  162. package/dist/esm/v3/apiClient/bulkActions.test.js +0 -149
  163. package/dist/esm/v3/apiClient/bulkActions.test.js.map +0 -1
  164. package/dist/esm/v3/apiClient/refreshAccessToken.test.d.ts +0 -1
  165. package/dist/esm/v3/apiClient/refreshAccessToken.test.js +0 -53
  166. package/dist/esm/v3/apiClient/refreshAccessToken.test.js.map +0 -1
  167. package/dist/esm/v3/apiClient/runStream.test.d.ts +0 -1
  168. package/dist/esm/v3/apiClient/runStream.test.js +0 -823
  169. package/dist/esm/v3/apiClient/runStream.test.js.map +0 -1
  170. package/dist/esm/v3/apiClient/streamBatchItems.test.d.ts +0 -1
  171. package/dist/esm/v3/apiClient/streamBatchItems.test.js +0 -406
  172. package/dist/esm/v3/apiClient/streamBatchItems.test.js.map +0 -1
  173. package/dist/esm/v3/apiKeys.test.d.ts +0 -1
  174. package/dist/esm/v3/apiKeys.test.js +0 -17
  175. package/dist/esm/v3/apiKeys.test.js.map +0 -1
  176. package/dist/esm/v3/apps/exec.test.d.ts +0 -1
  177. package/dist/esm/v3/apps/exec.test.js +0 -21
  178. package/dist/esm/v3/apps/exec.test.js.map +0 -1
  179. package/dist/esm/v3/build/flags.test.d.ts +0 -1
  180. package/dist/esm/v3/build/flags.test.js +0 -48
  181. package/dist/esm/v3/build/flags.test.js.map +0 -1
  182. package/dist/esm/v3/build/runtime.test.d.ts +0 -1
  183. package/dist/esm/v3/build/runtime.test.js +0 -42
  184. package/dist/esm/v3/build/runtime.test.js.map +0 -1
  185. package/dist/esm/v3/errors.test.d.ts +0 -1
  186. package/dist/esm/v3/errors.test.js +0 -34
  187. package/dist/esm/v3/errors.test.js.map +0 -1
  188. package/dist/esm/v3/externalDeploymentId.test.d.ts +0 -1
  189. package/dist/esm/v3/externalDeploymentId.test.js +0 -171
  190. package/dist/esm/v3/externalDeploymentId.test.js.map +0 -1
  191. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.d.ts +0 -1
  192. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js +0 -42
  193. package/dist/esm/v3/idempotency-key-catalog/inMemoryIdempotencyKeyCatalog.test.js.map +0 -1
  194. package/dist/esm/v3/idempotencyKeys.test.d.ts +0 -1
  195. package/dist/esm/v3/idempotencyKeys.test.js +0 -190
  196. package/dist/esm/v3/idempotencyKeys.test.js.map +0 -1
  197. package/dist/esm/v3/isomorphic/friendlyId.test.d.ts +0 -1
  198. package/dist/esm/v3/isomorphic/friendlyId.test.js +0 -495
  199. package/dist/esm/v3/isomorphic/friendlyId.test.js.map +0 -1
  200. package/dist/esm/v3/isomorphic/runOpsResidency.test.d.ts +0 -1
  201. package/dist/esm/v3/isomorphic/runOpsResidency.test.js +0 -139
  202. package/dist/esm/v3/isomorphic/runOpsResidency.test.js.map +0 -1
  203. package/dist/esm/v3/isomorphic/waitpointMint.test.d.ts +0 -1
  204. package/dist/esm/v3/isomorphic/waitpointMint.test.js +0 -95
  205. package/dist/esm/v3/isomorphic/waitpointMint.test.js.map +0 -1
  206. package/dist/esm/v3/machines/max-old-space.test.d.ts +0 -1
  207. package/dist/esm/v3/machines/max-old-space.test.js +0 -42
  208. package/dist/esm/v3/machines/max-old-space.test.js.map +0 -1
  209. package/dist/esm/v3/otel/tracingSDK.test.d.ts +0 -1
  210. package/dist/esm/v3/otel/tracingSDK.test.js +0 -172
  211. package/dist/esm/v3/otel/tracingSDK.test.js.map +0 -1
  212. package/dist/esm/v3/otel/tracingSDKShutdown.test.d.ts +0 -1
  213. package/dist/esm/v3/otel/tracingSDKShutdown.test.js +0 -16
  214. package/dist/esm/v3/otel/tracingSDKShutdown.test.js.map +0 -1
  215. package/dist/esm/v3/realtimeStreams/manager.test.d.ts +0 -1
  216. package/dist/esm/v3/realtimeStreams/manager.test.js +0 -87
  217. package/dist/esm/v3/realtimeStreams/manager.test.js.map +0 -1
  218. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.d.ts +0 -1
  219. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js +0 -66
  220. package/dist/esm/v3/realtimeStreams/streamsWriterV2.test.js.map +0 -1
  221. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.d.ts +0 -1
  222. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.js +0 -672
  223. package/dist/esm/v3/runEngineWorker/supervisor/consumerPool.test.js.map +0 -1
  224. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.d.ts +0 -1
  225. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.js +0 -75
  226. package/dist/esm/v3/runEngineWorker/supervisor/queueConsumer.test.js.map +0 -1
  227. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.d.ts +0 -1
  228. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js +0 -291
  229. package/dist/esm/v3/runEngineWorker/supervisor/queueMetricsProcessor.test.js.map +0 -1
  230. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.d.ts +0 -1
  231. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.js +0 -233
  232. package/dist/esm/v3/runEngineWorker/supervisor/scalingStrategies.test.js.map +0 -1
  233. package/dist/esm/v3/schemas/api-type.test.d.ts +0 -1
  234. package/dist/esm/v3/schemas/api-type.test.js +0 -356
  235. package/dist/esm/v3/schemas/api-type.test.js.map +0 -1
  236. package/dist/esm/v3/schemas/batchItemNDJSON.test.d.ts +0 -1
  237. package/dist/esm/v3/schemas/batchItemNDJSON.test.js +0 -77
  238. package/dist/esm/v3/schemas/batchItemNDJSON.test.js.map +0 -1
  239. package/dist/esm/v3/schemas/idempotencyKey.test.d.ts +0 -1
  240. package/dist/esm/v3/schemas/idempotencyKey.test.js +0 -155
  241. package/dist/esm/v3/schemas/idempotencyKey.test.js.map +0 -1
  242. package/dist/esm/v3/schemas/scheduleWindow.test.d.ts +0 -1
  243. package/dist/esm/v3/schemas/scheduleWindow.test.js +0 -50
  244. package/dist/esm/v3/schemas/scheduleWindow.test.js.map +0 -1
  245. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.d.ts +0 -1
  246. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.js +0 -102
  247. package/dist/esm/v3/schemas/triggerExternalDeploymentId.test.js.map +0 -1
  248. package/dist/esm/v3/serverOnly/shutdownManager.test.d.ts +0 -1
  249. package/dist/esm/v3/serverOnly/shutdownManager.test.js +0 -137
  250. package/dist/esm/v3/serverOnly/shutdownManager.test.js.map +0 -1
  251. package/dist/esm/v3/sessionStreams/manager.test.d.ts +0 -1
  252. package/dist/esm/v3/sessionStreams/manager.test.js +0 -373
  253. package/dist/esm/v3/sessionStreams/manager.test.js.map +0 -1
  254. package/dist/esm/v3/sessionStreams/router.test.d.ts +0 -1
  255. package/dist/esm/v3/sessionStreams/router.test.js +0 -461
  256. package/dist/esm/v3/sessionStreams/router.test.js.map +0 -1
  257. package/dist/esm/v3/taskContext/index.test.d.ts +0 -1
  258. package/dist/esm/v3/taskContext/index.test.js +0 -71
  259. package/dist/esm/v3/taskContext/index.test.js.map +0 -1
  260. package/dist/esm/v3/taskContext/otelProcessors.test.d.ts +0 -1
  261. package/dist/esm/v3/taskContext/otelProcessors.test.js +0 -107
  262. package/dist/esm/v3/taskContext/otelProcessors.test.js.map +0 -1
  263. package/dist/esm/v3/telnetLogServer.test.d.ts +0 -1
  264. package/dist/esm/v3/telnetLogServer.test.js +0 -139
  265. package/dist/esm/v3/telnetLogServer.test.js.map +0 -1
  266. package/dist/esm/v3/utils/reconnectBackoff.test.d.ts +0 -1
  267. package/dist/esm/v3/utils/reconnectBackoff.test.js +0 -74
  268. package/dist/esm/v3/utils/reconnectBackoff.test.js.map +0 -1
  269. package/dist/esm/v3/workloadDeploymentToken.test.d.ts +0 -1
  270. package/dist/esm/v3/workloadDeploymentToken.test.js +0 -108
  271. package/dist/esm/v3/workloadDeploymentToken.test.js.map +0 -1
@@ -1,233 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { NoneScalingStrategy, SmoothScalingStrategy, AggressiveScalingStrategy, } from "./scalingStrategies.js";
3
- import { QueueMetricsProcessor } from "./queueMetricsProcessor.js";
4
- describe("Scaling Strategies", () => {
5
- const baseOptions = {
6
- minConsumerCount: 1,
7
- maxConsumerCount: 20,
8
- targetRatio: 1.0,
9
- };
10
- function createMetricsProcessor(smoothedValue) {
11
- const processor = new QueueMetricsProcessor({ ewmaAlpha: 0.3, batchWindowMs: 1000 });
12
- // Initialize processor with the target smoothed value
13
- processor.addSample(smoothedValue);
14
- processor.processBatch();
15
- return processor;
16
- }
17
- describe("NoneScalingStrategy", () => {
18
- const strategy = new NoneScalingStrategy(baseOptions);
19
- it("should always return current count (static mode)", () => {
20
- expect(strategy.calculateTargetCount(5)).toBe(5);
21
- expect(strategy.calculateTargetCount(1)).toBe(1);
22
- expect(strategy.calculateTargetCount(10)).toBe(10);
23
- // Clamping still applies
24
- expect(strategy.calculateTargetCount(25)).toBe(20); // Clamped to max
25
- expect(strategy.calculateTargetCount(0)).toBe(1); // Clamped to min
26
- });
27
- it("should have correct name", () => {
28
- expect(strategy.name).toBe("none");
29
- });
30
- it("should handle zero current count", () => {
31
- // Should clamp to minConsumerCount
32
- const result = strategy.calculateTargetCount(0);
33
- expect(result).toBe(1);
34
- });
35
- });
36
- describe("SmoothScalingStrategy", () => {
37
- it("should calculate target based on smoothed queue length", () => {
38
- const metricsProcessor = createMetricsProcessor(10); // smoothed value = 10
39
- const strategy = new SmoothScalingStrategy({ ...baseOptions, metricsProcessor });
40
- // With targetRatio=1.0, target consumers = ceil(10/1.0) = 10
41
- // With dampingFactor=0.7 and currentCount=5:
42
- // dampedTarget = 5 + (10 - 5) * 0.7 = 5 + 3.5 = 8.5 → 9
43
- const result = strategy.calculateTargetCount(5);
44
- expect(result).toBe(9);
45
- });
46
- it("should apply damping factor correctly", () => {
47
- const metricsProcessor = createMetricsProcessor(20); // smoothed value = 20
48
- const strategy = new SmoothScalingStrategy({
49
- ...baseOptions,
50
- metricsProcessor,
51
- dampingFactor: 0.5,
52
- }); // 50% damping
53
- // With targetRatio=1.0, target consumers = ceil(20/1.0) = 20
54
- // With dampingFactor=0.5 and currentCount=5:
55
- // dampedTarget = 5 + (20 - 5) * 0.5 = 5 + 7.5 = 12.5 → 13
56
- const result = strategy.calculateTargetCount(5);
57
- expect(result).toBe(13);
58
- });
59
- it("should handle zero current count", () => {
60
- const metricsProcessor = createMetricsProcessor(5);
61
- const strategy = new SmoothScalingStrategy({ ...baseOptions, metricsProcessor });
62
- // With smoothedQueueLength=5, targetRatio=1.0:
63
- // targetConsumers = ceil(5/1.0) = 5
64
- // dampedTarget = 0 + (5 - 0) * 0.7 = 3.5 → 4
65
- const result = strategy.calculateTargetCount(0);
66
- expect(result).toBe(4);
67
- });
68
- it("should validate damping factor", () => {
69
- const metricsProcessor = createMetricsProcessor(10);
70
- expect(() => new SmoothScalingStrategy({
71
- ...baseOptions,
72
- metricsProcessor,
73
- dampingFactor: -0.1,
74
- })).toThrow("dampingFactor must be between 0 and 1");
75
- expect(() => new SmoothScalingStrategy({
76
- ...baseOptions,
77
- metricsProcessor,
78
- dampingFactor: 1.1,
79
- })).toThrow("dampingFactor must be between 0 and 1");
80
- expect(() => new SmoothScalingStrategy({
81
- ...baseOptions,
82
- metricsProcessor,
83
- dampingFactor: 0,
84
- })).not.toThrow();
85
- expect(() => new SmoothScalingStrategy({
86
- ...baseOptions,
87
- metricsProcessor,
88
- dampingFactor: 1,
89
- })).not.toThrow();
90
- });
91
- it("should handle zero current count", () => {
92
- const metricsProcessor = createMetricsProcessor(10);
93
- const strategy = new SmoothScalingStrategy({ ...baseOptions, metricsProcessor });
94
- // With smoothedQueueLength=10, targetRatio=1.0:
95
- // targetConsumers = ceil(10/1.0) = 10
96
- // dampedTarget = 0 + (10 - 0) * 0.7 = 7
97
- const result = strategy.calculateTargetCount(0);
98
- expect(result).toBe(7);
99
- });
100
- });
101
- describe("AggressiveScalingStrategy", () => {
102
- it("should scale down when under-utilized", () => {
103
- // queuePerConsumer = 2/5 = 0.4, scaleDownThreshold = 1.0 * 0.5 = 0.5
104
- // Under-utilized since 0.4 < 0.5
105
- const metricsProcessor = createMetricsProcessor(2);
106
- const strategy = new AggressiveScalingStrategy({ ...baseOptions, metricsProcessor });
107
- const result = strategy.calculateTargetCount(5);
108
- expect(result).toBeLessThan(5);
109
- expect(result).toBeGreaterThanOrEqual(baseOptions.minConsumerCount);
110
- });
111
- it("should maintain count when in optimal zone", () => {
112
- // queuePerConsumer = 5/5 = 1.0
113
- // Optimal zone: 0.5 < 1.0 < 2.0
114
- const metricsProcessor = createMetricsProcessor(5);
115
- const strategy = new AggressiveScalingStrategy({ ...baseOptions, metricsProcessor });
116
- const result = strategy.calculateTargetCount(5);
117
- expect(result).toBe(5);
118
- });
119
- it("should scale up when over-utilized", () => {
120
- // queuePerConsumer = 15/5 = 3.0, scaleUpThreshold = 1.0 * 2.0 = 2.0
121
- // Over-utilized since 3.0 > 2.0
122
- const metricsProcessor = createMetricsProcessor(15);
123
- const strategy = new AggressiveScalingStrategy({ ...baseOptions, metricsProcessor });
124
- const result = strategy.calculateTargetCount(5);
125
- expect(result).toBeGreaterThan(5);
126
- expect(result).toBeLessThanOrEqual(baseOptions.maxConsumerCount);
127
- });
128
- it("should scale aggressively for critical load", () => {
129
- // queuePerConsumer = 25/5 = 5.0 (critical: 5x target ratio)
130
- const metricsProcessor = createMetricsProcessor(25);
131
- const strategy = new AggressiveScalingStrategy({ ...baseOptions, metricsProcessor });
132
- const result = strategy.calculateTargetCount(5);
133
- // Should apply 50% scale factor: ceil(5 * 1.5) = 8
134
- // But capped by 50% max increment: 5 + ceil(5 * 0.5) = 5 + 3 = 8
135
- expect(result).toBe(8);
136
- });
137
- it("should respect max consumer count", () => {
138
- const metricsProcessor = createMetricsProcessor(50); // Very high load
139
- const strategy = new AggressiveScalingStrategy({
140
- ...baseOptions,
141
- maxConsumerCount: 6,
142
- metricsProcessor,
143
- });
144
- const result = strategy.calculateTargetCount(5);
145
- expect(result).toBeLessThanOrEqual(6);
146
- });
147
- it("should respect min consumer count", () => {
148
- const metricsProcessor = createMetricsProcessor(0.1); // Very low load
149
- const strategy = new AggressiveScalingStrategy({
150
- ...baseOptions,
151
- minConsumerCount: 3,
152
- metricsProcessor,
153
- });
154
- const result = strategy.calculateTargetCount(5);
155
- expect(result).toBeGreaterThanOrEqual(3);
156
- });
157
- it("should return thresholds", () => {
158
- const metricsProcessor = createMetricsProcessor(10);
159
- const strategy = new AggressiveScalingStrategy({ ...baseOptions, metricsProcessor });
160
- const thresholds = strategy.getThresholds(1.0);
161
- expect(thresholds).toEqual({
162
- scaleDownThreshold: 0.5,
163
- scaleUpThreshold: 2.0,
164
- criticalThreshold: 5.0,
165
- highThreshold: 3.0,
166
- });
167
- });
168
- it("should handle zero current count without division by zero", () => {
169
- const metricsProcessor = createMetricsProcessor(10);
170
- const strategy = new AggressiveScalingStrategy({ ...baseOptions, metricsProcessor });
171
- // Should use (currentCount || 1) to prevent division by zero
172
- // queuePerConsumer = 10 / 1 = 10 (not 10 / 0)
173
- // This is over-utilized (10 > 2.0), should scale up
174
- const result = strategy.calculateTargetCount(0);
175
- expect(result).toBeGreaterThan(0);
176
- expect(result).toBeLessThanOrEqual(baseOptions.maxConsumerCount);
177
- });
178
- it("should handle zero queue with zero consumers", () => {
179
- const metricsProcessor = createMetricsProcessor(0);
180
- const strategy = new AggressiveScalingStrategy({ ...baseOptions, metricsProcessor });
181
- // queuePerConsumer = 0 / 1 = 0
182
- // This is under-utilized (0 < 0.5), should scale down
183
- // But already at 0, so should return minConsumerCount
184
- const result = strategy.calculateTargetCount(0);
185
- expect(result).toBe(baseOptions.minConsumerCount);
186
- });
187
- });
188
- describe("Integration scenarios", () => {
189
- it("should handle gradual load increase with smooth strategy", () => {
190
- const metricsProcessor = createMetricsProcessor(2);
191
- const strategy = new SmoothScalingStrategy({ ...baseOptions, metricsProcessor });
192
- let currentCount = 2;
193
- // Gradual increase: 2 → 6 → 10 → 15
194
- const loads = [2, 6, 10, 15];
195
- const results = [];
196
- for (const load of loads) {
197
- // Update the processor with the new load
198
- metricsProcessor.addSample(load);
199
- metricsProcessor.processBatch();
200
- const target = strategy.calculateTargetCount(currentCount);
201
- results.push(target);
202
- currentCount = target;
203
- }
204
- // Should show gradual increase due to damping
205
- expect(results[0]).toBeLessThan(results[1]);
206
- expect(results[1]).toBeLessThan(results[2]);
207
- expect(results[2]).toBeLessThan(results[3]);
208
- // But not immediate jumps due to damping
209
- expect(results[1] - results[0]).toBeLessThan(loads[1] - loads[0]);
210
- });
211
- it("should handle load spike with aggressive strategy", () => {
212
- let currentCount = 3;
213
- // Sudden spike from normal to critical
214
- const normalLoad = 3; // queuePerConsumer = 1.0 (optimal)
215
- const spikeLoad = 15; // queuePerConsumer = 5.0 (critical)
216
- const normalProcessor = createMetricsProcessor(normalLoad);
217
- const normalStrategy = new AggressiveScalingStrategy({
218
- ...baseOptions,
219
- metricsProcessor: normalProcessor,
220
- });
221
- const normalTarget = normalStrategy.calculateTargetCount(currentCount);
222
- expect(normalTarget).toBe(3); // Should maintain
223
- const spikeProcessor = createMetricsProcessor(spikeLoad);
224
- const spikeStrategy = new AggressiveScalingStrategy({
225
- ...baseOptions,
226
- metricsProcessor: spikeProcessor,
227
- });
228
- const spikeTarget = spikeStrategy.calculateTargetCount(currentCount);
229
- expect(spikeTarget).toBeGreaterThan(3); // Should scale up aggressively
230
- });
231
- });
232
- });
233
- //# sourceMappingURL=scalingStrategies.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scalingStrategies.test.js","sourceRoot":"","sources":["../../../../../src/v3/runEngineWorker/supervisor/scalingStrategies.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,356 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { BatchItemNDJSON, InitializeDeploymentRequestBody, nodeMajor, TriggerTaskRequestBody, } from "./api.js";
3
- describe("nodeMajor", () => {
4
- it.each([
5
- ["node", "20.18.0", 20],
6
- ["node", "21.7.3", 21],
7
- ["node-22", "22.16.0", 22],
8
- ["node-24", "24.18.0", 24],
9
- ["bun", "1.3.3", undefined],
10
- ["node", null, undefined],
11
- ["node", "unknown", undefined],
12
- ])("resolves %s %s", (runtime, runtimeVersion, expected) => {
13
- expect(nodeMajor(runtime, runtimeVersion)).toBe(expected);
14
- });
15
- });
16
- describe("InitializeDeploymentRequestBody", () => {
17
- const base = { contentHash: "abc123" };
18
- describe("non-native build variant (isNativeBuild omitted or false)", () => {
19
- it("parses with only required fields", () => {
20
- const result = InitializeDeploymentRequestBody.safeParse(base);
21
- expect(result.success).toBe(true);
22
- if (result.success) {
23
- expect(result.data.isNativeBuild).toBe(false);
24
- }
25
- });
26
- it("parses with isNativeBuild explicitly false", () => {
27
- const result = InitializeDeploymentRequestBody.safeParse({ ...base, isNativeBuild: false });
28
- expect(result.success).toBe(true);
29
- });
30
- it("parses with optional base fields", () => {
31
- const result = InitializeDeploymentRequestBody.safeParse({
32
- ...base,
33
- userId: "user_1",
34
- type: "MANAGED",
35
- runtime: "node",
36
- initialStatus: "PENDING",
37
- });
38
- expect(result.success).toBe(true);
39
- });
40
- it("strips native-only fields when isNativeBuild is false", () => {
41
- const result = InitializeDeploymentRequestBody.safeParse({
42
- ...base,
43
- isNativeBuild: false,
44
- skipPromotion: true,
45
- });
46
- // Zod discriminatedUnion matches the non-native branch and strips unknown keys
47
- expect(result.success).toBe(true);
48
- if (result.success) {
49
- expect("skipPromotion" in result.data).toBe(false);
50
- }
51
- });
52
- });
53
- describe("native build variant (isNativeBuild: true)", () => {
54
- it("parses with isNativeBuild true", () => {
55
- const result = InitializeDeploymentRequestBody.safeParse({
56
- ...base,
57
- isNativeBuild: true,
58
- });
59
- expect(result.success).toBe(true);
60
- if (result.success) {
61
- expect(result.data.isNativeBuild).toBe(true);
62
- }
63
- });
64
- it("parses with native-specific optional fields", () => {
65
- const result = InitializeDeploymentRequestBody.safeParse({
66
- ...base,
67
- isNativeBuild: true,
68
- skipPromotion: true,
69
- artifactKey: "artifact_abc",
70
- configFilePath: "trigger.config.ts",
71
- skipEnqueue: true,
72
- });
73
- expect(result.success).toBe(true);
74
- if (result.success) {
75
- expect(result.data.skipPromotion).toBe(true);
76
- expect(result.data.artifactKey).toBe("artifact_abc");
77
- expect(result.data.configFilePath).toBe("trigger.config.ts");
78
- expect(result.data.skipEnqueue).toBe(true);
79
- }
80
- });
81
- it("skipEnqueue defaults to false when omitted", () => {
82
- const result = InitializeDeploymentRequestBody.safeParse({
83
- ...base,
84
- isNativeBuild: true,
85
- });
86
- expect(result.success).toBe(true);
87
- if (result.success) {
88
- expect(result.data.skipEnqueue).toBe(false);
89
- }
90
- });
91
- });
92
- describe("rejects invalid inputs", () => {
93
- it("rejects missing contentHash", () => {
94
- const result = InitializeDeploymentRequestBody.safeParse({});
95
- expect(result.success).toBe(false);
96
- });
97
- it("rejects invalid type enum value", () => {
98
- const result = InitializeDeploymentRequestBody.safeParse({
99
- ...base,
100
- type: "INVALID",
101
- });
102
- expect(result.success).toBe(false);
103
- });
104
- it("rejects invalid initialStatus enum value", () => {
105
- const result = InitializeDeploymentRequestBody.safeParse({
106
- ...base,
107
- initialStatus: "RUNNING",
108
- });
109
- expect(result.success).toBe(false);
110
- });
111
- });
112
- describe("externalId and force", () => {
113
- it("accepts an externalId on the non-native variant", () => {
114
- const result = InitializeDeploymentRequestBody.safeParse({
115
- ...base,
116
- externalId: "a1b2c3d4e5f6",
117
- });
118
- expect(result.success).toBe(true);
119
- if (result.success) {
120
- expect(result.data.externalId).toBe("a1b2c3d4e5f6");
121
- }
122
- });
123
- it("accepts an externalId on the native variant", () => {
124
- const result = InitializeDeploymentRequestBody.safeParse({
125
- ...base,
126
- isNativeBuild: true,
127
- externalId: "a1b2c3d4e5f6",
128
- });
129
- expect(result.success).toBe(true);
130
- if (result.success) {
131
- expect(result.data.externalId).toBe("a1b2c3d4e5f6");
132
- }
133
- });
134
- it("accepts a free-form externalId, imposing no format", () => {
135
- for (const externalId of [
136
- "refs/tags/v1.2.3_rc:4-final",
137
- "release 2026-08-07",
138
- "build #4821",
139
- "déployé-en-français",
140
- "🚀 ship it",
141
- '{"run":42}',
142
- ]) {
143
- const result = InitializeDeploymentRequestBody.safeParse({ ...base, externalId });
144
- expect(result.success, `expected ${externalId} to be accepted`).toBe(true);
145
- if (result.success) {
146
- expect(result.data.externalId).toBe(externalId);
147
- }
148
- }
149
- });
150
- it("trims surrounding whitespace but keeps whitespace inside the value", () => {
151
- const result = InitializeDeploymentRequestBody.safeParse({
152
- ...base,
153
- externalId: " release 2026-08-07 ",
154
- });
155
- expect(result.success).toBe(true);
156
- if (result.success) {
157
- expect(result.data.externalId).toBe("release 2026-08-07");
158
- }
159
- });
160
- it("treats a blank externalId as absent", () => {
161
- const result = InitializeDeploymentRequestBody.safeParse({ ...base, externalId: "" });
162
- expect(result.success).toBe(true);
163
- if (result.success) {
164
- expect(result.data.externalId).toBeUndefined();
165
- }
166
- });
167
- it("treats a whitespace-only externalId as absent", () => {
168
- const result = InitializeDeploymentRequestBody.safeParse({ ...base, externalId: " " });
169
- expect(result.success).toBe(true);
170
- if (result.success) {
171
- expect(result.data.externalId).toBeUndefined();
172
- }
173
- });
174
- it("accepts an externalId of exactly 128 characters", () => {
175
- const result = InitializeDeploymentRequestBody.safeParse({
176
- ...base,
177
- externalId: "a".repeat(128),
178
- });
179
- expect(result.success).toBe(true);
180
- });
181
- it("accepts a 64-character SHA-256 commit hash", () => {
182
- const result = InitializeDeploymentRequestBody.safeParse({
183
- ...base,
184
- externalId: "a".repeat(64),
185
- });
186
- expect(result.success).toBe(true);
187
- });
188
- it("accepts a 40-character commit SHA", () => {
189
- const result = InitializeDeploymentRequestBody.safeParse({
190
- ...base,
191
- externalId: "e3f1c0a9b7d24e5f6081a2b3c4d5e6f708192a3b",
192
- });
193
- expect(result.success).toBe(true);
194
- });
195
- it("rejects an externalId longer than 128 characters", () => {
196
- const result = InitializeDeploymentRequestBody.safeParse({
197
- ...base,
198
- externalId: "a".repeat(129),
199
- });
200
- expect(result.success).toBe(false);
201
- });
202
- it("names the limit in the rejection message", () => {
203
- const result = InitializeDeploymentRequestBody.safeParse({
204
- ...base,
205
- externalId: "a".repeat(129),
206
- });
207
- expect(result.success).toBe(false);
208
- if (!result.success) {
209
- expect(result.error.issues[0]?.message).toBe("externalId must be at most 128 characters");
210
- }
211
- });
212
- it("measures the length limit after trimming", () => {
213
- const result = InitializeDeploymentRequestBody.safeParse({
214
- ...base,
215
- externalId: ` ${"a".repeat(128)} `,
216
- });
217
- expect(result.success).toBe(true);
218
- });
219
- it("leaves force absent when omitted, which reads as not forced", () => {
220
- const result = InitializeDeploymentRequestBody.safeParse(base);
221
- expect(result.success).toBe(true);
222
- if (result.success) {
223
- expect(result.data.force ?? false).toBe(false);
224
- }
225
- });
226
- it("accepts force alongside an externalId", () => {
227
- const result = InitializeDeploymentRequestBody.safeParse({
228
- ...base,
229
- externalId: "a1b2c3",
230
- force: true,
231
- });
232
- expect(result.success).toBe(true);
233
- if (result.success) {
234
- expect(result.data.force).toBe(true);
235
- }
236
- });
237
- it("rejects force without an externalId", () => {
238
- const result = InitializeDeploymentRequestBody.safeParse({ ...base, force: true });
239
- expect(result.success).toBe(false);
240
- if (!result.success) {
241
- expect(result.error.issues[0]?.message).toBe("force requires externalId");
242
- }
243
- });
244
- it("rejects force when the externalId is blank", () => {
245
- const result = InitializeDeploymentRequestBody.safeParse({
246
- ...base,
247
- externalId: " ",
248
- force: true,
249
- });
250
- expect(result.success).toBe(false);
251
- });
252
- it("rejects force without an externalId on the native variant too", () => {
253
- const result = InitializeDeploymentRequestBody.safeParse({
254
- ...base,
255
- isNativeBuild: true,
256
- force: true,
257
- });
258
- expect(result.success).toBe(false);
259
- });
260
- });
261
- describe("type-level checks", () => {
262
- it("native variant exposes native-specific fields", () => {
263
- const result = InitializeDeploymentRequestBody.parse({
264
- ...base,
265
- isNativeBuild: true,
266
- skipPromotion: true,
267
- });
268
- if (result.isNativeBuild === true) {
269
- const _skipPromotion = result.skipPromotion;
270
- const _artifactKey = result.artifactKey;
271
- const _configFilePath = result.configFilePath;
272
- expect(_skipPromotion).toBe(true);
273
- expect(_artifactKey).toBeUndefined();
274
- expect(_configFilePath).toBeUndefined();
275
- }
276
- });
277
- it("non-native variant narrows correctly", () => {
278
- const result = InitializeDeploymentRequestBody.parse(base);
279
- if (!result.isNativeBuild) {
280
- // Should only have base fields — native-specific fields should not exist
281
- const narrowed = result;
282
- expect(narrowed.contentHash).toBe("abc123");
283
- }
284
- });
285
- });
286
- });
287
- describe("TriggerTaskRequestBody", () => {
288
- it("accepts application/store payload as a non-empty string", () => {
289
- const result = TriggerTaskRequestBody.safeParse({
290
- payload: "packets/payloads/file.json",
291
- context: {},
292
- options: {
293
- payloadType: "application/store",
294
- },
295
- });
296
- expect(result.success).toBe(true);
297
- });
298
- it("rejects application/store payload when payload is not a string", () => {
299
- const result = TriggerTaskRequestBody.safeParse({
300
- payload: { foo: "bar" },
301
- context: {},
302
- options: {
303
- payloadType: "application/store",
304
- },
305
- });
306
- expect(result.success).toBe(false);
307
- });
308
- it("rejects application/store payload when payload is an empty string", () => {
309
- const result = TriggerTaskRequestBody.safeParse({
310
- payload: "",
311
- context: {},
312
- options: {
313
- payloadType: "application/store",
314
- },
315
- });
316
- expect(result.success).toBe(false);
317
- });
318
- it("accepts an optional payloadSize on the options", () => {
319
- const result = TriggerTaskRequestBody.safeParse({
320
- payload: "packets/payloads/file.json",
321
- context: {},
322
- options: {
323
- payloadType: "application/store",
324
- payloadSize: 512 * 1024,
325
- },
326
- });
327
- expect(result.success).toBe(true);
328
- expect(result.success && result.data.options?.payloadSize).toBe(512 * 1024);
329
- });
330
- it("rejects a negative payloadSize", () => {
331
- const result = TriggerTaskRequestBody.safeParse({
332
- payload: { foo: "bar" },
333
- context: {},
334
- options: {
335
- payloadSize: -1,
336
- },
337
- });
338
- expect(result.success).toBe(false);
339
- });
340
- });
341
- describe("BatchItemNDJSON", () => {
342
- it("accepts an optional payloadSize on a batch item's options", () => {
343
- const result = BatchItemNDJSON.safeParse({
344
- index: 0,
345
- task: "my-task",
346
- payload: "packets/payloads/file.json",
347
- options: {
348
- payloadType: "application/store",
349
- payloadSize: 256 * 1024,
350
- },
351
- });
352
- expect(result.success).toBe(true);
353
- expect(result.success && result.data.options?.payloadSize).toBe(256 * 1024);
354
- });
355
- });
356
- //# sourceMappingURL=api-type.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-type.test.js","sourceRoot":"","sources":["../../../../src/v3/schemas/api-type.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};