@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 +1 @@
1
- {"version":3,"file":"template.cjs","sources":["../../src/network_check/template.ts"],"sourcesContent":["import type { FieldId, FieldRef, PlClient, ResourceData } from \"@milaboratories/pl-client\";\nimport {\n type PlTransaction,\n ContinuePolling,\n field,\n isNotNullResourceId,\n isNullResourceId,\n Pl,\n poll,\n toGlobalFieldId,\n} from \"@milaboratories/pl-client\";\nimport { createRenderTemplate } from \"../mutator/template/render_template\";\nimport { Templates as SdkTemplates } from \"@platforma-sdk/workflow-tengo\";\nimport type { TemplateSpecAny } from \"../model/template_spec\";\nimport { loadTemplate, prepareTemplateSpec } from \"../mutator/template/template_loading\";\nimport type { ClientDownload, LsDriver } from \"@milaboratories/pl-drivers\";\nimport {\n ImportFileHandleUploadData,\n isSignMatch,\n isUpload,\n uploadBlob,\n type ClientUpload,\n type LsEntryWithAdditionalInfo,\n} from \"@milaboratories/pl-drivers\";\nimport type { Signer } from \"@milaboratories/ts-helpers\";\nimport { notEmpty, type MiLogger } from \"@milaboratories/ts-helpers\";\nimport type { ResourceInfo } from \"@milaboratories/pl-tree\";\nimport { text } from \"node:stream/consumers\";\nimport path from \"node:path\";\nimport fs from \"node:fs/promises\";\nimport os from \"node:os\";\nimport { randomBytes } from \"node:crypto\";\nimport type { StorageEntry } from \"@milaboratories/pl-model-common\";\n\nexport interface TemplateReport {\n status: \"ok\" | \"warn\" | \"failed\";\n message: string;\n}\n\n/** Uploads `hello-world` template and checks the output is correct. */\nexport async function uploadTemplate(\n logger: MiLogger,\n pl: PlClient,\n name: string,\n): Promise<TemplateReport> {\n try {\n const gotGreeting = await runUploadTemplate(logger, pl, name);\n if (gotGreeting !== `Hello, ${name}`) {\n return {\n status: \"failed\",\n message: `Template uploading failed: expected: ${name}, got: ${gotGreeting}`,\n };\n }\n\n return { status: \"ok\", message: `Template uploading succeeded: ${gotGreeting}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `Template uploading failed: error occurred: ${e}` };\n }\n}\n\nexport async function runUploadTemplate(\n logger: MiLogger,\n pl: PlClient,\n name: string,\n): Promise<string> {\n const outputs = await runTemplate(\n pl,\n SdkTemplates[\"check_network.upload_template\"],\n true,\n (tx) => ({\n name: tx.createValue(Pl.JsonObject, JSON.stringify(name)),\n }),\n [\"greeting\"],\n );\n\n try {\n return JSON.parse(notEmpty((await getFieldValue(pl, outputs.greeting)).data?.toString()));\n } finally {\n if (outputs != undefined) {\n await deleteFields(pl, Object.values(outputs));\n }\n }\n}\n\n/** Uploads a file to the backend and checks the output is a Blob resource. */\nexport async function uploadFile(\n logger: MiLogger,\n signer: Signer,\n lsDriver: LsDriver,\n uploadClient: ClientUpload,\n pl: PlClient,\n filePath: string,\n): Promise<TemplateReport> {\n try {\n const gotBlob = await runUploadFile(logger, signer, lsDriver, uploadClient, pl, filePath);\n\n if (gotBlob.type.name !== \"Blob\") {\n return { status: \"failed\", message: `File uploading failed: ${gotBlob.type.name}` };\n }\n\n return { status: \"ok\", message: `File uploading succeeded: ${gotBlob.type.name}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `File uploading failed: error occurred: ${e}` };\n }\n}\n\nexport async function runUploadFile(\n logger: MiLogger,\n signer: Signer,\n lsDriver: LsDriver,\n uploadClient: ClientUpload,\n pl: PlClient,\n filePath: string,\n): Promise<ResourceInfo> {\n const handle = await lsDriver.getLocalFileHandle(filePath);\n const result = await runTemplate(\n pl,\n SdkTemplates[\"check_network.upload_blob\"],\n true,\n (tx) => ({\n file: tx.createValue(Pl.JsonObject, JSON.stringify(handle)),\n }),\n [\"progress\", \"file\"],\n );\n\n try {\n const progress = await getFieldValue(pl, result.progress);\n\n if (isUpload(progress)) {\n const uploadData = ImportFileHandleUploadData.parse(\n JSON.parse(notEmpty(progress.data?.toString())),\n );\n const isUploadSignMatch = isSignMatch(signer, uploadData.localPath, uploadData.pathSignature);\n\n if (isUploadSignMatch) {\n await uploadBlob(logger, uploadClient, progress, uploadData, () => false, {\n nPartsWithThisUploadSpeed: 10,\n nPartsToIncreaseUpload: 10,\n currentSpeed: 10,\n maxSpeed: 10,\n });\n }\n }\n\n return await getFieldValue(pl, result.file);\n } finally {\n await deleteFields(pl, Object.values(result));\n }\n}\n\n/** Uploads a file to the backend and then tries to download it back. */\nexport async function downloadFile(\n logger: MiLogger,\n pl: PlClient,\n lsDriver: LsDriver,\n uploadClient: ClientUpload,\n downloadClient: ClientDownload,\n filePath: string,\n fileContent: string,\n): Promise<TemplateReport> {\n try {\n const gotFileContent = await runDownloadFile(\n logger,\n pl,\n lsDriver,\n uploadClient,\n downloadClient,\n filePath,\n );\n\n if (gotFileContent !== fileContent) {\n return {\n status: \"failed\",\n message: `File downloading failed: expected: ${fileContent}, got: ${gotFileContent}`,\n };\n }\n return { status: \"ok\", message: `File downloading succeeded: ${gotFileContent}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `File downloading failed: error occurred: ${e}` };\n }\n}\n\nexport async function runDownloadFile(\n logger: MiLogger,\n pl: PlClient,\n lsDriver: LsDriver,\n uploadClient: ClientUpload,\n downloadClient: ClientDownload,\n filePath: string,\n) {\n const handle = await lsDriver.getLocalFileHandle(filePath);\n\n const outputs = await runTemplate(\n pl,\n SdkTemplates[\"check_network.download_blob\"],\n true,\n (tx) => ({ file: tx.createValue(Pl.JsonObject, JSON.stringify(handle)) }),\n [\"progress\", \"file\"],\n );\n\n try {\n const progress = await getFieldValue(pl, outputs.progress);\n\n await uploadBlob(\n logger,\n uploadClient,\n progress,\n ImportFileHandleUploadData.parse(JSON.parse(notEmpty(progress.data?.toString()))),\n () => false,\n {\n nPartsWithThisUploadSpeed: 1,\n nPartsToIncreaseUpload: 1,\n currentSpeed: 1,\n maxSpeed: 1,\n },\n );\n\n const fileInfo = await getFieldValue(pl, outputs.file);\n\n return await downloadClient.withBlobContent(\n fileInfo,\n {},\n {},\n async (content) => await text(content),\n );\n } finally {\n await deleteFields(pl, Object.values(outputs));\n }\n}\n\n/** Runs Go's hello-world binary. */\nexport async function softwareCheck(pl: PlClient): Promise<TemplateReport> {\n try {\n const gotGreeting = await runSoftware(pl);\n\n if (gotGreeting !== \"Hello from go binary\\n\") {\n return { status: \"failed\", message: `Software check failed: got: ${gotGreeting}` };\n }\n return { status: \"ok\", message: `Software check succeeded: ${gotGreeting}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `Software check failed: error occurred: ${e}` };\n }\n}\n\nexport async function runSoftware(pl: PlClient): Promise<string> {\n const result = await runTemplate(\n pl,\n SdkTemplates[\"check_network.run_hello_world\"],\n true,\n (_: PlTransaction) => ({}),\n [\"greeting\"],\n );\n\n try {\n return notEmpty((await getFieldValue(pl, result.greeting)).data?.toString());\n } finally {\n await deleteFields(pl, Object.values(result));\n }\n}\n\n/** Runs Python hello-world. */\nexport async function pythonSoftware(pl: PlClient, name: string): Promise<TemplateReport> {\n try {\n const gotGreeting = await runPythonSoftware(pl, name);\n\n if (gotGreeting !== `Hello, ${name}!\\n`) {\n return { status: \"failed\", message: `Python software check failed: got: ${gotGreeting}` };\n }\n return { status: \"ok\", message: `Python software check succeeded: ${gotGreeting}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `Python software check failed: error occurred: ${e}` };\n }\n}\n\nexport async function runPythonSoftware(pl: PlClient, name: string): Promise<string> {\n const result = await runTemplate(\n pl,\n SdkTemplates[\"check_network.run_hello_world_py\"],\n true,\n (tx) => ({ name: tx.createValue(Pl.JsonObject, JSON.stringify(name)) }),\n [\"greeting\"],\n );\n\n try {\n return notEmpty((await getFieldValue(pl, result.greeting)).data?.toString());\n } finally {\n await deleteFields(pl, Object.values(result));\n }\n}\n\n/** Tries to download a file from every storage. */\nexport async function downloadFromEveryStorage(\n logger: MiLogger,\n pl: PlClient,\n lsDriver: LsDriver,\n ops: {\n minLsRequests: number;\n bytesLimit: number;\n minFileSize: number;\n maxFileSize: number;\n nFilesToCheck: number;\n },\n): Promise<Record<string, TemplateReport>> {\n try {\n const storages = await lsDriver.getStorageList();\n const results: Record<string, TemplateReport> = {};\n\n for (const storage of storages) {\n const result = await chooseFile(\n lsDriver,\n storage,\n ops.nFilesToCheck,\n ops.minFileSize,\n ops.maxFileSize,\n ops.minLsRequests,\n );\n if (result.file === undefined) {\n results[storage.name] = {\n status: \"warn\",\n message:\n `No file between ${ops.minFileSize} and ${ops.maxFileSize} bytes ` +\n `found in storage ${storage.name}, checked ${result.nCheckedFiles} files, ` +\n `did ${result.nLsRequests} ls requests`,\n };\n continue;\n }\n\n logger.info(`Downloading file ${JSON.stringify(result)} from storage ${storage.name}`);\n const outputs = await runTemplate(\n pl,\n SdkTemplates[\"check_network.create_workdir_from_storage\"],\n true,\n (tx) => ({\n file: tx.createValue(\n Pl.JsonObject,\n JSON.stringify((result.file as { handle: string }).handle),\n ),\n }),\n [\"workdirTypeName\"],\n );\n\n try {\n const workdirTypeName = JSON.parse(\n Buffer.from((await getFieldValue(pl, outputs.workdirTypeName)).data!).toString(),\n ) as string;\n\n if (workdirTypeName?.startsWith(\"WorkingDirectory\")) {\n results[storage.name] = {\n status: \"ok\",\n message:\n `Workdir creation succeeded, size of file: ${result.file?.size}, ` +\n `checked ${result.nCheckedFiles} files, did ${result.nLsRequests} ls requests`,\n };\n } else {\n results[storage.name] = {\n status: \"failed\",\n message:\n `Workdir creation failed: ${workdirTypeName}, size of file: ${result.file?.size}, ` +\n `checked ${result.nCheckedFiles} files, did ${result.nLsRequests} ls requests`,\n };\n }\n } finally {\n await deleteFields(pl, Object.values(outputs));\n }\n }\n\n return results;\n } catch (e: unknown) {\n return {\n unknown: {\n status: \"failed\",\n message: `Download from every storage failed: error occurred: ${e}`,\n },\n };\n }\n}\n\n/** Chooses a random file from the storage in a size range.\n * If we couldn't find a normal-sized file, we'll return a small file to check at least something.\n */\nexport async function chooseFile(\n lsDriver: LsDriver,\n storage: StorageEntry,\n limit: number,\n minSize: number,\n maxSize: number,\n minLsRequests: number,\n): Promise<{\n file: LsEntryWithAdditionalInfo | undefined;\n nLsRequests: number;\n nCheckedFiles: number;\n}> {\n const files = listFilesSequence(lsDriver, storage, \"\", 0);\n\n // return small file in case we don't have many normal-sized files.\n // While we'll download only a small range of bytes from the file,\n // we don't want to return a big file in case the underlying S3 doesn't support range requests.\n let smallFile: LsEntryWithAdditionalInfo | undefined;\n let nCheckedFiles = 0;\n let maxNLsRequests = 0;\n\n for await (const { file, nLsRequests } of files) {\n maxNLsRequests = Math.max(maxNLsRequests, nLsRequests);\n\n if (nCheckedFiles >= limit && maxNLsRequests > minLsRequests) {\n // we reached a limit on both the number of files and the number of ls requests.\n return { file: smallFile, nLsRequests: maxNLsRequests, nCheckedFiles };\n }\n nCheckedFiles++;\n if (minSize <= file.size && file.size <= maxSize) {\n return { file, nLsRequests: maxNLsRequests, nCheckedFiles };\n } else if (file.size < minSize) {\n smallFile = file;\n }\n }\n\n return { file: smallFile, nLsRequests: maxNLsRequests, nCheckedFiles };\n}\n\n/** Deep-first search for files in the storage. */\nexport async function* listFilesSequence(\n lsDriver: LsDriver,\n storage: StorageEntry,\n parent: string,\n nLsRequests: number,\n): AsyncGenerator<{ file: LsEntryWithAdditionalInfo; nLsRequests: number }, void, unknown> {\n nLsRequests++;\n const files = await lsDriver.listRemoteFilesWithAdditionalInfo(storage.handle, parent);\n\n for (const file of files.entries) {\n if (file.type === \"file\" && file.fullPath.startsWith(parent)) {\n yield {\n file,\n nLsRequests,\n };\n } else if (file.type === \"dir\") {\n for await (const nestedFile of listFilesSequence(\n lsDriver,\n storage,\n file.fullPath,\n nLsRequests,\n )) {\n nLsRequests = Math.max(nestedFile.nLsRequests, nLsRequests);\n yield nestedFile;\n }\n }\n }\n}\n\n/** Creates a big temporary file with random content. */\nexport async function createBigTempFile(): Promise<{ filePath: string }> {\n const filePath = path.join(os.tmpdir(), `check-network-big-temp-${Date.now()}.bin`);\n const fileSize = 20 * 1024 * 1024; // 20 MiB\n\n const fileContent = randomBytes(fileSize);\n\n await fs.appendFile(filePath, fileContent);\n\n return { filePath };\n}\n\n/** Creates a temporarly file we could use for uploading and downloading. */\nexport async function createTempFile(): Promise<{ filePath: string; fileContent: string }> {\n const filePath = path.join(os.tmpdir(), `check-network-temp-${Date.now()}.txt`);\n\n const fileContent = \"Hello, world! \" + new Date().toISOString();\n await fs.writeFile(filePath, fileContent);\n\n return { filePath, fileContent };\n}\n\n/** Creates a template and RenderTemplate resources, gets all resources from outputs.\n * Throws a error if any of the outputs failed.\n */\nasync function runTemplate(\n client: PlClient,\n tpl: TemplateSpecAny,\n ephemeral: boolean,\n inputs: (tx: PlTransaction) => Pl.PlRecord,\n outputs: string[],\n): Promise<Record<string, FieldId>> {\n return await client.withWriteTx(\"TemplateRender\", async (tx) => {\n const preparedTemplate = await prepareTemplateSpec(tpl);\n const tplResource = loadTemplate(tx, preparedTemplate);\n\n const outputFields: Record<string, FieldRef> = createRenderTemplate(\n tx,\n tplResource,\n ephemeral,\n inputs(tx),\n outputs,\n );\n\n const outputsIds: Record<string, FieldId> = {};\n\n for (const output of outputs) {\n const fieldRef = field(client.clientRoot, output);\n tx.createField(fieldRef, \"Dynamic\", outputFields[output]);\n outputsIds[output] = await toGlobalFieldId(fieldRef);\n }\n\n await tx.commit();\n\n return outputsIds;\n });\n}\n\n/** Gets a resource from field's value or throws a error. */\nasync function getFieldValue(client: PlClient, fieldId: FieldId): Promise<ResourceData> {\n // We could also do polling with pl-tree, but it seemed like an overkill,\n // that's why we have a simple polling here.\n\n return await poll(client, async (tx) => {\n const field = await tx.tx.getField(fieldId);\n if (isNotNullResourceId(field.error)) {\n const err = await tx.tx.getResourceData(field.error, true);\n throw new Error(`getFieldValue of \"${fieldId.fieldName}\" field failed: ${err.data}`);\n }\n\n if (isNullResourceId(field.value)) {\n throw new ContinuePolling();\n }\n\n return await tx.tx.getResourceData(field.value, true);\n });\n}\n\nasync function deleteFields(client: PlClient, fieldIds: FieldId[]) {\n await client.withWriteTx(\"DeleteFields\", async (tx) => {\n for (const fieldId of fieldIds) {\n tx.resetField(fieldId);\n }\n await tx.commit();\n });\n}\n"],"names":["SdkTemplates","Pl","notEmpty","isUpload","ImportFileHandleUploadData","isSignMatch","uploadBlob","text","randomBytes","prepareTemplateSpec","loadTemplate","createRenderTemplate","field","toGlobalFieldId","poll","isNotNullResourceId","isNullResourceId","ContinuePolling"],"mappings":"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"}
1
+ {"version":3,"file":"template.cjs","names":["SdkTemplates","Pl","ImportFileHandleUploadData","path","os","fs","createRenderTemplate","loadTemplate","prepareTemplateSpec","ContinuePolling"],"sources":["../../src/network_check/template.ts"],"sourcesContent":["import type { FieldId, FieldRef, PlClient, ResourceData } from \"@milaboratories/pl-client\";\nimport {\n type PlTransaction,\n ContinuePolling,\n field,\n isNotNullResourceId,\n isNullResourceId,\n Pl,\n poll,\n toGlobalFieldId,\n} from \"@milaboratories/pl-client\";\nimport { createRenderTemplate } from \"../mutator/template/render_template\";\nimport { Templates as SdkTemplates } from \"@platforma-sdk/workflow-tengo\";\nimport type { TemplateSpecAny } from \"../model/template_spec\";\nimport { loadTemplate, prepareTemplateSpec } from \"../mutator/template/template_loading\";\nimport type { ClientDownload, LsDriver } from \"@milaboratories/pl-drivers\";\nimport {\n ImportFileHandleUploadData,\n isSignMatch,\n isUpload,\n uploadBlob,\n type ClientUpload,\n type LsEntryWithAdditionalInfo,\n} from \"@milaboratories/pl-drivers\";\nimport type { Signer } from \"@milaboratories/ts-helpers\";\nimport { notEmpty, type MiLogger } from \"@milaboratories/ts-helpers\";\nimport type { ResourceInfo } from \"@milaboratories/pl-tree\";\nimport { text } from \"node:stream/consumers\";\nimport path from \"node:path\";\nimport fs from \"node:fs/promises\";\nimport os from \"node:os\";\nimport { randomBytes } from \"node:crypto\";\nimport type { StorageEntry } from \"@milaboratories/pl-model-common\";\n\nexport interface TemplateReport {\n status: \"ok\" | \"warn\" | \"failed\";\n message: string;\n}\n\n/** Uploads `hello-world` template and checks the output is correct. */\nexport async function uploadTemplate(\n logger: MiLogger,\n pl: PlClient,\n name: string,\n): Promise<TemplateReport> {\n try {\n const gotGreeting = await runUploadTemplate(logger, pl, name);\n if (gotGreeting !== `Hello, ${name}`) {\n return {\n status: \"failed\",\n message: `Template uploading failed: expected: ${name}, got: ${gotGreeting}`,\n };\n }\n\n return { status: \"ok\", message: `Template uploading succeeded: ${gotGreeting}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `Template uploading failed: error occurred: ${e}` };\n }\n}\n\nexport async function runUploadTemplate(\n logger: MiLogger,\n pl: PlClient,\n name: string,\n): Promise<string> {\n const outputs = await runTemplate(\n pl,\n SdkTemplates[\"check_network.upload_template\"],\n true,\n (tx) => ({\n name: tx.createValue(Pl.JsonObject, JSON.stringify(name)),\n }),\n [\"greeting\"],\n );\n\n try {\n return JSON.parse(notEmpty((await getFieldValue(pl, outputs.greeting)).data?.toString()));\n } finally {\n if (outputs != undefined) {\n await deleteFields(pl, Object.values(outputs));\n }\n }\n}\n\n/** Uploads a file to the backend and checks the output is a Blob resource. */\nexport async function uploadFile(\n logger: MiLogger,\n signer: Signer,\n lsDriver: LsDriver,\n uploadClient: ClientUpload,\n pl: PlClient,\n filePath: string,\n): Promise<TemplateReport> {\n try {\n const gotBlob = await runUploadFile(logger, signer, lsDriver, uploadClient, pl, filePath);\n\n if (gotBlob.type.name !== \"Blob\") {\n return { status: \"failed\", message: `File uploading failed: ${gotBlob.type.name}` };\n }\n\n return { status: \"ok\", message: `File uploading succeeded: ${gotBlob.type.name}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `File uploading failed: error occurred: ${e}` };\n }\n}\n\nexport async function runUploadFile(\n logger: MiLogger,\n signer: Signer,\n lsDriver: LsDriver,\n uploadClient: ClientUpload,\n pl: PlClient,\n filePath: string,\n): Promise<ResourceInfo> {\n const handle = await lsDriver.getLocalFileHandle(filePath);\n const result = await runTemplate(\n pl,\n SdkTemplates[\"check_network.upload_blob\"],\n true,\n (tx) => ({\n file: tx.createValue(Pl.JsonObject, JSON.stringify(handle)),\n }),\n [\"progress\", \"file\"],\n );\n\n try {\n const progress = await getFieldValue(pl, result.progress);\n\n if (isUpload(progress)) {\n const uploadData = ImportFileHandleUploadData.parse(\n JSON.parse(notEmpty(progress.data?.toString())),\n );\n const isUploadSignMatch = isSignMatch(signer, uploadData.localPath, uploadData.pathSignature);\n\n if (isUploadSignMatch) {\n await uploadBlob(logger, uploadClient, progress, uploadData, () => false, {\n nPartsWithThisUploadSpeed: 10,\n nPartsToIncreaseUpload: 10,\n currentSpeed: 10,\n maxSpeed: 10,\n });\n }\n }\n\n return await getFieldValue(pl, result.file);\n } finally {\n await deleteFields(pl, Object.values(result));\n }\n}\n\n/** Uploads a file to the backend and then tries to download it back. */\nexport async function downloadFile(\n logger: MiLogger,\n pl: PlClient,\n lsDriver: LsDriver,\n uploadClient: ClientUpload,\n downloadClient: ClientDownload,\n filePath: string,\n fileContent: string,\n): Promise<TemplateReport> {\n try {\n const gotFileContent = await runDownloadFile(\n logger,\n pl,\n lsDriver,\n uploadClient,\n downloadClient,\n filePath,\n );\n\n if (gotFileContent !== fileContent) {\n return {\n status: \"failed\",\n message: `File downloading failed: expected: ${fileContent}, got: ${gotFileContent}`,\n };\n }\n return { status: \"ok\", message: `File downloading succeeded: ${gotFileContent}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `File downloading failed: error occurred: ${e}` };\n }\n}\n\nexport async function runDownloadFile(\n logger: MiLogger,\n pl: PlClient,\n lsDriver: LsDriver,\n uploadClient: ClientUpload,\n downloadClient: ClientDownload,\n filePath: string,\n) {\n const handle = await lsDriver.getLocalFileHandle(filePath);\n\n const outputs = await runTemplate(\n pl,\n SdkTemplates[\"check_network.download_blob\"],\n true,\n (tx) => ({ file: tx.createValue(Pl.JsonObject, JSON.stringify(handle)) }),\n [\"progress\", \"file\"],\n );\n\n try {\n const progress = await getFieldValue(pl, outputs.progress);\n\n await uploadBlob(\n logger,\n uploadClient,\n progress,\n ImportFileHandleUploadData.parse(JSON.parse(notEmpty(progress.data?.toString()))),\n () => false,\n {\n nPartsWithThisUploadSpeed: 1,\n nPartsToIncreaseUpload: 1,\n currentSpeed: 1,\n maxSpeed: 1,\n },\n );\n\n const fileInfo = await getFieldValue(pl, outputs.file);\n\n return await downloadClient.withBlobContent(\n fileInfo,\n {},\n {},\n async (content) => await text(content),\n );\n } finally {\n await deleteFields(pl, Object.values(outputs));\n }\n}\n\n/** Runs Go's hello-world binary. */\nexport async function softwareCheck(pl: PlClient): Promise<TemplateReport> {\n try {\n const gotGreeting = await runSoftware(pl);\n\n if (gotGreeting !== \"Hello from go binary\\n\") {\n return { status: \"failed\", message: `Software check failed: got: ${gotGreeting}` };\n }\n return { status: \"ok\", message: `Software check succeeded: ${gotGreeting}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `Software check failed: error occurred: ${e}` };\n }\n}\n\nexport async function runSoftware(pl: PlClient): Promise<string> {\n const result = await runTemplate(\n pl,\n SdkTemplates[\"check_network.run_hello_world\"],\n true,\n (_: PlTransaction) => ({}),\n [\"greeting\"],\n );\n\n try {\n return notEmpty((await getFieldValue(pl, result.greeting)).data?.toString());\n } finally {\n await deleteFields(pl, Object.values(result));\n }\n}\n\n/** Runs Python hello-world. */\nexport async function pythonSoftware(pl: PlClient, name: string): Promise<TemplateReport> {\n try {\n const gotGreeting = await runPythonSoftware(pl, name);\n\n if (gotGreeting !== `Hello, ${name}!\\n`) {\n return { status: \"failed\", message: `Python software check failed: got: ${gotGreeting}` };\n }\n return { status: \"ok\", message: `Python software check succeeded: ${gotGreeting}` };\n } catch (e: unknown) {\n return { status: \"failed\", message: `Python software check failed: error occurred: ${e}` };\n }\n}\n\nexport async function runPythonSoftware(pl: PlClient, name: string): Promise<string> {\n const result = await runTemplate(\n pl,\n SdkTemplates[\"check_network.run_hello_world_py\"],\n true,\n (tx) => ({ name: tx.createValue(Pl.JsonObject, JSON.stringify(name)) }),\n [\"greeting\"],\n );\n\n try {\n return notEmpty((await getFieldValue(pl, result.greeting)).data?.toString());\n } finally {\n await deleteFields(pl, Object.values(result));\n }\n}\n\n/** Tries to download a file from every storage. */\nexport async function downloadFromEveryStorage(\n logger: MiLogger,\n pl: PlClient,\n lsDriver: LsDriver,\n ops: {\n minLsRequests: number;\n bytesLimit: number;\n minFileSize: number;\n maxFileSize: number;\n nFilesToCheck: number;\n },\n): Promise<Record<string, TemplateReport>> {\n try {\n const storages = await lsDriver.getStorageList();\n const results: Record<string, TemplateReport> = {};\n\n for (const storage of storages) {\n const result = await chooseFile(\n lsDriver,\n storage,\n ops.nFilesToCheck,\n ops.minFileSize,\n ops.maxFileSize,\n ops.minLsRequests,\n );\n if (result.file === undefined) {\n results[storage.name] = {\n status: \"warn\",\n message:\n `No file between ${ops.minFileSize} and ${ops.maxFileSize} bytes ` +\n `found in storage ${storage.name}, checked ${result.nCheckedFiles} files, ` +\n `did ${result.nLsRequests} ls requests`,\n };\n continue;\n }\n\n logger.info(`Downloading file ${JSON.stringify(result)} from storage ${storage.name}`);\n const outputs = await runTemplate(\n pl,\n SdkTemplates[\"check_network.create_workdir_from_storage\"],\n true,\n (tx) => ({\n file: tx.createValue(\n Pl.JsonObject,\n JSON.stringify((result.file as { handle: string }).handle),\n ),\n }),\n [\"workdirTypeName\"],\n );\n\n try {\n const workdirTypeName = JSON.parse(\n Buffer.from((await getFieldValue(pl, outputs.workdirTypeName)).data!).toString(),\n ) as string;\n\n if (workdirTypeName?.startsWith(\"WorkingDirectory\")) {\n results[storage.name] = {\n status: \"ok\",\n message:\n `Workdir creation succeeded, size of file: ${result.file?.size}, ` +\n `checked ${result.nCheckedFiles} files, did ${result.nLsRequests} ls requests`,\n };\n } else {\n results[storage.name] = {\n status: \"failed\",\n message:\n `Workdir creation failed: ${workdirTypeName}, size of file: ${result.file?.size}, ` +\n `checked ${result.nCheckedFiles} files, did ${result.nLsRequests} ls requests`,\n };\n }\n } finally {\n await deleteFields(pl, Object.values(outputs));\n }\n }\n\n return results;\n } catch (e: unknown) {\n return {\n unknown: {\n status: \"failed\",\n message: `Download from every storage failed: error occurred: ${e}`,\n },\n };\n }\n}\n\n/** Chooses a random file from the storage in a size range.\n * If we couldn't find a normal-sized file, we'll return a small file to check at least something.\n */\nexport async function chooseFile(\n lsDriver: LsDriver,\n storage: StorageEntry,\n limit: number,\n minSize: number,\n maxSize: number,\n minLsRequests: number,\n): Promise<{\n file: LsEntryWithAdditionalInfo | undefined;\n nLsRequests: number;\n nCheckedFiles: number;\n}> {\n const files = listFilesSequence(lsDriver, storage, \"\", 0);\n\n // return small file in case we don't have many normal-sized files.\n // While we'll download only a small range of bytes from the file,\n // we don't want to return a big file in case the underlying S3 doesn't support range requests.\n let smallFile: LsEntryWithAdditionalInfo | undefined;\n let nCheckedFiles = 0;\n let maxNLsRequests = 0;\n\n for await (const { file, nLsRequests } of files) {\n maxNLsRequests = Math.max(maxNLsRequests, nLsRequests);\n\n if (nCheckedFiles >= limit && maxNLsRequests > minLsRequests) {\n // we reached a limit on both the number of files and the number of ls requests.\n return { file: smallFile, nLsRequests: maxNLsRequests, nCheckedFiles };\n }\n nCheckedFiles++;\n if (minSize <= file.size && file.size <= maxSize) {\n return { file, nLsRequests: maxNLsRequests, nCheckedFiles };\n } else if (file.size < minSize) {\n smallFile = file;\n }\n }\n\n return { file: smallFile, nLsRequests: maxNLsRequests, nCheckedFiles };\n}\n\n/** Deep-first search for files in the storage. */\nexport async function* listFilesSequence(\n lsDriver: LsDriver,\n storage: StorageEntry,\n parent: string,\n nLsRequests: number,\n): AsyncGenerator<{ file: LsEntryWithAdditionalInfo; nLsRequests: number }, void, unknown> {\n nLsRequests++;\n const files = await lsDriver.listRemoteFilesWithAdditionalInfo(storage.handle, parent);\n\n for (const file of files.entries) {\n if (file.type === \"file\" && file.fullPath.startsWith(parent)) {\n yield {\n file,\n nLsRequests,\n };\n } else if (file.type === \"dir\") {\n for await (const nestedFile of listFilesSequence(\n lsDriver,\n storage,\n file.fullPath,\n nLsRequests,\n )) {\n nLsRequests = Math.max(nestedFile.nLsRequests, nLsRequests);\n yield nestedFile;\n }\n }\n }\n}\n\n/** Creates a big temporary file with random content. */\nexport async function createBigTempFile(): Promise<{ filePath: string }> {\n const filePath = path.join(os.tmpdir(), `check-network-big-temp-${Date.now()}.bin`);\n const fileSize = 20 * 1024 * 1024; // 20 MiB\n\n const fileContent = randomBytes(fileSize);\n\n await fs.appendFile(filePath, fileContent);\n\n return { filePath };\n}\n\n/** Creates a temporarly file we could use for uploading and downloading. */\nexport async function createTempFile(): Promise<{ filePath: string; fileContent: string }> {\n const filePath = path.join(os.tmpdir(), `check-network-temp-${Date.now()}.txt`);\n\n const fileContent = \"Hello, world! \" + new Date().toISOString();\n await fs.writeFile(filePath, fileContent);\n\n return { filePath, fileContent };\n}\n\n/** Creates a template and RenderTemplate resources, gets all resources from outputs.\n * Throws a error if any of the outputs failed.\n */\nasync function runTemplate(\n client: PlClient,\n tpl: TemplateSpecAny,\n ephemeral: boolean,\n inputs: (tx: PlTransaction) => Pl.PlRecord,\n outputs: string[],\n): Promise<Record<string, FieldId>> {\n return await client.withWriteTx(\"TemplateRender\", async (tx) => {\n const preparedTemplate = await prepareTemplateSpec(tpl);\n const tplResource = loadTemplate(tx, preparedTemplate);\n\n const outputFields: Record<string, FieldRef> = createRenderTemplate(\n tx,\n tplResource,\n ephemeral,\n inputs(tx),\n outputs,\n );\n\n const outputsIds: Record<string, FieldId> = {};\n\n for (const output of outputs) {\n const fieldRef = field(client.clientRoot, output);\n tx.createField(fieldRef, \"Dynamic\", outputFields[output]);\n outputsIds[output] = await toGlobalFieldId(fieldRef);\n }\n\n await tx.commit();\n\n return outputsIds;\n });\n}\n\n/** Gets a resource from field's value or throws a error. */\nasync function getFieldValue(client: PlClient, fieldId: FieldId): Promise<ResourceData> {\n // We could also do polling with pl-tree, but it seemed like an overkill,\n // that's why we have a simple polling here.\n\n return await poll(client, async (tx) => {\n const field = await tx.tx.getField(fieldId);\n if (isNotNullResourceId(field.error)) {\n const err = await tx.tx.getResourceData(field.error, true);\n throw new Error(`getFieldValue of \"${fieldId.fieldName}\" field failed: ${err.data}`);\n }\n\n if (isNullResourceId(field.value)) {\n throw new ContinuePolling();\n }\n\n return await tx.tx.getResourceData(field.value, true);\n });\n}\n\nasync function deleteFields(client: PlClient, fieldIds: FieldId[]) {\n await client.withWriteTx(\"DeleteFields\", async (tx) => {\n for (const fieldId of fieldIds) {\n tx.resetField(fieldId);\n }\n await tx.commit();\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAwCA,eAAsB,eACpB,QACA,IACA,MACyB;AACzB,KAAI;EACF,MAAM,cAAc,MAAM,kBAAkB,QAAQ,IAAI,KAAK;AAC7D,MAAI,gBAAgB,UAAU,OAC5B,QAAO;GACL,QAAQ;GACR,SAAS,wCAAwC,KAAK,SAAS;GAChE;AAGH,SAAO;GAAE,QAAQ;GAAM,SAAS,iCAAiC;GAAe;UACzE,GAAY;AACnB,SAAO;GAAE,QAAQ;GAAU,SAAS,8CAA8C;GAAK;;;AAI3F,eAAsB,kBACpB,QACA,IACA,MACiB;CACjB,MAAM,UAAU,MAAM,YACpB,IACAA,wCAAa,kCACb,OACC,QAAQ,EACP,MAAM,GAAG,YAAYC,6BAAG,YAAY,KAAK,UAAU,KAAK,CAAC,EAC1D,GACD,CAAC,WAAW,CACb;AAED,KAAI;AACF,SAAO,KAAK,gDAAgB,MAAM,cAAc,IAAI,QAAQ,SAAS,EAAE,MAAM,UAAU,CAAC,CAAC;WACjF;AACR,MAAI,WAAW,OACb,OAAM,aAAa,IAAI,OAAO,OAAO,QAAQ,CAAC;;;;AAMpD,eAAsB,WACpB,QACA,QACA,UACA,cACA,IACA,UACyB;AACzB,KAAI;EACF,MAAM,UAAU,MAAM,cAAc,QAAQ,QAAQ,UAAU,cAAc,IAAI,SAAS;AAEzF,MAAI,QAAQ,KAAK,SAAS,OACxB,QAAO;GAAE,QAAQ;GAAU,SAAS,0BAA0B,QAAQ,KAAK;GAAQ;AAGrF,SAAO;GAAE,QAAQ;GAAM,SAAS,6BAA6B,QAAQ,KAAK;GAAQ;UAC3E,GAAY;AACnB,SAAO;GAAE,QAAQ;GAAU,SAAS,0CAA0C;GAAK;;;AAIvF,eAAsB,cACpB,QACA,QACA,UACA,cACA,IACA,UACuB;CACvB,MAAM,SAAS,MAAM,SAAS,mBAAmB,SAAS;CAC1D,MAAM,SAAS,MAAM,YACnB,IACAD,wCAAa,8BACb,OACC,QAAQ,EACP,MAAM,GAAG,YAAYC,6BAAG,YAAY,KAAK,UAAU,OAAO,CAAC,EAC5D,GACD,CAAC,YAAY,OAAO,CACrB;AAED,KAAI;EACF,MAAM,WAAW,MAAM,cAAc,IAAI,OAAO,SAAS;AAEzD,+CAAa,SAAS,EAAE;GACtB,MAAM,aAAaC,sDAA2B,MAC5C,KAAK,+CAAe,SAAS,MAAM,UAAU,CAAC,CAAC,CAChD;AAGD,mDAFsC,QAAQ,WAAW,WAAW,WAAW,cAAc,CAG3F,kDAAiB,QAAQ,cAAc,UAAU,kBAAkB,OAAO;IACxE,2BAA2B;IAC3B,wBAAwB;IACxB,cAAc;IACd,UAAU;IACX,CAAC;;AAIN,SAAO,MAAM,cAAc,IAAI,OAAO,KAAK;WACnC;AACR,QAAM,aAAa,IAAI,OAAO,OAAO,OAAO,CAAC;;;;AAKjD,eAAsB,aACpB,QACA,IACA,UACA,cACA,gBACA,UACA,aACyB;AACzB,KAAI;EACF,MAAM,iBAAiB,MAAM,gBAC3B,QACA,IACA,UACA,cACA,gBACA,SACD;AAED,MAAI,mBAAmB,YACrB,QAAO;GACL,QAAQ;GACR,SAAS,sCAAsC,YAAY,SAAS;GACrE;AAEH,SAAO;GAAE,QAAQ;GAAM,SAAS,+BAA+B;GAAkB;UAC1E,GAAY;AACnB,SAAO;GAAE,QAAQ;GAAU,SAAS,4CAA4C;GAAK;;;AAIzF,eAAsB,gBACpB,QACA,IACA,UACA,cACA,gBACA,UACA;CACA,MAAM,SAAS,MAAM,SAAS,mBAAmB,SAAS;CAE1D,MAAM,UAAU,MAAM,YACpB,IACAF,wCAAa,gCACb,OACC,QAAQ,EAAE,MAAM,GAAG,YAAYC,6BAAG,YAAY,KAAK,UAAU,OAAO,CAAC,EAAE,GACxE,CAAC,YAAY,OAAO,CACrB;AAED,KAAI;EACF,MAAM,WAAW,MAAM,cAAc,IAAI,QAAQ,SAAS;AAE1D,mDACE,QACA,cACA,UACAC,sDAA2B,MAAM,KAAK,+CAAe,SAAS,MAAM,UAAU,CAAC,CAAC,CAAC,QAC3E,OACN;GACE,2BAA2B;GAC3B,wBAAwB;GACxB,cAAc;GACd,UAAU;GACX,CACF;EAED,MAAM,WAAW,MAAM,cAAc,IAAI,QAAQ,KAAK;AAEtD,SAAO,MAAM,eAAe,gBAC1B,UACA,EAAE,EACF,EAAE,EACF,OAAO,YAAY,sCAAW,QAAQ,CACvC;WACO;AACR,QAAM,aAAa,IAAI,OAAO,OAAO,QAAQ,CAAC;;;;AAKlD,eAAsB,cAAc,IAAuC;AACzE,KAAI;EACF,MAAM,cAAc,MAAM,YAAY,GAAG;AAEzC,MAAI,gBAAgB,yBAClB,QAAO;GAAE,QAAQ;GAAU,SAAS,+BAA+B;GAAe;AAEpF,SAAO;GAAE,QAAQ;GAAM,SAAS,6BAA6B;GAAe;UACrE,GAAY;AACnB,SAAO;GAAE,QAAQ;GAAU,SAAS,0CAA0C;GAAK;;;AAIvF,eAAsB,YAAY,IAA+B;CAC/D,MAAM,SAAS,MAAM,YACnB,IACAF,wCAAa,kCACb,OACC,OAAsB,EAAE,GACzB,CAAC,WAAW,CACb;AAED,KAAI;AACF,mDAAiB,MAAM,cAAc,IAAI,OAAO,SAAS,EAAE,MAAM,UAAU,CAAC;WACpE;AACR,QAAM,aAAa,IAAI,OAAO,OAAO,OAAO,CAAC;;;;AAKjD,eAAsB,eAAe,IAAc,MAAuC;AACxF,KAAI;EACF,MAAM,cAAc,MAAM,kBAAkB,IAAI,KAAK;AAErD,MAAI,gBAAgB,UAAU,KAAK,KACjC,QAAO;GAAE,QAAQ;GAAU,SAAS,sCAAsC;GAAe;AAE3F,SAAO;GAAE,QAAQ;GAAM,SAAS,oCAAoC;GAAe;UAC5E,GAAY;AACnB,SAAO;GAAE,QAAQ;GAAU,SAAS,iDAAiD;GAAK;;;AAI9F,eAAsB,kBAAkB,IAAc,MAA+B;CACnF,MAAM,SAAS,MAAM,YACnB,IACAA,wCAAa,qCACb,OACC,QAAQ,EAAE,MAAM,GAAG,YAAYC,6BAAG,YAAY,KAAK,UAAU,KAAK,CAAC,EAAE,GACtE,CAAC,WAAW,CACb;AAED,KAAI;AACF,mDAAiB,MAAM,cAAc,IAAI,OAAO,SAAS,EAAE,MAAM,UAAU,CAAC;WACpE;AACR,QAAM,aAAa,IAAI,OAAO,OAAO,OAAO,CAAC;;;;AAKjD,eAAsB,yBACpB,QACA,IACA,UACA,KAOyC;AACzC,KAAI;EACF,MAAM,WAAW,MAAM,SAAS,gBAAgB;EAChD,MAAM,UAA0C,EAAE;AAElD,OAAK,MAAM,WAAW,UAAU;GAC9B,MAAM,SAAS,MAAM,WACnB,UACA,SACA,IAAI,eACJ,IAAI,aACJ,IAAI,aACJ,IAAI,cACL;AACD,OAAI,OAAO,SAAS,QAAW;AAC7B,YAAQ,QAAQ,QAAQ;KACtB,QAAQ;KACR,SACE,mBAAmB,IAAI,YAAY,OAAO,IAAI,YAAY,0BACtC,QAAQ,KAAK,YAAY,OAAO,cAAc,cAC3D,OAAO,YAAY;KAC7B;AACD;;AAGF,UAAO,KAAK,oBAAoB,KAAK,UAAU,OAAO,CAAC,gBAAgB,QAAQ,OAAO;GACtF,MAAM,UAAU,MAAM,YACpB,IACAD,wCAAa,8CACb,OACC,QAAQ,EACP,MAAM,GAAG,YACPC,6BAAG,YACH,KAAK,UAAW,OAAO,KAA4B,OAAO,CAC3D,EACF,GACD,CAAC,kBAAkB,CACpB;AAED,OAAI;IACF,MAAM,kBAAkB,KAAK,MAC3B,OAAO,MAAM,MAAM,cAAc,IAAI,QAAQ,gBAAgB,EAAE,KAAM,CAAC,UAAU,CACjF;AAED,QAAI,iBAAiB,WAAW,mBAAmB,CACjD,SAAQ,QAAQ,QAAQ;KACtB,QAAQ;KACR,SACE,6CAA6C,OAAO,MAAM,KAAK,YACpD,OAAO,cAAc,cAAc,OAAO,YAAY;KACpE;QAED,SAAQ,QAAQ,QAAQ;KACtB,QAAQ;KACR,SACE,4BAA4B,gBAAgB,kBAAkB,OAAO,MAAM,KAAK,YACrE,OAAO,cAAc,cAAc,OAAO,YAAY;KACpE;aAEK;AACR,UAAM,aAAa,IAAI,OAAO,OAAO,QAAQ,CAAC;;;AAIlD,SAAO;UACA,GAAY;AACnB,SAAO,EACL,SAAS;GACP,QAAQ;GACR,SAAS,uDAAuD;GACjE,EACF;;;;;;AAOL,eAAsB,WACpB,UACA,SACA,OACA,SACA,SACA,eAKC;CACD,MAAM,QAAQ,kBAAkB,UAAU,SAAS,IAAI,EAAE;CAKzD,IAAI;CACJ,IAAI,gBAAgB;CACpB,IAAI,iBAAiB;AAErB,YAAW,MAAM,EAAE,MAAM,iBAAiB,OAAO;AAC/C,mBAAiB,KAAK,IAAI,gBAAgB,YAAY;AAEtD,MAAI,iBAAiB,SAAS,iBAAiB,cAE7C,QAAO;GAAE,MAAM;GAAW,aAAa;GAAgB;GAAe;AAExE;AACA,MAAI,WAAW,KAAK,QAAQ,KAAK,QAAQ,QACvC,QAAO;GAAE;GAAM,aAAa;GAAgB;GAAe;WAClD,KAAK,OAAO,QACrB,aAAY;;AAIhB,QAAO;EAAE,MAAM;EAAW,aAAa;EAAgB;EAAe;;;AAIxE,gBAAuB,kBACrB,UACA,SACA,QACA,aACyF;AACzF;CACA,MAAM,QAAQ,MAAM,SAAS,kCAAkC,QAAQ,QAAQ,OAAO;AAEtF,MAAK,MAAM,QAAQ,MAAM,QACvB,KAAI,KAAK,SAAS,UAAU,KAAK,SAAS,WAAW,OAAO,CAC1D,OAAM;EACJ;EACA;EACD;UACQ,KAAK,SAAS,MACvB,YAAW,MAAM,cAAc,kBAC7B,UACA,SACA,KAAK,UACL,YACD,EAAE;AACD,gBAAc,KAAK,IAAI,WAAW,aAAa,YAAY;AAC3D,QAAM;;;;AAOd,eAAsB,oBAAmD;CACvE,MAAM,WAAWE,kBAAK,KAAKC,gBAAG,QAAQ,EAAE,0BAA0B,KAAK,KAAK,CAAC,MAAM;CAGnF,MAAM,2CAFW,KAAK,OAAO,KAEY;AAEzC,OAAMC,yBAAG,WAAW,UAAU,YAAY;AAE1C,QAAO,EAAE,UAAU;;;AAIrB,eAAsB,iBAAqE;CACzF,MAAM,WAAWF,kBAAK,KAAKC,gBAAG,QAAQ,EAAE,sBAAsB,KAAK,KAAK,CAAC,MAAM;CAE/E,MAAM,cAAc,oCAAmB,IAAI,MAAM,EAAC,aAAa;AAC/D,OAAMC,yBAAG,UAAU,UAAU,YAAY;AAEzC,QAAO;EAAE;EAAU;EAAa;;;;;AAMlC,eAAe,YACb,QACA,KACA,WACA,QACA,SACkC;AAClC,QAAO,MAAM,OAAO,YAAY,kBAAkB,OAAO,OAAO;EAI9D,MAAM,eAAyCC,6CAC7C,IAHkBC,sCAAa,IADR,MAAMC,6CAAoB,IAAI,CACD,EAKpD,WACA,OAAO,GAAG,EACV,QACD;EAED,MAAM,aAAsC,EAAE;AAE9C,OAAK,MAAM,UAAU,SAAS;GAC5B,MAAM,gDAAiB,OAAO,YAAY,OAAO;AACjD,MAAG,YAAY,UAAU,WAAW,aAAa,QAAQ;AACzD,cAAW,UAAU,qDAAsB,SAAS;;AAGtD,QAAM,GAAG,QAAQ;AAEjB,SAAO;GACP;;;AAIJ,eAAe,cAAc,QAAkB,SAAyC;AAItF,QAAO,0CAAW,QAAQ,OAAO,OAAO;EACtC,MAAM,QAAQ,MAAM,GAAG,GAAG,SAAS,QAAQ;AAC3C,yDAAwB,MAAM,MAAM,EAAE;GACpC,MAAM,MAAM,MAAM,GAAG,GAAG,gBAAgB,MAAM,OAAO,KAAK;AAC1D,SAAM,IAAI,MAAM,qBAAqB,QAAQ,UAAU,kBAAkB,IAAI,OAAO;;AAGtF,sDAAqB,MAAM,MAAM,CAC/B,OAAM,IAAIC,2CAAiB;AAG7B,SAAO,MAAM,GAAG,GAAG,gBAAgB,MAAM,OAAO,KAAK;GACrD;;AAGJ,eAAe,aAAa,QAAkB,UAAqB;AACjE,OAAM,OAAO,YAAY,gBAAgB,OAAO,OAAO;AACrD,OAAK,MAAM,WAAW,SACpB,IAAG,WAAW,QAAQ;AAExB,QAAM,GAAG,QAAQ;GACjB"}