@milaboratories/pl-middle-layer 1.48.11 → 1.48.13

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 (589) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.114.0/helpers/usingCtx.cjs +59 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.114.0/helpers/usingCtx.js +58 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  4. package/dist/block_registry/index.cjs +3 -0
  5. package/dist/block_registry/index.d.ts +3 -4
  6. package/dist/block_registry/index.js +3 -0
  7. package/dist/block_registry/registry-v2-provider.cjs +18 -19
  8. package/dist/block_registry/registry-v2-provider.cjs.map +1 -1
  9. package/dist/block_registry/registry-v2-provider.d.ts +10 -6
  10. package/dist/block_registry/registry-v2-provider.js +17 -17
  11. package/dist/block_registry/registry-v2-provider.js.map +1 -1
  12. package/dist/block_registry/registry.cjs +188 -219
  13. package/dist/block_registry/registry.cjs.map +1 -1
  14. package/dist/block_registry/registry.d.ts +18 -14
  15. package/dist/block_registry/registry.js +184 -217
  16. package/dist/block_registry/registry.js.map +1 -1
  17. package/dist/block_registry/watcher.cjs +141 -170
  18. package/dist/block_registry/watcher.cjs.map +1 -1
  19. package/dist/block_registry/watcher.d.ts +26 -24
  20. package/dist/block_registry/watcher.js +139 -168
  21. package/dist/block_registry/watcher.js.map +1 -1
  22. package/dist/block_registry/well_known_registries.cjs +9 -8
  23. package/dist/block_registry/well_known_registries.cjs.map +1 -1
  24. package/dist/block_registry/well_known_registries.d.ts +8 -4
  25. package/dist/block_registry/well_known_registries.js +9 -7
  26. package/dist/block_registry/well_known_registries.js.map +1 -1
  27. package/dist/cfg_render/executor.cjs +136 -137
  28. package/dist/cfg_render/executor.cjs.map +1 -1
  29. package/dist/cfg_render/executor.js +133 -135
  30. package/dist/cfg_render/executor.js.map +1 -1
  31. package/dist/cfg_render/renderer.cjs +354 -462
  32. package/dist/cfg_render/renderer.cjs.map +1 -1
  33. package/dist/cfg_render/renderer.js +353 -460
  34. package/dist/cfg_render/renderer.js.map +1 -1
  35. package/dist/cfg_render/traverse.cjs +58 -60
  36. package/dist/cfg_render/traverse.cjs.map +1 -1
  37. package/dist/cfg_render/traverse.js +57 -58
  38. package/dist/cfg_render/traverse.js.map +1 -1
  39. package/dist/cfg_render/util.cjs +14 -19
  40. package/dist/cfg_render/util.cjs.map +1 -1
  41. package/dist/cfg_render/util.js +14 -17
  42. package/dist/cfg_render/util.js.map +1 -1
  43. package/dist/debug/index.cjs +13 -17
  44. package/dist/debug/index.cjs.map +1 -1
  45. package/dist/debug/index.js +13 -16
  46. package/dist/debug/index.js.map +1 -1
  47. package/dist/dev_env/index.cjs +60 -44
  48. package/dist/dev_env/index.cjs.map +1 -1
  49. package/dist/dev_env/index.js +57 -33
  50. package/dist/dev_env/index.js.map +1 -1
  51. package/dist/dev_env/util.cjs +12 -32
  52. package/dist/dev_env/util.cjs.map +1 -1
  53. package/dist/dev_env/util.js +10 -11
  54. package/dist/dev_env/util.js.map +1 -1
  55. package/dist/index.cjs +75 -74
  56. package/dist/index.d.ts +21 -13
  57. package/dist/index.js +25 -18
  58. package/dist/js_render/computable_context.cjs +432 -568
  59. package/dist/js_render/computable_context.cjs.map +1 -1
  60. package/dist/js_render/computable_context.js +431 -566
  61. package/dist/js_render/computable_context.js.map +1 -1
  62. package/dist/js_render/context.cjs +184 -237
  63. package/dist/js_render/context.cjs.map +1 -1
  64. package/dist/js_render/context.js +184 -235
  65. package/dist/js_render/context.js.map +1 -1
  66. package/dist/js_render/index.cjs +137 -156
  67. package/dist/js_render/index.cjs.map +1 -1
  68. package/dist/js_render/index.js +136 -154
  69. package/dist/js_render/index.js.map +1 -1
  70. package/dist/middle_layer/active_cfg.cjs +28 -35
  71. package/dist/middle_layer/active_cfg.cjs.map +1 -1
  72. package/dist/middle_layer/active_cfg.js +27 -33
  73. package/dist/middle_layer/active_cfg.js.map +1 -1
  74. package/dist/middle_layer/block.cjs +36 -42
  75. package/dist/middle_layer/block.cjs.map +1 -1
  76. package/dist/middle_layer/block.js +35 -40
  77. package/dist/middle_layer/block.js.map +1 -1
  78. package/dist/middle_layer/block_ctx.cjs +91 -133
  79. package/dist/middle_layer/block_ctx.cjs.map +1 -1
  80. package/dist/middle_layer/block_ctx.js +90 -131
  81. package/dist/middle_layer/block_ctx.js.map +1 -1
  82. package/dist/middle_layer/block_ctx_unsafe.cjs +20 -19
  83. package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -1
  84. package/dist/middle_layer/block_ctx_unsafe.js +20 -18
  85. package/dist/middle_layer/block_ctx_unsafe.js.map +1 -1
  86. package/dist/middle_layer/driver_kit.cjs +47 -51
  87. package/dist/middle_layer/driver_kit.cjs.map +1 -1
  88. package/dist/middle_layer/driver_kit.d.ts +31 -27
  89. package/dist/middle_layer/driver_kit.js +46 -49
  90. package/dist/middle_layer/driver_kit.js.map +1 -1
  91. package/dist/middle_layer/frontend_path.cjs +49 -55
  92. package/dist/middle_layer/frontend_path.cjs.map +1 -1
  93. package/dist/middle_layer/frontend_path.js +48 -53
  94. package/dist/middle_layer/frontend_path.js.map +1 -1
  95. package/dist/middle_layer/index.cjs +4 -0
  96. package/dist/middle_layer/index.d.ts +4 -5
  97. package/dist/middle_layer/index.js +4 -0
  98. package/dist/middle_layer/middle_layer.cjs +216 -245
  99. package/dist/middle_layer/middle_layer.cjs.map +1 -1
  100. package/dist/middle_layer/middle_layer.d.ts +95 -91
  101. package/dist/middle_layer/middle_layer.js +215 -243
  102. package/dist/middle_layer/middle_layer.js.map +1 -1
  103. package/dist/middle_layer/navigation_states.cjs +45 -38
  104. package/dist/middle_layer/navigation_states.cjs.map +1 -1
  105. package/dist/middle_layer/navigation_states.js +44 -36
  106. package/dist/middle_layer/navigation_states.js.map +1 -1
  107. package/dist/middle_layer/ops.cjs +56 -57
  108. package/dist/middle_layer/ops.cjs.map +1 -1
  109. package/dist/middle_layer/ops.d.ts +86 -96
  110. package/dist/middle_layer/ops.js +54 -55
  111. package/dist/middle_layer/ops.js.map +1 -1
  112. package/dist/middle_layer/project.cjs +497 -527
  113. package/dist/middle_layer/project.cjs.map +1 -1
  114. package/dist/middle_layer/project.d.ts +155 -152
  115. package/dist/middle_layer/project.js +494 -525
  116. package/dist/middle_layer/project.js.map +1 -1
  117. package/dist/middle_layer/project_list.cjs +45 -43
  118. package/dist/middle_layer/project_list.cjs.map +1 -1
  119. package/dist/middle_layer/project_list.js +45 -41
  120. package/dist/middle_layer/project_list.js.map +1 -1
  121. package/dist/middle_layer/project_overview.cjs +202 -240
  122. package/dist/middle_layer/project_overview.cjs.map +1 -1
  123. package/dist/middle_layer/project_overview.js +201 -238
  124. package/dist/middle_layer/project_overview.js.map +1 -1
  125. package/dist/middle_layer/project_overview_light.cjs +11 -14
  126. package/dist/middle_layer/project_overview_light.cjs.map +1 -1
  127. package/dist/middle_layer/project_overview_light.js +10 -12
  128. package/dist/middle_layer/project_overview_light.js.map +1 -1
  129. package/dist/middle_layer/render.cjs +14 -18
  130. package/dist/middle_layer/render.cjs.map +1 -1
  131. package/dist/middle_layer/render.js +13 -16
  132. package/dist/middle_layer/render.js.map +1 -1
  133. package/dist/middle_layer/types.d.ts +7 -10
  134. package/dist/middle_layer/util.cjs +26 -21
  135. package/dist/middle_layer/util.cjs.map +1 -1
  136. package/dist/middle_layer/util.js +25 -19
  137. package/dist/middle_layer/util.js.map +1 -1
  138. package/dist/model/args.cjs +44 -53
  139. package/dist/model/args.cjs.map +1 -1
  140. package/dist/model/args.js +44 -51
  141. package/dist/model/args.js.map +1 -1
  142. package/dist/model/block_pack_spec.cjs +9 -5
  143. package/dist/model/block_pack_spec.cjs.map +1 -1
  144. package/dist/model/block_pack_spec.d.ts +34 -30
  145. package/dist/model/block_pack_spec.js +9 -4
  146. package/dist/model/block_pack_spec.js.map +1 -1
  147. package/dist/model/frontend.d.ts +8 -5
  148. package/dist/model/index.d.ts +2 -3
  149. package/dist/model/project_helper.cjs +154 -193
  150. package/dist/model/project_helper.cjs.map +1 -1
  151. package/dist/model/project_helper.d.ts +96 -92
  152. package/dist/model/project_helper.js +153 -191
  153. package/dist/model/project_helper.js.map +1 -1
  154. package/dist/model/project_model.cjs +33 -32
  155. package/dist/model/project_model.cjs.map +1 -1
  156. package/dist/model/project_model.d.ts +13 -64
  157. package/dist/model/project_model.js +34 -30
  158. package/dist/model/project_model.js.map +1 -1
  159. package/dist/model/project_model_util.cjs +119 -158
  160. package/dist/model/project_model_util.cjs.map +1 -1
  161. package/dist/model/project_model_util.js +120 -156
  162. package/dist/model/project_model_util.js.map +1 -1
  163. package/dist/model/project_model_v1.cjs +3 -2
  164. package/dist/model/project_model_v1.cjs.map +1 -1
  165. package/dist/model/project_model_v1.js +3 -1
  166. package/dist/model/project_model_v1.js.map +1 -1
  167. package/dist/model/template_spec.d.ts +20 -16
  168. package/dist/mutator/block-pack/block_pack.cjs +200 -223
  169. package/dist/mutator/block-pack/block_pack.cjs.map +1 -1
  170. package/dist/mutator/block-pack/block_pack.d.ts +20 -19
  171. package/dist/mutator/block-pack/block_pack.js +199 -221
  172. package/dist/mutator/block-pack/block_pack.js.map +1 -1
  173. package/dist/mutator/block-pack/frontend.cjs +14 -16
  174. package/dist/mutator/block-pack/frontend.cjs.map +1 -1
  175. package/dist/mutator/block-pack/frontend.js +13 -14
  176. package/dist/mutator/block-pack/frontend.js.map +1 -1
  177. package/dist/mutator/context_export.cjs +18 -17
  178. package/dist/mutator/context_export.cjs.map +1 -1
  179. package/dist/mutator/context_export.js +17 -15
  180. package/dist/mutator/context_export.js.map +1 -1
  181. package/dist/mutator/migration.cjs +86 -112
  182. package/dist/mutator/migration.cjs.map +1 -1
  183. package/dist/mutator/migration.js +85 -110
  184. package/dist/mutator/migration.js.map +1 -1
  185. package/dist/mutator/project.cjs +903 -1240
  186. package/dist/mutator/project.cjs.map +1 -1
  187. package/dist/mutator/project.js +901 -1237
  188. package/dist/mutator/project.js.map +1 -1
  189. package/dist/mutator/template/direct_template_loader.cjs +104 -130
  190. package/dist/mutator/template/direct_template_loader.cjs.map +1 -1
  191. package/dist/mutator/template/direct_template_loader.js +103 -128
  192. package/dist/mutator/template/direct_template_loader.js.map +1 -1
  193. package/dist/mutator/template/direct_template_loader_v3.cjs +104 -124
  194. package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -1
  195. package/dist/mutator/template/direct_template_loader_v3.js +103 -122
  196. package/dist/mutator/template/direct_template_loader_v3.js.map +1 -1
  197. package/dist/mutator/template/render_block.cjs +26 -30
  198. package/dist/mutator/template/render_block.cjs.map +1 -1
  199. package/dist/mutator/template/render_block.js +26 -23
  200. package/dist/mutator/template/render_block.js.map +1 -1
  201. package/dist/mutator/template/render_template.cjs +25 -25
  202. package/dist/mutator/template/render_template.cjs.map +1 -1
  203. package/dist/mutator/template/render_template.d.ts +6 -3
  204. package/dist/mutator/template/render_template.js +24 -23
  205. package/dist/mutator/template/render_template.js.map +1 -1
  206. package/dist/mutator/template/template_loading.cjs +42 -46
  207. package/dist/mutator/template/template_loading.cjs.map +1 -1
  208. package/dist/mutator/template/template_loading.d.ts +16 -12
  209. package/dist/mutator/template/template_loading.js +40 -44
  210. package/dist/mutator/template/template_loading.js.map +1 -1
  211. package/dist/network_check/network_check.cjs +149 -194
  212. package/dist/network_check/network_check.cjs.map +1 -1
  213. package/dist/network_check/network_check.d.ts +50 -66
  214. package/dist/network_check/network_check.js +146 -190
  215. package/dist/network_check/network_check.js.map +1 -1
  216. package/dist/network_check/pings.cjs +71 -69
  217. package/dist/network_check/pings.cjs.map +1 -1
  218. package/dist/network_check/pings.js +71 -65
  219. package/dist/network_check/pings.js.map +1 -1
  220. package/dist/network_check/template.cjs +256 -273
  221. package/dist/network_check/template.cjs.map +1 -1
  222. package/dist/network_check/template.js +253 -265
  223. package/dist/network_check/template.js.map +1 -1
  224. package/dist/pool/data.cjs +205 -226
  225. package/dist/pool/data.cjs.map +1 -1
  226. package/dist/pool/data.d.ts +10 -27
  227. package/dist/pool/data.js +196 -209
  228. package/dist/pool/data.js.map +1 -1
  229. package/dist/pool/driver.cjs +180 -207
  230. package/dist/pool/driver.cjs.map +1 -1
  231. package/dist/pool/driver.d.ts +12 -17
  232. package/dist/pool/driver.js +178 -205
  233. package/dist/pool/driver.js.map +1 -1
  234. package/dist/pool/index.cjs +2 -0
  235. package/dist/pool/index.d.ts +2 -3
  236. package/dist/pool/index.js +2 -0
  237. package/dist/pool/p_object_collection.cjs +67 -79
  238. package/dist/pool/p_object_collection.cjs.map +1 -1
  239. package/dist/pool/p_object_collection.d.ts +7 -28
  240. package/dist/pool/p_object_collection.js +65 -77
  241. package/dist/pool/p_object_collection.js.map +1 -1
  242. package/dist/pool/result_pool.cjs +217 -262
  243. package/dist/pool/result_pool.cjs.map +1 -1
  244. package/dist/pool/result_pool.d.ts +4 -27
  245. package/dist/pool/result_pool.js +216 -260
  246. package/dist/pool/result_pool.js.map +1 -1
  247. package/dist/worker/WorkerManager.cjs +51 -49
  248. package/dist/worker/WorkerManager.cjs.map +1 -1
  249. package/dist/worker/WorkerManager.js +49 -47
  250. package/dist/worker/WorkerManager.js.map +1 -1
  251. package/dist/worker/worker.cjs +19 -15
  252. package/dist/worker/worker.cjs.map +1 -1
  253. package/dist/worker/worker.d.ts +1 -2
  254. package/dist/worker/worker.js +18 -13
  255. package/dist/worker/worker.js.map +1 -1
  256. package/dist/worker/workerApi.cjs +14 -18
  257. package/dist/worker/workerApi.cjs.map +1 -1
  258. package/dist/worker/workerApi.js +13 -16
  259. package/dist/worker/workerApi.js.map +1 -1
  260. package/package.json +24 -24
  261. package/src/mutator/template/template_render.test.ts +22 -18
  262. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.cjs +0 -77
  263. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.cjs.map +0 -1
  264. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.js +0 -74
  265. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.js.map +0 -1
  266. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.cjs +0 -162
  267. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.cjs.map +0 -1
  268. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.js +0 -160
  269. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.js.map +0 -1
  270. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.cjs +0 -576
  271. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.cjs.map +0 -1
  272. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.js +0 -574
  273. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.js.map +0 -1
  274. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.cjs +0 -337
  275. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.cjs.map +0 -1
  276. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.js +0 -335
  277. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.js.map +0 -1
  278. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.cjs +0 -22
  279. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.cjs.map +0 -1
  280. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.js +0 -20
  281. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.js.map +0 -1
  282. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.cjs +0 -73
  283. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.cjs.map +0 -1
  284. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.js +0 -71
  285. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.js.map +0 -1
  286. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.cjs +0 -78
  287. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.cjs.map +0 -1
  288. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.js +0 -76
  289. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.js.map +0 -1
  290. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.cjs +0 -23
  291. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.cjs.map +0 -1
  292. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.js +0 -21
  293. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.js.map +0 -1
  294. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.cjs +0 -19
  295. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.cjs.map +0 -1
  296. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.js +0 -17
  297. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.js.map +0 -1
  298. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.cjs +0 -21
  299. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.cjs.map +0 -1
  300. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.js +0 -19
  301. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.js.map +0 -1
  302. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.cjs +0 -74
  303. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.cjs.map +0 -1
  304. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.js +0 -72
  305. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.js.map +0 -1
  306. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.cjs +0 -19
  307. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.cjs.map +0 -1
  308. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.js +0 -17
  309. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.js.map +0 -1
  310. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.cjs +0 -19
  311. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.cjs.map +0 -1
  312. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.js +0 -17
  313. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.js.map +0 -1
  314. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.cjs +0 -19
  315. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.cjs.map +0 -1
  316. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.js +0 -17
  317. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.js.map +0 -1
  318. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.cjs +0 -35
  319. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.cjs.map +0 -1
  320. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.js +0 -33
  321. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.js.map +0 -1
  322. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.cjs +0 -19
  323. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.cjs.map +0 -1
  324. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.js +0 -17
  325. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.js.map +0 -1
  326. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.cjs +0 -19
  327. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.cjs.map +0 -1
  328. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.js +0 -17
  329. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.js.map +0 -1
  330. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.cjs +0 -19
  331. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.cjs.map +0 -1
  332. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.js +0 -17
  333. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.js.map +0 -1
  334. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.cjs +0 -19
  335. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.cjs.map +0 -1
  336. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.js +0 -17
  337. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.js.map +0 -1
  338. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.cjs +0 -19
  339. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.cjs.map +0 -1
  340. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.js +0 -17
  341. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.js.map +0 -1
  342. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.cjs +0 -32
  343. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.cjs.map +0 -1
  344. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.js +0 -30
  345. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.js.map +0 -1
  346. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.cjs +0 -19
  347. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.cjs.map +0 -1
  348. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.js +0 -17
  349. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.js.map +0 -1
  350. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.cjs +0 -22
  351. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.cjs.map +0 -1
  352. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.js +0 -20
  353. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.js.map +0 -1
  354. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.cjs +0 -19
  355. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.cjs.map +0 -1
  356. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.js +0 -17
  357. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.js.map +0 -1
  358. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.cjs +0 -19
  359. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.cjs.map +0 -1
  360. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.js +0 -17
  361. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.js.map +0 -1
  362. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.cjs +0 -26
  363. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.cjs.map +0 -1
  364. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.js +0 -24
  365. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.js.map +0 -1
  366. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.cjs +0 -19
  367. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.cjs.map +0 -1
  368. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.js +0 -17
  369. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.js.map +0 -1
  370. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.cjs +0 -22
  371. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.cjs.map +0 -1
  372. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.js +0 -20
  373. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.js.map +0 -1
  374. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.cjs +0 -145
  375. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.cjs.map +0 -1
  376. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.js +0 -143
  377. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.js.map +0 -1
  378. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.cjs +0 -49
  379. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.cjs.map +0 -1
  380. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.js +0 -47
  381. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.js.map +0 -1
  382. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.cjs +0 -23
  383. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.cjs.map +0 -1
  384. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.js +0 -21
  385. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.js.map +0 -1
  386. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.cjs +0 -37
  387. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.cjs.map +0 -1
  388. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.js +0 -35
  389. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.js.map +0 -1
  390. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.cjs +0 -54
  391. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.cjs.map +0 -1
  392. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.js +0 -52
  393. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.js.map +0 -1
  394. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.cjs +0 -29
  395. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.cjs.map +0 -1
  396. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.js +0 -27
  397. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.js.map +0 -1
  398. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.cjs +0 -240
  399. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.cjs.map +0 -1
  400. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.js +0 -238
  401. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.js.map +0 -1
  402. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.cjs +0 -20
  403. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.cjs.map +0 -1
  404. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.js +0 -18
  405. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.js.map +0 -1
  406. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.cjs +0 -23
  407. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.cjs.map +0 -1
  408. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.js +0 -21
  409. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.js.map +0 -1
  410. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.cjs +0 -20
  411. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.cjs.map +0 -1
  412. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.js +0 -18
  413. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.js.map +0 -1
  414. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.cjs +0 -42
  415. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.cjs.map +0 -1
  416. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.js +0 -40
  417. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.js.map +0 -1
  418. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.cjs +0 -41
  419. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.cjs.map +0 -1
  420. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.js +0 -39
  421. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.js.map +0 -1
  422. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.cjs +0 -79
  423. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.cjs.map +0 -1
  424. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.js +0 -77
  425. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.js.map +0 -1
  426. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.cjs +0 -103
  427. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.cjs.map +0 -1
  428. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.js +0 -101
  429. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.js.map +0 -1
  430. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.cjs +0 -64
  431. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.cjs.map +0 -1
  432. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.js +0 -62
  433. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.js.map +0 -1
  434. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.cjs +0 -266
  435. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.cjs.map +0 -1
  436. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.js +0 -264
  437. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.js.map +0 -1
  438. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.cjs +0 -24
  439. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.cjs.map +0 -1
  440. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.js +0 -22
  441. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.js.map +0 -1
  442. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.cjs +0 -27
  443. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.cjs.map +0 -1
  444. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.js +0 -25
  445. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.js.map +0 -1
  446. package/dist/_virtual/index.cjs +0 -8
  447. package/dist/_virtual/index.cjs.map +0 -1
  448. package/dist/_virtual/index.js +0 -6
  449. package/dist/_virtual/index.js.map +0 -1
  450. package/dist/_virtual/re.cjs +0 -6
  451. package/dist/_virtual/re.cjs.map +0 -1
  452. package/dist/_virtual/re.js +0 -4
  453. package/dist/_virtual/re.js.map +0 -1
  454. package/dist/block_registry/index.d.ts.map +0 -1
  455. package/dist/block_registry/registry-v2-provider.d.ts.map +0 -1
  456. package/dist/block_registry/registry.d.ts.map +0 -1
  457. package/dist/block_registry/registry.test.d.ts +0 -2
  458. package/dist/block_registry/registry.test.d.ts.map +0 -1
  459. package/dist/block_registry/watcher.d.ts.map +0 -1
  460. package/dist/block_registry/well_known_registries.d.ts.map +0 -1
  461. package/dist/cfg_render/executor.d.ts +0 -9
  462. package/dist/cfg_render/executor.d.ts.map +0 -1
  463. package/dist/cfg_render/executor.test.d.ts +0 -2
  464. package/dist/cfg_render/executor.test.d.ts.map +0 -1
  465. package/dist/cfg_render/operation.d.ts +0 -29
  466. package/dist/cfg_render/operation.d.ts.map +0 -1
  467. package/dist/cfg_render/renderer.d.ts +0 -6
  468. package/dist/cfg_render/renderer.d.ts.map +0 -1
  469. package/dist/cfg_render/traverse.d.ts +0 -3
  470. package/dist/cfg_render/traverse.d.ts.map +0 -1
  471. package/dist/cfg_render/util.d.ts +0 -5
  472. package/dist/cfg_render/util.d.ts.map +0 -1
  473. package/dist/debug/index.d.ts +0 -9
  474. package/dist/debug/index.d.ts.map +0 -1
  475. package/dist/dev_env/index.d.ts +0 -21
  476. package/dist/dev_env/index.d.ts.map +0 -1
  477. package/dist/dev_env/util.d.ts +0 -3
  478. package/dist/dev_env/util.d.ts.map +0 -1
  479. package/dist/index.cjs.map +0 -1
  480. package/dist/index.d.ts.map +0 -1
  481. package/dist/index.js.map +0 -1
  482. package/dist/js_render/computable_context.d.ts +0 -74
  483. package/dist/js_render/computable_context.d.ts.map +0 -1
  484. package/dist/js_render/context.d.ts +0 -73
  485. package/dist/js_render/context.d.ts.map +0 -1
  486. package/dist/js_render/index.d.ts +0 -57
  487. package/dist/js_render/index.d.ts.map +0 -1
  488. package/dist/middle_layer/active_cfg.d.ts +0 -6
  489. package/dist/middle_layer/active_cfg.d.ts.map +0 -1
  490. package/dist/middle_layer/block.d.ts +0 -10
  491. package/dist/middle_layer/block.d.ts.map +0 -1
  492. package/dist/middle_layer/block_ctx.d.ts +0 -23
  493. package/dist/middle_layer/block_ctx.d.ts.map +0 -1
  494. package/dist/middle_layer/block_ctx_unsafe.d.ts +0 -16
  495. package/dist/middle_layer/block_ctx_unsafe.d.ts.map +0 -1
  496. package/dist/middle_layer/driver_kit.d.ts.map +0 -1
  497. package/dist/middle_layer/frontend_path.d.ts +0 -6
  498. package/dist/middle_layer/frontend_path.d.ts.map +0 -1
  499. package/dist/middle_layer/index.d.ts.map +0 -1
  500. package/dist/middle_layer/middle_layer.d.ts.map +0 -1
  501. package/dist/middle_layer/navigation_states.d.ts +0 -10
  502. package/dist/middle_layer/navigation_states.d.ts.map +0 -1
  503. package/dist/middle_layer/ops.d.ts.map +0 -1
  504. package/dist/middle_layer/project.d.ts.map +0 -1
  505. package/dist/middle_layer/project_list.d.ts +0 -11
  506. package/dist/middle_layer/project_list.d.ts.map +0 -1
  507. package/dist/middle_layer/project_overview.d.ts +0 -8
  508. package/dist/middle_layer/project_overview.d.ts.map +0 -1
  509. package/dist/middle_layer/project_overview_light.d.ts +0 -8
  510. package/dist/middle_layer/project_overview_light.d.ts.map +0 -1
  511. package/dist/middle_layer/render.d.ts +0 -7
  512. package/dist/middle_layer/render.d.ts.map +0 -1
  513. package/dist/middle_layer/render.test.d.ts +0 -5
  514. package/dist/middle_layer/render.test.d.ts.map +0 -1
  515. package/dist/middle_layer/types.d.ts.map +0 -1
  516. package/dist/middle_layer/util.d.ts +0 -16
  517. package/dist/middle_layer/util.d.ts.map +0 -1
  518. package/dist/model/args.d.ts +0 -14
  519. package/dist/model/args.d.ts.map +0 -1
  520. package/dist/model/block_pack.d.ts +0 -8
  521. package/dist/model/block_pack.d.ts.map +0 -1
  522. package/dist/model/block_pack_spec.d.ts.map +0 -1
  523. package/dist/model/frontend.d.ts.map +0 -1
  524. package/dist/model/index.d.ts.map +0 -1
  525. package/dist/model/project_helper.d.ts.map +0 -1
  526. package/dist/model/project_model.d.ts.map +0 -1
  527. package/dist/model/project_model.test.d.ts +0 -2
  528. package/dist/model/project_model.test.d.ts.map +0 -1
  529. package/dist/model/project_model_util.d.ts +0 -43
  530. package/dist/model/project_model_util.d.ts.map +0 -1
  531. package/dist/model/project_model_util.test.d.ts +0 -2
  532. package/dist/model/project_model_util.test.d.ts.map +0 -1
  533. package/dist/model/project_model_v1.d.ts +0 -8
  534. package/dist/model/project_model_v1.d.ts.map +0 -1
  535. package/dist/model/template_spec.d.ts.map +0 -1
  536. package/dist/mutator/block-pack/block_pack.d.ts.map +0 -1
  537. package/dist/mutator/block-pack/block_pack.test.d.ts +0 -2
  538. package/dist/mutator/block-pack/block_pack.test.d.ts.map +0 -1
  539. package/dist/mutator/block-pack/frontend.d.ts +0 -4
  540. package/dist/mutator/block-pack/frontend.d.ts.map +0 -1
  541. package/dist/mutator/context_export.d.ts +0 -9
  542. package/dist/mutator/context_export.d.ts.map +0 -1
  543. package/dist/mutator/migration.d.ts +0 -9
  544. package/dist/mutator/migration.d.ts.map +0 -1
  545. package/dist/mutator/project-v3.test.d.ts +0 -2
  546. package/dist/mutator/project-v3.test.d.ts.map +0 -1
  547. package/dist/mutator/project.d.ts +0 -211
  548. package/dist/mutator/project.d.ts.map +0 -1
  549. package/dist/mutator/project.test.d.ts +0 -2
  550. package/dist/mutator/project.test.d.ts.map +0 -1
  551. package/dist/mutator/template/direct_template_loader.d.ts +0 -5
  552. package/dist/mutator/template/direct_template_loader.d.ts.map +0 -1
  553. package/dist/mutator/template/direct_template_loader_v3.d.ts +0 -15
  554. package/dist/mutator/template/direct_template_loader_v3.d.ts.map +0 -1
  555. package/dist/mutator/template/render_block.d.ts +0 -32
  556. package/dist/mutator/template/render_block.d.ts.map +0 -1
  557. package/dist/mutator/template/render_template.d.ts.map +0 -1
  558. package/dist/mutator/template/template_loading.d.ts.map +0 -1
  559. package/dist/mutator/template/template_render.test.d.ts +0 -2
  560. package/dist/mutator/template/template_render.test.d.ts.map +0 -1
  561. package/dist/network_check/network_check.d.ts.map +0 -1
  562. package/dist/network_check/network_check.test.d.ts +0 -2
  563. package/dist/network_check/network_check.test.d.ts.map +0 -1
  564. package/dist/network_check/pings.d.ts +0 -32
  565. package/dist/network_check/pings.d.ts.map +0 -1
  566. package/dist/network_check/template.d.ts +0 -57
  567. package/dist/network_check/template.d.ts.map +0 -1
  568. package/dist/network_check/template.test.d.ts +0 -2
  569. package/dist/network_check/template.test.d.ts.map +0 -1
  570. package/dist/network_check/test_utils.d.ts +0 -6
  571. package/dist/network_check/test_utils.d.ts.map +0 -1
  572. package/dist/pool/data.d.ts.map +0 -1
  573. package/dist/pool/driver.d.ts.map +0 -1
  574. package/dist/pool/index.d.ts.map +0 -1
  575. package/dist/pool/p_object_collection.d.ts.map +0 -1
  576. package/dist/pool/result_pool.d.ts.map +0 -1
  577. package/dist/test/block_packs.d.ts +0 -6
  578. package/dist/test/block_packs.d.ts.map +0 -1
  579. package/dist/test/explicit_templates.d.ts +0 -3
  580. package/dist/test/explicit_templates.d.ts.map +0 -1
  581. package/dist/test/known_templates.d.ts +0 -6
  582. package/dist/test/known_templates.d.ts.map +0 -1
  583. package/dist/test_env.d.ts +0 -6
  584. package/dist/test_env.d.ts.map +0 -1
  585. package/dist/worker/WorkerManager.d.ts +0 -12
  586. package/dist/worker/WorkerManager.d.ts.map +0 -1
  587. package/dist/worker/worker.d.ts.map +0 -1
  588. package/dist/worker/workerApi.d.ts +0 -15
  589. package/dist/worker/workerApi.d.ts.map +0 -1
@@ -1,107 +1,109 @@
1
- 'use strict';
2
-
3
- var promises = require('node:timers/promises');
4
- var undici = require('undici');
5
- var plClient = require('@milaboratories/pl-client');
1
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+ let undici = require("undici");
3
+ let _milaboratories_pl_client = require("@milaboratories/pl-client");
4
+ let node_timers_promises = require("node:timers/promises");
6
5
 
6
+ //#region src/network_check/pings.ts
7
7
  async function backendPings(ops, plConfig) {
8
- return await recordPings(ops.pingCheckDurationMs, ops.maxPingsPerSecond, async () => {
9
- const uaClient = await plClient.UnauthenticatedPlClient.build(plConfig);
10
- const response = await uaClient.ping();
11
- return JSON.stringify(response).slice(0, ops.bodyLimit) + "...";
12
- });
8
+ return await recordPings(ops.pingCheckDurationMs, ops.maxPingsPerSecond, async () => {
9
+ const response = await (await _milaboratories_pl_client.UnauthenticatedPlClient.build(plConfig)).ping();
10
+ return JSON.stringify(response).slice(0, ops.bodyLimit) + "...";
11
+ });
13
12
  }
14
13
  async function blockRegistryOverviewPings(ops, httpClient) {
15
- return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockOverviewPath, ops.blockRegistryUrl), ops, httpClient));
14
+ return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockOverviewPath, ops.blockRegistryUrl), ops, httpClient));
16
15
  }
17
16
  async function blockGARegistryOverviewPings(ops, httpClient) {
18
- return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockOverviewPath, ops.blockGARegistryUrl), ops, httpClient));
17
+ return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockOverviewPath, ops.blockGARegistryUrl), ops, httpClient));
19
18
  }
20
19
  async function blockRegistryUiPings(ops, httpClient) {
21
- return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockUiPath, ops.blockRegistryUrl), ops, httpClient));
20
+ return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockUiPath, ops.blockRegistryUrl), ops, httpClient));
22
21
  }
23
22
  async function blockGARegistryUiPings(ops, httpClient) {
24
- return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockUiPath, ops.blockGARegistryUrl), ops, httpClient));
23
+ return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockUiPath, ops.blockGARegistryUrl), ops, httpClient));
25
24
  }
26
25
  async function autoUpdateCdnPings(ops, httpClient) {
27
- return await recordPings(ops.autoUpdateCdnDurationMs, ops.maxAutoUpdateCdnChecksPerSecond, async () => await requestUrl(ops.autoUpdateCdnUrl, ops, httpClient));
26
+ return await recordPings(ops.autoUpdateCdnDurationMs, ops.maxAutoUpdateCdnChecksPerSecond, async () => await requestUrl(ops.autoUpdateCdnUrl, ops, httpClient));
28
27
  }
29
28
  /** Executes a body several times per second up to the given duration,
30
- * and returns results and elapsed time for every result. */
29
+ * and returns results and elapsed time for every result. */
31
30
  async function recordPings(pingCheckDurationMs, maxPingsPerSecond, body) {
32
- const startPings = Date.now();
33
- const reports = [];
34
- while (elapsed(startPings) < pingCheckDurationMs) {
35
- const startPing = Date.now();
36
- let response;
37
- try {
38
- response = { ok: true, value: await body() };
39
- }
40
- catch (e) {
41
- response = { ok: false, error: e };
42
- }
43
- const elapsedPing = elapsed(startPing);
44
- reports.push({
45
- elapsedMs: elapsedPing,
46
- response,
47
- });
48
- const sleepBetweenPings = 1000 / maxPingsPerSecond - elapsedPing;
49
- if (sleepBetweenPings > 0) {
50
- await promises.setTimeout(sleepBetweenPings);
51
- }
52
- }
53
- return reports;
31
+ const startPings = Date.now();
32
+ const reports = [];
33
+ while (elapsed(startPings) < pingCheckDurationMs) {
34
+ const startPing = Date.now();
35
+ let response;
36
+ try {
37
+ response = {
38
+ ok: true,
39
+ value: await body()
40
+ };
41
+ } catch (e) {
42
+ response = {
43
+ ok: false,
44
+ error: e
45
+ };
46
+ }
47
+ const elapsedPing = elapsed(startPing);
48
+ reports.push({
49
+ elapsedMs: elapsedPing,
50
+ response
51
+ });
52
+ const sleepBetweenPings = 1e3 / maxPingsPerSecond - elapsedPing;
53
+ if (sleepBetweenPings > 0) await (0, node_timers_promises.setTimeout)(sleepBetweenPings);
54
+ }
55
+ return reports;
54
56
  }
55
57
  async function requestUrl(url, ops, httpClient) {
56
- const { body: rawBody, statusCode } = await undici.request(url, {
57
- dispatcher: httpClient,
58
- headersTimeout: ops.httpTimeoutMs,
59
- bodyTimeout: ops.httpTimeoutMs,
60
- });
61
- const body = await rawBody.text();
62
- return {
63
- statusCode: statusCode,
64
- beginningOfBody: body.slice(0, ops.bodyLimit) + "...",
65
- };
58
+ const { body: rawBody, statusCode } = await (0, undici.request)(url, {
59
+ dispatcher: httpClient,
60
+ headersTimeout: ops.httpTimeoutMs,
61
+ bodyTimeout: ops.httpTimeoutMs
62
+ });
63
+ return {
64
+ statusCode,
65
+ beginningOfBody: (await rawBody.text()).slice(0, ops.bodyLimit) + "..."
66
+ };
66
67
  }
67
68
  function elapsed(startMs) {
68
- return Date.now() - startMs;
69
+ return Date.now() - startMs;
69
70
  }
70
71
  function reportToString(report) {
71
- const successes = report.filter((r) => r.response.ok);
72
- const errorsLen = report.length - successes.length;
73
- const { mean, median } = elapsedStat(report);
74
- const details = `
72
+ const successes = report.filter((r) => r.response.ok);
73
+ const errorsLen = report.length - successes.length;
74
+ const { mean, median } = elapsedStat(report);
75
+ const details = `
75
76
  total: ${report.length};
76
77
  successes: ${successes.length};
77
78
  errors: ${errorsLen};
78
79
  mean in ms: ${mean};
79
80
  median in ms: ${median};
80
81
  `;
81
- return {
82
- ok: errorsLen === 0,
83
- details,
84
- };
82
+ return {
83
+ ok: errorsLen === 0,
84
+ details
85
+ };
85
86
  }
86
87
  function elapsedStat(reports) {
87
- const checks = reports.map((p) => p.elapsedMs).sort();
88
- const mean = checks.reduce((sum, p) => sum + p) / checks.length;
89
- let median = undefined;
90
- if (checks.length > 0) {
91
- const mid = Math.floor(checks.length / 2);
92
- median = checks.length % 2 ? checks[mid] : (checks[mid - 1] + checks[mid]) / 2;
93
- }
94
- return { mean, median };
88
+ const checks = reports.map((p) => p.elapsedMs).sort();
89
+ const mean = checks.reduce((sum, p) => sum + p) / checks.length;
90
+ let median = void 0;
91
+ if (checks.length > 0) {
92
+ const mid = Math.floor(checks.length / 2);
93
+ median = checks.length % 2 ? checks[mid] : (checks[mid - 1] + checks[mid]) / 2;
94
+ }
95
+ return {
96
+ mean,
97
+ median
98
+ };
95
99
  }
96
100
 
101
+ //#endregion
97
102
  exports.autoUpdateCdnPings = autoUpdateCdnPings;
98
103
  exports.backendPings = backendPings;
99
104
  exports.blockGARegistryOverviewPings = blockGARegistryOverviewPings;
100
105
  exports.blockGARegistryUiPings = blockGARegistryUiPings;
101
106
  exports.blockRegistryOverviewPings = blockRegistryOverviewPings;
102
107
  exports.blockRegistryUiPings = blockRegistryUiPings;
103
- exports.elapsed = elapsed;
104
- exports.recordPings = recordPings;
105
108
  exports.reportToString = reportToString;
106
- exports.requestUrl = requestUrl;
107
- //# sourceMappingURL=pings.cjs.map
109
+ //# sourceMappingURL=pings.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pings.cjs","sources":["../../src/network_check/pings.ts"],"sourcesContent":["import type { ValueOrError } from \"@milaboratories/ts-helpers\";\nimport { setTimeout } from \"node:timers/promises\";\nimport { request } from \"undici\";\nimport type { Dispatcher } from \"undici\";\nimport type { CheckNetworkOpts } from \"./network_check\";\nimport { UnauthenticatedPlClient, type PlClientConfig } from \"@milaboratories/pl-client\";\n\n/** A report about one concrete ping to the service. */\nexport interface NetworkReport<T> {\n elapsedMs: number;\n response: ValueOrError<T>;\n}\n\nexport type HttpNetworkReport = NetworkReport<{\n statusCode: number;\n beginningOfBody: string;\n}>;\n\nexport async function backendPings(\n ops: CheckNetworkOpts,\n plConfig: PlClientConfig,\n): Promise<NetworkReport<string>[]> {\n return await recordPings(ops.pingCheckDurationMs, ops.maxPingsPerSecond, async () => {\n const uaClient = await UnauthenticatedPlClient.build(plConfig);\n const response = await uaClient.ping();\n return JSON.stringify(response).slice(0, ops.bodyLimit) + \"...\";\n });\n}\n\nexport async function blockRegistryOverviewPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () =>\n await requestUrl(new URL(ops.blockOverviewPath, ops.blockRegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockGARegistryOverviewPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () =>\n await requestUrl(new URL(ops.blockOverviewPath, ops.blockGARegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockRegistryUiPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () => await requestUrl(new URL(ops.blockUiPath, ops.blockRegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockGARegistryUiPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () => await requestUrl(new URL(ops.blockUiPath, ops.blockGARegistryUrl), ops, httpClient),\n );\n}\n\nexport async function autoUpdateCdnPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.autoUpdateCdnDurationMs,\n ops.maxAutoUpdateCdnChecksPerSecond,\n async () => await requestUrl(ops.autoUpdateCdnUrl, ops, httpClient),\n );\n}\n\n/** Executes a body several times per second up to the given duration,\n * and returns results and elapsed time for every result. */\nexport async function recordPings<T>(\n pingCheckDurationMs: number,\n maxPingsPerSecond: number,\n body: () => Promise<T>,\n): Promise<NetworkReport<T>[]> {\n const startPings = Date.now();\n const reports: NetworkReport<T>[] = [];\n\n while (elapsed(startPings) < pingCheckDurationMs) {\n const startPing = Date.now();\n let response: ValueOrError<T>;\n try {\n response = { ok: true, value: await body() };\n } catch (e) {\n response = { ok: false, error: e };\n }\n const elapsedPing = elapsed(startPing);\n\n reports.push({\n elapsedMs: elapsedPing,\n response,\n });\n\n const sleepBetweenPings = 1000 / maxPingsPerSecond - elapsedPing;\n\n if (sleepBetweenPings > 0) {\n await setTimeout(sleepBetweenPings);\n }\n }\n\n return reports;\n}\n\nexport async function requestUrl(url: string | URL, ops: CheckNetworkOpts, httpClient: Dispatcher) {\n const { body: rawBody, statusCode } = await request(url, {\n dispatcher: httpClient,\n headersTimeout: ops.httpTimeoutMs,\n bodyTimeout: ops.httpTimeoutMs,\n });\n const body = await rawBody.text();\n\n return {\n statusCode: statusCode,\n beginningOfBody: body.slice(0, ops.bodyLimit) + \"...\",\n };\n}\n\nexport function elapsed(startMs: number): number {\n return Date.now() - startMs;\n}\n\nexport function reportToString<T>(report: NetworkReport<T>[]): {\n ok: boolean;\n details: string;\n} {\n const successes = report.filter((r) => r.response.ok);\n const errorsLen = report.length - successes.length;\n const { mean, median } = elapsedStat(report);\n\n const details = `\n total: ${report.length};\n successes: ${successes.length};\n errors: ${errorsLen};\n mean in ms: ${mean};\n median in ms: ${median};\n `;\n\n return {\n ok: errorsLen === 0,\n details,\n };\n}\n\nfunction elapsedStat(reports: { elapsedMs: number }[]) {\n const checks = reports.map((p) => p.elapsedMs).sort();\n const mean = checks.reduce((sum, p) => sum + p) / checks.length;\n\n let median = undefined;\n if (checks.length > 0) {\n const mid = Math.floor(checks.length / 2);\n median = checks.length % 2 ? checks[mid] : (checks[mid - 1] + checks[mid]) / 2;\n }\n\n return { mean, median };\n}\n"],"names":["UnauthenticatedPlClient","setTimeout","request"],"mappings":"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"}
1
+ {"version":3,"file":"pings.cjs","names":["UnauthenticatedPlClient"],"sources":["../../src/network_check/pings.ts"],"sourcesContent":["import type { ValueOrError } from \"@milaboratories/ts-helpers\";\nimport { setTimeout } from \"node:timers/promises\";\nimport { request } from \"undici\";\nimport type { Dispatcher } from \"undici\";\nimport type { CheckNetworkOpts } from \"./network_check\";\nimport { UnauthenticatedPlClient, type PlClientConfig } from \"@milaboratories/pl-client\";\n\n/** A report about one concrete ping to the service. */\nexport interface NetworkReport<T> {\n elapsedMs: number;\n response: ValueOrError<T>;\n}\n\nexport type HttpNetworkReport = NetworkReport<{\n statusCode: number;\n beginningOfBody: string;\n}>;\n\nexport async function backendPings(\n ops: CheckNetworkOpts,\n plConfig: PlClientConfig,\n): Promise<NetworkReport<string>[]> {\n return await recordPings(ops.pingCheckDurationMs, ops.maxPingsPerSecond, async () => {\n const uaClient = await UnauthenticatedPlClient.build(plConfig);\n const response = await uaClient.ping();\n return JSON.stringify(response).slice(0, ops.bodyLimit) + \"...\";\n });\n}\n\nexport async function blockRegistryOverviewPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () =>\n await requestUrl(new URL(ops.blockOverviewPath, ops.blockRegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockGARegistryOverviewPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () =>\n await requestUrl(new URL(ops.blockOverviewPath, ops.blockGARegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockRegistryUiPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () => await requestUrl(new URL(ops.blockUiPath, ops.blockRegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockGARegistryUiPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () => await requestUrl(new URL(ops.blockUiPath, ops.blockGARegistryUrl), ops, httpClient),\n );\n}\n\nexport async function autoUpdateCdnPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.autoUpdateCdnDurationMs,\n ops.maxAutoUpdateCdnChecksPerSecond,\n async () => await requestUrl(ops.autoUpdateCdnUrl, ops, httpClient),\n );\n}\n\n/** Executes a body several times per second up to the given duration,\n * and returns results and elapsed time for every result. */\nexport async function recordPings<T>(\n pingCheckDurationMs: number,\n maxPingsPerSecond: number,\n body: () => Promise<T>,\n): Promise<NetworkReport<T>[]> {\n const startPings = Date.now();\n const reports: NetworkReport<T>[] = [];\n\n while (elapsed(startPings) < pingCheckDurationMs) {\n const startPing = Date.now();\n let response: ValueOrError<T>;\n try {\n response = { ok: true, value: await body() };\n } catch (e) {\n response = { ok: false, error: e };\n }\n const elapsedPing = elapsed(startPing);\n\n reports.push({\n elapsedMs: elapsedPing,\n response,\n });\n\n const sleepBetweenPings = 1000 / maxPingsPerSecond - elapsedPing;\n\n if (sleepBetweenPings > 0) {\n await setTimeout(sleepBetweenPings);\n }\n }\n\n return reports;\n}\n\nexport async function requestUrl(url: string | URL, ops: CheckNetworkOpts, httpClient: Dispatcher) {\n const { body: rawBody, statusCode } = await request(url, {\n dispatcher: httpClient,\n headersTimeout: ops.httpTimeoutMs,\n bodyTimeout: ops.httpTimeoutMs,\n });\n const body = await rawBody.text();\n\n return {\n statusCode: statusCode,\n beginningOfBody: body.slice(0, ops.bodyLimit) + \"...\",\n };\n}\n\nexport function elapsed(startMs: number): number {\n return Date.now() - startMs;\n}\n\nexport function reportToString<T>(report: NetworkReport<T>[]): {\n ok: boolean;\n details: string;\n} {\n const successes = report.filter((r) => r.response.ok);\n const errorsLen = report.length - successes.length;\n const { mean, median } = elapsedStat(report);\n\n const details = `\n total: ${report.length};\n successes: ${successes.length};\n errors: ${errorsLen};\n mean in ms: ${mean};\n median in ms: ${median};\n `;\n\n return {\n ok: errorsLen === 0,\n details,\n };\n}\n\nfunction elapsedStat(reports: { elapsedMs: number }[]) {\n const checks = reports.map((p) => p.elapsedMs).sort();\n const mean = checks.reduce((sum, p) => sum + p) / checks.length;\n\n let median = undefined;\n if (checks.length > 0) {\n const mid = Math.floor(checks.length / 2);\n median = checks.length % 2 ? checks[mid] : (checks[mid - 1] + checks[mid]) / 2;\n }\n\n return { mean, median };\n}\n"],"mappings":"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"}
@@ -1,96 +1,102 @@
1
- import { setTimeout } from 'node:timers/promises';
2
- import { request } from 'undici';
3
- import { UnauthenticatedPlClient } from '@milaboratories/pl-client';
1
+ import { request } from "undici";
2
+ import { UnauthenticatedPlClient } from "@milaboratories/pl-client";
3
+ import { setTimeout } from "node:timers/promises";
4
4
 
5
+ //#region src/network_check/pings.ts
5
6
  async function backendPings(ops, plConfig) {
6
- return await recordPings(ops.pingCheckDurationMs, ops.maxPingsPerSecond, async () => {
7
- const uaClient = await UnauthenticatedPlClient.build(plConfig);
8
- const response = await uaClient.ping();
9
- return JSON.stringify(response).slice(0, ops.bodyLimit) + "...";
10
- });
7
+ return await recordPings(ops.pingCheckDurationMs, ops.maxPingsPerSecond, async () => {
8
+ const response = await (await UnauthenticatedPlClient.build(plConfig)).ping();
9
+ return JSON.stringify(response).slice(0, ops.bodyLimit) + "...";
10
+ });
11
11
  }
12
12
  async function blockRegistryOverviewPings(ops, httpClient) {
13
- return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockOverviewPath, ops.blockRegistryUrl), ops, httpClient));
13
+ return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockOverviewPath, ops.blockRegistryUrl), ops, httpClient));
14
14
  }
15
15
  async function blockGARegistryOverviewPings(ops, httpClient) {
16
- return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockOverviewPath, ops.blockGARegistryUrl), ops, httpClient));
16
+ return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockOverviewPath, ops.blockGARegistryUrl), ops, httpClient));
17
17
  }
18
18
  async function blockRegistryUiPings(ops, httpClient) {
19
- return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockUiPath, ops.blockRegistryUrl), ops, httpClient));
19
+ return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockUiPath, ops.blockRegistryUrl), ops, httpClient));
20
20
  }
21
21
  async function blockGARegistryUiPings(ops, httpClient) {
22
- return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockUiPath, ops.blockGARegistryUrl), ops, httpClient));
22
+ return await recordPings(ops.blockRegistryDurationMs, ops.maxRegistryChecksPerSecond, async () => await requestUrl(new URL(ops.blockUiPath, ops.blockGARegistryUrl), ops, httpClient));
23
23
  }
24
24
  async function autoUpdateCdnPings(ops, httpClient) {
25
- return await recordPings(ops.autoUpdateCdnDurationMs, ops.maxAutoUpdateCdnChecksPerSecond, async () => await requestUrl(ops.autoUpdateCdnUrl, ops, httpClient));
25
+ return await recordPings(ops.autoUpdateCdnDurationMs, ops.maxAutoUpdateCdnChecksPerSecond, async () => await requestUrl(ops.autoUpdateCdnUrl, ops, httpClient));
26
26
  }
27
27
  /** Executes a body several times per second up to the given duration,
28
- * and returns results and elapsed time for every result. */
28
+ * and returns results and elapsed time for every result. */
29
29
  async function recordPings(pingCheckDurationMs, maxPingsPerSecond, body) {
30
- const startPings = Date.now();
31
- const reports = [];
32
- while (elapsed(startPings) < pingCheckDurationMs) {
33
- const startPing = Date.now();
34
- let response;
35
- try {
36
- response = { ok: true, value: await body() };
37
- }
38
- catch (e) {
39
- response = { ok: false, error: e };
40
- }
41
- const elapsedPing = elapsed(startPing);
42
- reports.push({
43
- elapsedMs: elapsedPing,
44
- response,
45
- });
46
- const sleepBetweenPings = 1000 / maxPingsPerSecond - elapsedPing;
47
- if (sleepBetweenPings > 0) {
48
- await setTimeout(sleepBetweenPings);
49
- }
50
- }
51
- return reports;
30
+ const startPings = Date.now();
31
+ const reports = [];
32
+ while (elapsed(startPings) < pingCheckDurationMs) {
33
+ const startPing = Date.now();
34
+ let response;
35
+ try {
36
+ response = {
37
+ ok: true,
38
+ value: await body()
39
+ };
40
+ } catch (e) {
41
+ response = {
42
+ ok: false,
43
+ error: e
44
+ };
45
+ }
46
+ const elapsedPing = elapsed(startPing);
47
+ reports.push({
48
+ elapsedMs: elapsedPing,
49
+ response
50
+ });
51
+ const sleepBetweenPings = 1e3 / maxPingsPerSecond - elapsedPing;
52
+ if (sleepBetweenPings > 0) await setTimeout(sleepBetweenPings);
53
+ }
54
+ return reports;
52
55
  }
53
56
  async function requestUrl(url, ops, httpClient) {
54
- const { body: rawBody, statusCode } = await request(url, {
55
- dispatcher: httpClient,
56
- headersTimeout: ops.httpTimeoutMs,
57
- bodyTimeout: ops.httpTimeoutMs,
58
- });
59
- const body = await rawBody.text();
60
- return {
61
- statusCode: statusCode,
62
- beginningOfBody: body.slice(0, ops.bodyLimit) + "...",
63
- };
57
+ const { body: rawBody, statusCode } = await request(url, {
58
+ dispatcher: httpClient,
59
+ headersTimeout: ops.httpTimeoutMs,
60
+ bodyTimeout: ops.httpTimeoutMs
61
+ });
62
+ return {
63
+ statusCode,
64
+ beginningOfBody: (await rawBody.text()).slice(0, ops.bodyLimit) + "..."
65
+ };
64
66
  }
65
67
  function elapsed(startMs) {
66
- return Date.now() - startMs;
68
+ return Date.now() - startMs;
67
69
  }
68
70
  function reportToString(report) {
69
- const successes = report.filter((r) => r.response.ok);
70
- const errorsLen = report.length - successes.length;
71
- const { mean, median } = elapsedStat(report);
72
- const details = `
71
+ const successes = report.filter((r) => r.response.ok);
72
+ const errorsLen = report.length - successes.length;
73
+ const { mean, median } = elapsedStat(report);
74
+ const details = `
73
75
  total: ${report.length};
74
76
  successes: ${successes.length};
75
77
  errors: ${errorsLen};
76
78
  mean in ms: ${mean};
77
79
  median in ms: ${median};
78
80
  `;
79
- return {
80
- ok: errorsLen === 0,
81
- details,
82
- };
81
+ return {
82
+ ok: errorsLen === 0,
83
+ details
84
+ };
83
85
  }
84
86
  function elapsedStat(reports) {
85
- const checks = reports.map((p) => p.elapsedMs).sort();
86
- const mean = checks.reduce((sum, p) => sum + p) / checks.length;
87
- let median = undefined;
88
- if (checks.length > 0) {
89
- const mid = Math.floor(checks.length / 2);
90
- median = checks.length % 2 ? checks[mid] : (checks[mid - 1] + checks[mid]) / 2;
91
- }
92
- return { mean, median };
87
+ const checks = reports.map((p) => p.elapsedMs).sort();
88
+ const mean = checks.reduce((sum, p) => sum + p) / checks.length;
89
+ let median = void 0;
90
+ if (checks.length > 0) {
91
+ const mid = Math.floor(checks.length / 2);
92
+ median = checks.length % 2 ? checks[mid] : (checks[mid - 1] + checks[mid]) / 2;
93
+ }
94
+ return {
95
+ mean,
96
+ median
97
+ };
93
98
  }
94
99
 
95
- export { autoUpdateCdnPings, backendPings, blockGARegistryOverviewPings, blockGARegistryUiPings, blockRegistryOverviewPings, blockRegistryUiPings, elapsed, recordPings, reportToString, requestUrl };
96
- //# sourceMappingURL=pings.js.map
100
+ //#endregion
101
+ export { autoUpdateCdnPings, backendPings, blockGARegistryOverviewPings, blockGARegistryUiPings, blockRegistryOverviewPings, blockRegistryUiPings, reportToString };
102
+ //# sourceMappingURL=pings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pings.js","sources":["../../src/network_check/pings.ts"],"sourcesContent":["import type { ValueOrError } from \"@milaboratories/ts-helpers\";\nimport { setTimeout } from \"node:timers/promises\";\nimport { request } from \"undici\";\nimport type { Dispatcher } from \"undici\";\nimport type { CheckNetworkOpts } from \"./network_check\";\nimport { UnauthenticatedPlClient, type PlClientConfig } from \"@milaboratories/pl-client\";\n\n/** A report about one concrete ping to the service. */\nexport interface NetworkReport<T> {\n elapsedMs: number;\n response: ValueOrError<T>;\n}\n\nexport type HttpNetworkReport = NetworkReport<{\n statusCode: number;\n beginningOfBody: string;\n}>;\n\nexport async function backendPings(\n ops: CheckNetworkOpts,\n plConfig: PlClientConfig,\n): Promise<NetworkReport<string>[]> {\n return await recordPings(ops.pingCheckDurationMs, ops.maxPingsPerSecond, async () => {\n const uaClient = await UnauthenticatedPlClient.build(plConfig);\n const response = await uaClient.ping();\n return JSON.stringify(response).slice(0, ops.bodyLimit) + \"...\";\n });\n}\n\nexport async function blockRegistryOverviewPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () =>\n await requestUrl(new URL(ops.blockOverviewPath, ops.blockRegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockGARegistryOverviewPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () =>\n await requestUrl(new URL(ops.blockOverviewPath, ops.blockGARegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockRegistryUiPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () => await requestUrl(new URL(ops.blockUiPath, ops.blockRegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockGARegistryUiPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () => await requestUrl(new URL(ops.blockUiPath, ops.blockGARegistryUrl), ops, httpClient),\n );\n}\n\nexport async function autoUpdateCdnPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.autoUpdateCdnDurationMs,\n ops.maxAutoUpdateCdnChecksPerSecond,\n async () => await requestUrl(ops.autoUpdateCdnUrl, ops, httpClient),\n );\n}\n\n/** Executes a body several times per second up to the given duration,\n * and returns results and elapsed time for every result. */\nexport async function recordPings<T>(\n pingCheckDurationMs: number,\n maxPingsPerSecond: number,\n body: () => Promise<T>,\n): Promise<NetworkReport<T>[]> {\n const startPings = Date.now();\n const reports: NetworkReport<T>[] = [];\n\n while (elapsed(startPings) < pingCheckDurationMs) {\n const startPing = Date.now();\n let response: ValueOrError<T>;\n try {\n response = { ok: true, value: await body() };\n } catch (e) {\n response = { ok: false, error: e };\n }\n const elapsedPing = elapsed(startPing);\n\n reports.push({\n elapsedMs: elapsedPing,\n response,\n });\n\n const sleepBetweenPings = 1000 / maxPingsPerSecond - elapsedPing;\n\n if (sleepBetweenPings > 0) {\n await setTimeout(sleepBetweenPings);\n }\n }\n\n return reports;\n}\n\nexport async function requestUrl(url: string | URL, ops: CheckNetworkOpts, httpClient: Dispatcher) {\n const { body: rawBody, statusCode } = await request(url, {\n dispatcher: httpClient,\n headersTimeout: ops.httpTimeoutMs,\n bodyTimeout: ops.httpTimeoutMs,\n });\n const body = await rawBody.text();\n\n return {\n statusCode: statusCode,\n beginningOfBody: body.slice(0, ops.bodyLimit) + \"...\",\n };\n}\n\nexport function elapsed(startMs: number): number {\n return Date.now() - startMs;\n}\n\nexport function reportToString<T>(report: NetworkReport<T>[]): {\n ok: boolean;\n details: string;\n} {\n const successes = report.filter((r) => r.response.ok);\n const errorsLen = report.length - successes.length;\n const { mean, median } = elapsedStat(report);\n\n const details = `\n total: ${report.length};\n successes: ${successes.length};\n errors: ${errorsLen};\n mean in ms: ${mean};\n median in ms: ${median};\n `;\n\n return {\n ok: errorsLen === 0,\n details,\n };\n}\n\nfunction elapsedStat(reports: { elapsedMs: number }[]) {\n const checks = reports.map((p) => p.elapsedMs).sort();\n const mean = checks.reduce((sum, p) => sum + p) / checks.length;\n\n let median = undefined;\n if (checks.length > 0) {\n const mid = Math.floor(checks.length / 2);\n median = checks.length % 2 ? checks[mid] : (checks[mid - 1] + checks[mid]) / 2;\n }\n\n return { mean, median };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pings.js","names":[],"sources":["../../src/network_check/pings.ts"],"sourcesContent":["import type { ValueOrError } from \"@milaboratories/ts-helpers\";\nimport { setTimeout } from \"node:timers/promises\";\nimport { request } from \"undici\";\nimport type { Dispatcher } from \"undici\";\nimport type { CheckNetworkOpts } from \"./network_check\";\nimport { UnauthenticatedPlClient, type PlClientConfig } from \"@milaboratories/pl-client\";\n\n/** A report about one concrete ping to the service. */\nexport interface NetworkReport<T> {\n elapsedMs: number;\n response: ValueOrError<T>;\n}\n\nexport type HttpNetworkReport = NetworkReport<{\n statusCode: number;\n beginningOfBody: string;\n}>;\n\nexport async function backendPings(\n ops: CheckNetworkOpts,\n plConfig: PlClientConfig,\n): Promise<NetworkReport<string>[]> {\n return await recordPings(ops.pingCheckDurationMs, ops.maxPingsPerSecond, async () => {\n const uaClient = await UnauthenticatedPlClient.build(plConfig);\n const response = await uaClient.ping();\n return JSON.stringify(response).slice(0, ops.bodyLimit) + \"...\";\n });\n}\n\nexport async function blockRegistryOverviewPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () =>\n await requestUrl(new URL(ops.blockOverviewPath, ops.blockRegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockGARegistryOverviewPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () =>\n await requestUrl(new URL(ops.blockOverviewPath, ops.blockGARegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockRegistryUiPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () => await requestUrl(new URL(ops.blockUiPath, ops.blockRegistryUrl), ops, httpClient),\n );\n}\n\nexport async function blockGARegistryUiPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.blockRegistryDurationMs,\n ops.maxRegistryChecksPerSecond,\n async () => await requestUrl(new URL(ops.blockUiPath, ops.blockGARegistryUrl), ops, httpClient),\n );\n}\n\nexport async function autoUpdateCdnPings(\n ops: CheckNetworkOpts,\n httpClient: Dispatcher,\n): Promise<HttpNetworkReport[]> {\n return await recordPings(\n ops.autoUpdateCdnDurationMs,\n ops.maxAutoUpdateCdnChecksPerSecond,\n async () => await requestUrl(ops.autoUpdateCdnUrl, ops, httpClient),\n );\n}\n\n/** Executes a body several times per second up to the given duration,\n * and returns results and elapsed time for every result. */\nexport async function recordPings<T>(\n pingCheckDurationMs: number,\n maxPingsPerSecond: number,\n body: () => Promise<T>,\n): Promise<NetworkReport<T>[]> {\n const startPings = Date.now();\n const reports: NetworkReport<T>[] = [];\n\n while (elapsed(startPings) < pingCheckDurationMs) {\n const startPing = Date.now();\n let response: ValueOrError<T>;\n try {\n response = { ok: true, value: await body() };\n } catch (e) {\n response = { ok: false, error: e };\n }\n const elapsedPing = elapsed(startPing);\n\n reports.push({\n elapsedMs: elapsedPing,\n response,\n });\n\n const sleepBetweenPings = 1000 / maxPingsPerSecond - elapsedPing;\n\n if (sleepBetweenPings > 0) {\n await setTimeout(sleepBetweenPings);\n }\n }\n\n return reports;\n}\n\nexport async function requestUrl(url: string | URL, ops: CheckNetworkOpts, httpClient: Dispatcher) {\n const { body: rawBody, statusCode } = await request(url, {\n dispatcher: httpClient,\n headersTimeout: ops.httpTimeoutMs,\n bodyTimeout: ops.httpTimeoutMs,\n });\n const body = await rawBody.text();\n\n return {\n statusCode: statusCode,\n beginningOfBody: body.slice(0, ops.bodyLimit) + \"...\",\n };\n}\n\nexport function elapsed(startMs: number): number {\n return Date.now() - startMs;\n}\n\nexport function reportToString<T>(report: NetworkReport<T>[]): {\n ok: boolean;\n details: string;\n} {\n const successes = report.filter((r) => r.response.ok);\n const errorsLen = report.length - successes.length;\n const { mean, median } = elapsedStat(report);\n\n const details = `\n total: ${report.length};\n successes: ${successes.length};\n errors: ${errorsLen};\n mean in ms: ${mean};\n median in ms: ${median};\n `;\n\n return {\n ok: errorsLen === 0,\n details,\n };\n}\n\nfunction elapsedStat(reports: { elapsedMs: number }[]) {\n const checks = reports.map((p) => p.elapsedMs).sort();\n const mean = checks.reduce((sum, p) => sum + p) / checks.length;\n\n let median = undefined;\n if (checks.length > 0) {\n const mid = Math.floor(checks.length / 2);\n median = checks.length % 2 ? checks[mid] : (checks[mid - 1] + checks[mid]) / 2;\n }\n\n return { mean, median };\n}\n"],"mappings":"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"}