@milaboratories/pl-middle-layer 1.46.20 → 1.46.22

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 (402) hide show
  1. package/dist/block_registry/index.d.ts +3 -3
  2. package/dist/block_registry/registry-v2-provider.cjs.map +1 -1
  3. package/dist/block_registry/registry-v2-provider.d.ts +2 -2
  4. package/dist/block_registry/registry-v2-provider.js.map +1 -1
  5. package/dist/block_registry/registry.cjs +54 -53
  6. package/dist/block_registry/registry.cjs.map +1 -1
  7. package/dist/block_registry/registry.d.ts +4 -4
  8. package/dist/block_registry/registry.d.ts.map +1 -1
  9. package/dist/block_registry/registry.js +54 -53
  10. package/dist/block_registry/registry.js.map +1 -1
  11. package/dist/block_registry/watcher.cjs +12 -12
  12. package/dist/block_registry/watcher.cjs.map +1 -1
  13. package/dist/block_registry/watcher.d.ts +6 -6
  14. package/dist/block_registry/watcher.d.ts.map +1 -1
  15. package/dist/block_registry/watcher.js +12 -12
  16. package/dist/block_registry/watcher.js.map +1 -1
  17. package/dist/block_registry/well_known_registries.cjs +6 -6
  18. package/dist/block_registry/well_known_registries.cjs.map +1 -1
  19. package/dist/block_registry/well_known_registries.d.ts +1 -1
  20. package/dist/block_registry/well_known_registries.js +6 -6
  21. package/dist/block_registry/well_known_registries.js.map +1 -1
  22. package/dist/cfg_render/executor.cjs +11 -11
  23. package/dist/cfg_render/executor.cjs.map +1 -1
  24. package/dist/cfg_render/executor.d.ts +5 -5
  25. package/dist/cfg_render/executor.js +11 -11
  26. package/dist/cfg_render/executor.js.map +1 -1
  27. package/dist/cfg_render/operation.d.ts +5 -5
  28. package/dist/cfg_render/renderer.cjs +74 -75
  29. package/dist/cfg_render/renderer.cjs.map +1 -1
  30. package/dist/cfg_render/renderer.d.ts +2 -2
  31. package/dist/cfg_render/renderer.d.ts.map +1 -1
  32. package/dist/cfg_render/renderer.js +74 -75
  33. package/dist/cfg_render/renderer.js.map +1 -1
  34. package/dist/cfg_render/traverse.cjs +27 -27
  35. package/dist/cfg_render/traverse.cjs.map +1 -1
  36. package/dist/cfg_render/traverse.d.ts +1 -1
  37. package/dist/cfg_render/traverse.js +27 -27
  38. package/dist/cfg_render/traverse.js.map +1 -1
  39. package/dist/cfg_render/util.cjs +1 -1
  40. package/dist/cfg_render/util.cjs.map +1 -1
  41. package/dist/cfg_render/util.d.ts +1 -1
  42. package/dist/cfg_render/util.js +1 -1
  43. package/dist/cfg_render/util.js.map +1 -1
  44. package/dist/debug/index.cjs +4 -2
  45. package/dist/debug/index.cjs.map +1 -1
  46. package/dist/debug/index.d.ts +2 -2
  47. package/dist/debug/index.d.ts.map +1 -1
  48. package/dist/debug/index.js +4 -2
  49. package/dist/debug/index.js.map +1 -1
  50. package/dist/dev_env/index.cjs +8 -8
  51. package/dist/dev_env/index.cjs.map +1 -1
  52. package/dist/dev_env/index.js +8 -8
  53. package/dist/dev_env/index.js.map +1 -1
  54. package/dist/dev_env/util.cjs +1 -1
  55. package/dist/dev_env/util.cjs.map +1 -1
  56. package/dist/dev_env/util.d.ts +1 -1
  57. package/dist/dev_env/util.js +1 -1
  58. package/dist/dev_env/util.js.map +1 -1
  59. package/dist/index.d.ts +16 -16
  60. package/dist/js_render/computable_context.cjs +78 -78
  61. package/dist/js_render/computable_context.cjs.map +1 -1
  62. package/dist/js_render/computable_context.d.ts +9 -9
  63. package/dist/js_render/computable_context.d.ts.map +1 -1
  64. package/dist/js_render/computable_context.js +78 -78
  65. package/dist/js_render/computable_context.js.map +1 -1
  66. package/dist/js_render/context.cjs +33 -27
  67. package/dist/js_render/context.cjs.map +1 -1
  68. package/dist/js_render/context.d.ts +7 -7
  69. package/dist/js_render/context.d.ts.map +1 -1
  70. package/dist/js_render/context.js +33 -27
  71. package/dist/js_render/context.js.map +1 -1
  72. package/dist/js_render/index.cjs +10 -6
  73. package/dist/js_render/index.cjs.map +1 -1
  74. package/dist/js_render/index.d.ts +6 -6
  75. package/dist/js_render/index.d.ts.map +1 -1
  76. package/dist/js_render/index.js +10 -6
  77. package/dist/js_render/index.js.map +1 -1
  78. package/dist/middle_layer/active_cfg.cjs.map +1 -1
  79. package/dist/middle_layer/active_cfg.d.ts +3 -3
  80. package/dist/middle_layer/active_cfg.d.ts.map +1 -1
  81. package/dist/middle_layer/active_cfg.js.map +1 -1
  82. package/dist/middle_layer/block.cjs +1 -1
  83. package/dist/middle_layer/block.cjs.map +1 -1
  84. package/dist/middle_layer/block.d.ts +6 -6
  85. package/dist/middle_layer/block.d.ts.map +1 -1
  86. package/dist/middle_layer/block.js +1 -1
  87. package/dist/middle_layer/block.js.map +1 -1
  88. package/dist/middle_layer/block_ctx.cjs +9 -9
  89. package/dist/middle_layer/block_ctx.cjs.map +1 -1
  90. package/dist/middle_layer/block_ctx.d.ts +6 -6
  91. package/dist/middle_layer/block_ctx.d.ts.map +1 -1
  92. package/dist/middle_layer/block_ctx.js +9 -9
  93. package/dist/middle_layer/block_ctx.js.map +1 -1
  94. package/dist/middle_layer/block_ctx_unsafe.cjs +1 -1
  95. package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -1
  96. package/dist/middle_layer/block_ctx_unsafe.d.ts +5 -5
  97. package/dist/middle_layer/block_ctx_unsafe.js +1 -1
  98. package/dist/middle_layer/block_ctx_unsafe.js.map +1 -1
  99. package/dist/middle_layer/driver_kit.cjs +1 -2
  100. package/dist/middle_layer/driver_kit.cjs.map +1 -1
  101. package/dist/middle_layer/driver_kit.d.ts +7 -7
  102. package/dist/middle_layer/driver_kit.d.ts.map +1 -1
  103. package/dist/middle_layer/driver_kit.js +1 -2
  104. package/dist/middle_layer/driver_kit.js.map +1 -1
  105. package/dist/middle_layer/frontend_path.cjs +5 -5
  106. package/dist/middle_layer/frontend_path.cjs.map +1 -1
  107. package/dist/middle_layer/frontend_path.d.ts +4 -4
  108. package/dist/middle_layer/frontend_path.d.ts.map +1 -1
  109. package/dist/middle_layer/frontend_path.js +5 -5
  110. package/dist/middle_layer/frontend_path.js.map +1 -1
  111. package/dist/middle_layer/index.d.ts +4 -4
  112. package/dist/middle_layer/middle_layer.cjs +11 -11
  113. package/dist/middle_layer/middle_layer.cjs.map +1 -1
  114. package/dist/middle_layer/middle_layer.d.ts +18 -18
  115. package/dist/middle_layer/middle_layer.d.ts.map +1 -1
  116. package/dist/middle_layer/middle_layer.js +11 -11
  117. package/dist/middle_layer/middle_layer.js.map +1 -1
  118. package/dist/middle_layer/navigation_states.cjs +2 -2
  119. package/dist/middle_layer/navigation_states.cjs.map +1 -1
  120. package/dist/middle_layer/navigation_states.d.ts +2 -2
  121. package/dist/middle_layer/navigation_states.js +2 -2
  122. package/dist/middle_layer/navigation_states.js.map +1 -1
  123. package/dist/middle_layer/ops.cjs +5 -5
  124. package/dist/middle_layer/ops.cjs.map +1 -1
  125. package/dist/middle_layer/ops.d.ts +11 -11
  126. package/dist/middle_layer/ops.d.ts.map +1 -1
  127. package/dist/middle_layer/ops.js +5 -5
  128. package/dist/middle_layer/ops.js.map +1 -1
  129. package/dist/middle_layer/project.cjs +71 -63
  130. package/dist/middle_layer/project.cjs.map +1 -1
  131. package/dist/middle_layer/project.d.ts +10 -10
  132. package/dist/middle_layer/project.d.ts.map +1 -1
  133. package/dist/middle_layer/project.js +71 -63
  134. package/dist/middle_layer/project.js.map +1 -1
  135. package/dist/middle_layer/project_list.cjs +2 -2
  136. package/dist/middle_layer/project_list.cjs.map +1 -1
  137. package/dist/middle_layer/project_list.d.ts +6 -6
  138. package/dist/middle_layer/project_list.d.ts.map +1 -1
  139. package/dist/middle_layer/project_list.js +2 -2
  140. package/dist/middle_layer/project_list.js.map +1 -1
  141. package/dist/middle_layer/project_overview.cjs +40 -40
  142. package/dist/middle_layer/project_overview.cjs.map +1 -1
  143. package/dist/middle_layer/project_overview.d.ts +5 -5
  144. package/dist/middle_layer/project_overview.d.ts.map +1 -1
  145. package/dist/middle_layer/project_overview.js +40 -40
  146. package/dist/middle_layer/project_overview.js.map +1 -1
  147. package/dist/middle_layer/project_overview_light.cjs.map +1 -1
  148. package/dist/middle_layer/project_overview_light.d.ts +2 -2
  149. package/dist/middle_layer/project_overview_light.d.ts.map +1 -1
  150. package/dist/middle_layer/project_overview_light.js.map +1 -1
  151. package/dist/middle_layer/render.cjs +1 -1
  152. package/dist/middle_layer/render.cjs.map +1 -1
  153. package/dist/middle_layer/render.d.ts +4 -4
  154. package/dist/middle_layer/render.js +1 -1
  155. package/dist/middle_layer/render.js.map +1 -1
  156. package/dist/middle_layer/render.test.d.ts +2 -2
  157. package/dist/middle_layer/types.d.ts +3 -3
  158. package/dist/middle_layer/util.cjs +9 -4
  159. package/dist/middle_layer/util.cjs.map +1 -1
  160. package/dist/middle_layer/util.d.ts +4 -4
  161. package/dist/middle_layer/util.d.ts.map +1 -1
  162. package/dist/middle_layer/util.js +9 -4
  163. package/dist/middle_layer/util.js.map +1 -1
  164. package/dist/model/args.cjs +19 -15
  165. package/dist/model/args.cjs.map +1 -1
  166. package/dist/model/args.d.ts +1 -1
  167. package/dist/model/args.d.ts.map +1 -1
  168. package/dist/model/args.js +19 -15
  169. package/dist/model/args.js.map +1 -1
  170. package/dist/model/block_pack.d.ts +2 -2
  171. package/dist/model/block_pack_spec.cjs +3 -3
  172. package/dist/model/block_pack_spec.cjs.map +1 -1
  173. package/dist/model/block_pack_spec.d.ts +8 -8
  174. package/dist/model/block_pack_spec.js +3 -3
  175. package/dist/model/block_pack_spec.js.map +1 -1
  176. package/dist/model/block_storage_helper.cjs +4 -4
  177. package/dist/model/block_storage_helper.cjs.map +1 -1
  178. package/dist/model/block_storage_helper.d.ts +2 -2
  179. package/dist/model/block_storage_helper.d.ts.map +1 -1
  180. package/dist/model/block_storage_helper.js +4 -4
  181. package/dist/model/block_storage_helper.js.map +1 -1
  182. package/dist/model/index.d.ts +3 -3
  183. package/dist/model/project_helper.cjs +30 -13
  184. package/dist/model/project_helper.cjs.map +1 -1
  185. package/dist/model/project_helper.d.ts +4 -4
  186. package/dist/model/project_helper.d.ts.map +1 -1
  187. package/dist/model/project_helper.js +30 -13
  188. package/dist/model/project_helper.js.map +1 -1
  189. package/dist/model/project_model.cjs +23 -23
  190. package/dist/model/project_model.cjs.map +1 -1
  191. package/dist/model/project_model.d.ts +6 -6
  192. package/dist/model/project_model.d.ts.map +1 -1
  193. package/dist/model/project_model.js +23 -23
  194. package/dist/model/project_model.js.map +1 -1
  195. package/dist/model/project_model_util.cjs +2 -2
  196. package/dist/model/project_model_util.cjs.map +1 -1
  197. package/dist/model/project_model_util.d.ts +3 -3
  198. package/dist/model/project_model_util.d.ts.map +1 -1
  199. package/dist/model/project_model_util.js +2 -2
  200. package/dist/model/project_model_util.js.map +1 -1
  201. package/dist/model/project_model_v1.cjs +2 -2
  202. package/dist/model/project_model_v1.cjs.map +1 -1
  203. package/dist/model/project_model_v1.js +2 -2
  204. package/dist/model/project_model_v1.js.map +1 -1
  205. package/dist/model/template_spec.d.ts +5 -5
  206. package/dist/mutator/block-pack/block_pack.cjs +43 -43
  207. package/dist/mutator/block-pack/block_pack.cjs.map +1 -1
  208. package/dist/mutator/block-pack/block_pack.d.ts +6 -6
  209. package/dist/mutator/block-pack/block_pack.d.ts.map +1 -1
  210. package/dist/mutator/block-pack/block_pack.js +43 -43
  211. package/dist/mutator/block-pack/block_pack.js.map +1 -1
  212. package/dist/mutator/block-pack/frontend.cjs +2 -2
  213. package/dist/mutator/block-pack/frontend.cjs.map +1 -1
  214. package/dist/mutator/block-pack/frontend.d.ts +2 -2
  215. package/dist/mutator/block-pack/frontend.d.ts.map +1 -1
  216. package/dist/mutator/block-pack/frontend.js +2 -2
  217. package/dist/mutator/block-pack/frontend.js.map +1 -1
  218. package/dist/mutator/context_export.cjs +5 -5
  219. package/dist/mutator/context_export.cjs.map +1 -1
  220. package/dist/mutator/context_export.d.ts +2 -2
  221. package/dist/mutator/context_export.d.ts.map +1 -1
  222. package/dist/mutator/context_export.js +5 -5
  223. package/dist/mutator/context_export.js.map +1 -1
  224. package/dist/mutator/migration.cjs +7 -7
  225. package/dist/mutator/migration.cjs.map +1 -1
  226. package/dist/mutator/migration.d.ts +1 -1
  227. package/dist/mutator/migration.d.ts.map +1 -1
  228. package/dist/mutator/migration.js +7 -7
  229. package/dist/mutator/migration.js.map +1 -1
  230. package/dist/mutator/project.cjs +147 -148
  231. package/dist/mutator/project.cjs.map +1 -1
  232. package/dist/mutator/project.d.ts +13 -13
  233. package/dist/mutator/project.d.ts.map +1 -1
  234. package/dist/mutator/project.js +147 -148
  235. package/dist/mutator/project.js.map +1 -1
  236. package/dist/mutator/template/direct_template_loader.cjs +16 -16
  237. package/dist/mutator/template/direct_template_loader.cjs.map +1 -1
  238. package/dist/mutator/template/direct_template_loader.d.ts +2 -2
  239. package/dist/mutator/template/direct_template_loader.d.ts.map +1 -1
  240. package/dist/mutator/template/direct_template_loader.js +16 -16
  241. package/dist/mutator/template/direct_template_loader.js.map +1 -1
  242. package/dist/mutator/template/direct_template_loader_v3.cjs +13 -13
  243. package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -1
  244. package/dist/mutator/template/direct_template_loader_v3.d.ts +3 -3
  245. package/dist/mutator/template/direct_template_loader_v3.d.ts.map +1 -1
  246. package/dist/mutator/template/direct_template_loader_v3.js +13 -13
  247. package/dist/mutator/template/direct_template_loader_v3.js.map +1 -1
  248. package/dist/mutator/template/render_block.cjs +7 -7
  249. package/dist/mutator/template/render_block.cjs.map +1 -1
  250. package/dist/mutator/template/render_block.d.ts +1 -1
  251. package/dist/mutator/template/render_block.d.ts.map +1 -1
  252. package/dist/mutator/template/render_block.js +7 -7
  253. package/dist/mutator/template/render_block.js.map +1 -1
  254. package/dist/mutator/template/render_template.cjs +10 -10
  255. package/dist/mutator/template/render_template.cjs.map +1 -1
  256. package/dist/mutator/template/render_template.d.ts +2 -2
  257. package/dist/mutator/template/render_template.js +10 -10
  258. package/dist/mutator/template/render_template.js.map +1 -1
  259. package/dist/mutator/template/template_loading.cjs +17 -17
  260. package/dist/mutator/template/template_loading.cjs.map +1 -1
  261. package/dist/mutator/template/template_loading.d.ts +2 -2
  262. package/dist/mutator/template/template_loading.js +17 -17
  263. package/dist/mutator/template/template_loading.js.map +1 -1
  264. package/dist/network_check/network_check.cjs +33 -32
  265. package/dist/network_check/network_check.cjs.map +1 -1
  266. package/dist/network_check/network_check.d.ts +6 -6
  267. package/dist/network_check/network_check.d.ts.map +1 -1
  268. package/dist/network_check/network_check.js +33 -32
  269. package/dist/network_check/network_check.js.map +1 -1
  270. package/dist/network_check/pings.cjs +3 -3
  271. package/dist/network_check/pings.cjs.map +1 -1
  272. package/dist/network_check/pings.d.ts +4 -4
  273. package/dist/network_check/pings.d.ts.map +1 -1
  274. package/dist/network_check/pings.js +3 -3
  275. package/dist/network_check/pings.js.map +1 -1
  276. package/dist/network_check/template.cjs +57 -44
  277. package/dist/network_check/template.cjs.map +1 -1
  278. package/dist/network_check/template.d.ts +8 -8
  279. package/dist/network_check/template.d.ts.map +1 -1
  280. package/dist/network_check/template.js +57 -44
  281. package/dist/network_check/template.js.map +1 -1
  282. package/dist/pool/data.cjs +45 -33
  283. package/dist/pool/data.cjs.map +1 -1
  284. package/dist/pool/data.d.ts +3 -3
  285. package/dist/pool/data.d.ts.map +1 -1
  286. package/dist/pool/data.js +45 -33
  287. package/dist/pool/data.js.map +1 -1
  288. package/dist/pool/driver.cjs +18 -16
  289. package/dist/pool/driver.cjs.map +1 -1
  290. package/dist/pool/driver.d.ts +5 -5
  291. package/dist/pool/driver.d.ts.map +1 -1
  292. package/dist/pool/driver.js +18 -16
  293. package/dist/pool/driver.js.map +1 -1
  294. package/dist/pool/index.d.ts +2 -2
  295. package/dist/pool/p_object_collection.cjs +5 -5
  296. package/dist/pool/p_object_collection.cjs.map +1 -1
  297. package/dist/pool/p_object_collection.d.ts +2 -2
  298. package/dist/pool/p_object_collection.d.ts.map +1 -1
  299. package/dist/pool/p_object_collection.js +5 -5
  300. package/dist/pool/p_object_collection.js.map +1 -1
  301. package/dist/pool/result_pool.cjs +6 -6
  302. package/dist/pool/result_pool.cjs.map +1 -1
  303. package/dist/pool/result_pool.d.ts +6 -6
  304. package/dist/pool/result_pool.d.ts.map +1 -1
  305. package/dist/pool/result_pool.js +6 -6
  306. package/dist/pool/result_pool.js.map +1 -1
  307. package/dist/test/block_packs.d.ts +2 -2
  308. package/dist/test/known_templates.d.ts +1 -1
  309. package/dist/worker/WorkerManager.cjs +7 -8
  310. package/dist/worker/WorkerManager.cjs.map +1 -1
  311. package/dist/worker/WorkerManager.d.ts +2 -2
  312. package/dist/worker/WorkerManager.d.ts.map +1 -1
  313. package/dist/worker/WorkerManager.js +7 -8
  314. package/dist/worker/WorkerManager.js.map +1 -1
  315. package/dist/worker/worker.cjs +6 -4
  316. package/dist/worker/worker.cjs.map +1 -1
  317. package/dist/worker/worker.js +6 -4
  318. package/dist/worker/worker.js.map +1 -1
  319. package/dist/worker/workerApi.cjs.map +1 -1
  320. package/dist/worker/workerApi.js.map +1 -1
  321. package/package.json +41 -41
  322. package/src/block_registry/index.ts +3 -3
  323. package/src/block_registry/registry-v2-provider.ts +2 -2
  324. package/src/block_registry/registry.test.ts +17 -17
  325. package/src/block_registry/registry.ts +55 -60
  326. package/src/block_registry/watcher.ts +24 -23
  327. package/src/block_registry/well_known_registries.ts +7 -7
  328. package/src/cfg_render/executor.test.ts +36 -36
  329. package/src/cfg_render/executor.ts +24 -24
  330. package/src/cfg_render/operation.ts +5 -5
  331. package/src/cfg_render/renderer.ts +96 -93
  332. package/src/cfg_render/traverse.ts +50 -50
  333. package/src/cfg_render/util.ts +3 -3
  334. package/src/debug/index.ts +6 -4
  335. package/src/dev_env/index.ts +16 -16
  336. package/src/dev_env/util.ts +3 -3
  337. package/src/index.ts +16 -16
  338. package/src/js_render/computable_context.ts +143 -126
  339. package/src/js_render/context.ts +72 -44
  340. package/src/js_render/index.ts +51 -24
  341. package/src/middle_layer/active_cfg.ts +14 -12
  342. package/src/middle_layer/block.ts +30 -23
  343. package/src/middle_layer/block_ctx.ts +27 -31
  344. package/src/middle_layer/block_ctx_unsafe.ts +9 -9
  345. package/src/middle_layer/driver_kit.ts +13 -19
  346. package/src/middle_layer/frontend_path.ts +18 -23
  347. package/src/middle_layer/index.ts +4 -4
  348. package/src/middle_layer/middle_layer.ts +57 -55
  349. package/src/middle_layer/navigation_states.ts +6 -6
  350. package/src/middle_layer/ops.ts +43 -42
  351. package/src/middle_layer/project.ts +274 -173
  352. package/src/middle_layer/project_list.ts +14 -15
  353. package/src/middle_layer/project_overview.ts +104 -113
  354. package/src/middle_layer/project_overview_light.ts +7 -9
  355. package/src/middle_layer/render.test.ts +49 -48
  356. package/src/middle_layer/render.ts +9 -9
  357. package/src/middle_layer/types.ts +3 -3
  358. package/src/middle_layer/util.ts +17 -12
  359. package/src/model/args.ts +22 -19
  360. package/src/model/block_pack.ts +2 -2
  361. package/src/model/block_pack_spec.ts +11 -11
  362. package/src/model/block_storage_helper.ts +11 -11
  363. package/src/model/index.ts +3 -3
  364. package/src/model/project_helper.ts +78 -32
  365. package/src/model/project_model.test.ts +5 -9
  366. package/src/model/project_model.ts +48 -49
  367. package/src/model/project_model_util.test.ts +86 -53
  368. package/src/model/project_model_util.ts +18 -14
  369. package/src/model/project_model_v1.ts +3 -3
  370. package/src/model/template_spec.ts +5 -5
  371. package/src/mutator/block-pack/block_pack.test.ts +25 -25
  372. package/src/mutator/block-pack/block_pack.ts +70 -68
  373. package/src/mutator/block-pack/frontend.ts +6 -13
  374. package/src/mutator/context_export.ts +12 -10
  375. package/src/mutator/migration.ts +20 -14
  376. package/src/mutator/project-v3.test.ts +123 -118
  377. package/src/mutator/project.test.ts +105 -94
  378. package/src/mutator/project.ts +357 -274
  379. package/src/mutator/template/direct_template_loader.ts +26 -32
  380. package/src/mutator/template/direct_template_loader_v3.ts +51 -25
  381. package/src/mutator/template/render_block.ts +14 -21
  382. package/src/mutator/template/render_template.ts +13 -13
  383. package/src/mutator/template/template_loading.ts +23 -23
  384. package/src/mutator/template/template_render.test.ts +87 -86
  385. package/src/network_check/network_check.test.ts +4 -4
  386. package/src/network_check/network_check.ts +102 -79
  387. package/src/network_check/pings.ts +35 -16
  388. package/src/network_check/template.test.ts +47 -44
  389. package/src/network_check/template.ts +151 -95
  390. package/src/network_check/test_utils.ts +1 -1
  391. package/src/pool/data.ts +81 -69
  392. package/src/pool/driver.ts +56 -51
  393. package/src/pool/index.ts +2 -2
  394. package/src/pool/p_object_collection.ts +16 -15
  395. package/src/pool/result_pool.ts +23 -34
  396. package/src/test/block_packs.ts +15 -15
  397. package/src/test/explicit_templates.ts +4 -4
  398. package/src/test/known_templates.ts +10 -10
  399. package/src/test_env.ts +1 -1
  400. package/src/worker/WorkerManager.ts +22 -18
  401. package/src/worker/worker.ts +11 -9
  402. package/src/worker/workerApi.ts +1 -1
@@ -1,18 +1,15 @@
1
- import type { ComputableCtx } from '@milaboratories/computable';
2
- import type {
3
- BlockCodeKnownFeatureFlags } from '@platforma-sdk/model';
4
- import {
5
- JsRenderInternal,
6
- } from '@platforma-sdk/model';
7
- import { notEmpty } from '@milaboratories/ts-helpers';
8
- import { randomUUID } from 'node:crypto';
9
- import type { QuickJSContext, QuickJSHandle } from 'quickjs-emscripten';
10
- import { Scope, errors } from 'quickjs-emscripten';
11
- import type { BlockContextAny } from '../middle_layer/block_ctx';
12
- import type { MiddleLayerEnvironment } from '../middle_layer/middle_layer';
13
- import { stringifyWithResourceId } from '@milaboratories/pl-client';
14
- import { PlQuickJSError } from '@milaboratories/pl-errors';
15
- import { ComputableContextHelper } from './computable_context';
1
+ import type { ComputableCtx } from "@milaboratories/computable";
2
+ import type { BlockCodeKnownFeatureFlags } from "@platforma-sdk/model";
3
+ import { JsRenderInternal } from "@platforma-sdk/model";
4
+ import { notEmpty } from "@milaboratories/ts-helpers";
5
+ import { randomUUID } from "node:crypto";
6
+ import type { QuickJSContext, QuickJSHandle } from "quickjs-emscripten";
7
+ import { Scope, errors } from "quickjs-emscripten";
8
+ import type { BlockContextAny } from "../middle_layer/block_ctx";
9
+ import type { MiddleLayerEnvironment } from "../middle_layer/middle_layer";
10
+ import { stringifyWithResourceId } from "@milaboratories/pl-client";
11
+ import { PlQuickJSError } from "@milaboratories/pl-errors";
12
+ import { ComputableContextHelper } from "./computable_context";
16
13
 
17
14
  export type DeadlineSettings = {
18
15
  currentExecutionTarget: string;
@@ -70,28 +67,37 @@ export class JsExecutionContext {
70
67
  this.callbackRegistry = this.scope.manage(this.vm.newObject());
71
68
 
72
69
  this.fnJSONStringify = scope.manage(
73
- vm.getProp(vm.global, 'JSON').consume((json) => vm.getProp(json, 'stringify')),
70
+ vm.getProp(vm.global, "JSON").consume((json) => vm.getProp(json, "stringify")),
74
71
  );
75
- if (vm.typeof(this.fnJSONStringify) !== 'function')
72
+ if (vm.typeof(this.fnJSONStringify) !== "function")
76
73
  throw new Error(`JSON.stringify() not found.`);
77
74
 
78
75
  this.fnJSONParse = scope.manage(
79
- vm.getProp(vm.global, 'JSON').consume((json) => vm.getProp(json, 'parse')),
76
+ vm.getProp(vm.global, "JSON").consume((json) => vm.getProp(json, "parse")),
80
77
  );
81
- if (vm.typeof(this.fnJSONParse) !== 'function') throw new Error(`JSON.parse() not found.`);
78
+ if (vm.typeof(this.fnJSONParse) !== "function") throw new Error(`JSON.parse() not found.`);
82
79
 
83
80
  if (computableEnv !== undefined)
84
- this.computableHelper = new ComputableContextHelper(this, computableEnv.blockCtx, computableEnv.mlEnv, featureFlags, computableEnv.computableCtx);
81
+ this.computableHelper = new ComputableContextHelper(
82
+ this,
83
+ computableEnv.blockCtx,
84
+ computableEnv.mlEnv,
85
+ featureFlags,
86
+ computableEnv.computableCtx,
87
+ );
85
88
 
86
89
  this.injectCtx();
87
90
  }
88
91
 
89
92
  public resetComputableCtx() {
90
- notEmpty(this.computableHelper, 'Computable context helper is not initialized').resetComputableCtx();
93
+ notEmpty(
94
+ this.computableHelper,
95
+ "Computable context helper is not initialized",
96
+ ).resetComputableCtx();
91
97
  }
92
98
 
93
99
  private static cleanErrorContext(error: unknown): void {
94
- if (typeof error === 'object' && error !== null && 'context' in error) delete error['context'];
100
+ if (typeof error === "object" && error !== null && "context" in error) delete error["context"];
95
101
  }
96
102
 
97
103
  // private static cleanError(error: unknown): unknown {
@@ -106,8 +112,11 @@ export class JsExecutionContext {
106
112
 
107
113
  public evaluateBundle(code: string) {
108
114
  try {
109
- this.deadlineSetter({ currentExecutionTarget: 'evaluateBundle', deadline: Date.now() + 10000 });
110
- this.vm.unwrapResult(this.vm.evalCode(code, 'bundle.js', { type: 'global' })).dispose();
115
+ this.deadlineSetter({
116
+ currentExecutionTarget: "evaluateBundle",
117
+ deadline: Date.now() + 10000,
118
+ });
119
+ this.vm.unwrapResult(this.vm.evalCode(code, "bundle.js", { type: "global" })).dispose();
111
120
  } catch (err: unknown) {
112
121
  JsExecutionContext.cleanErrorContext(err);
113
122
  throw err;
@@ -122,7 +131,7 @@ export class JsExecutionContext {
122
131
  return Scope.withScope((localScope) => {
123
132
  const targetCallback = localScope.manage(this.vm.getProp(this.callbackRegistry, cbName));
124
133
 
125
- if (this.vm.typeof(targetCallback) !== 'function')
134
+ if (this.vm.typeof(targetCallback) !== "function")
126
135
  throw new Error(`No such callback: ${cbName}`);
127
136
 
128
137
  return this.scope.manage(
@@ -154,7 +163,9 @@ export class JsExecutionContext {
154
163
  ): QuickJSHandle {
155
164
  const result = this.tryExportSingleValue(obj, scope);
156
165
  if (result === undefined) {
157
- throw new Error(`Can't export value: ${obj === undefined ? 'undefined' : JSON.stringify(obj)}`);
166
+ throw new Error(
167
+ `Can't export value: ${obj === undefined ? "undefined" : JSON.stringify(obj)}`,
168
+ );
158
169
  }
159
170
  return result;
160
171
  }
@@ -163,18 +174,18 @@ export class JsExecutionContext {
163
174
  let handle: QuickJSHandle;
164
175
  let manage = false;
165
176
  switch (typeof obj) {
166
- case 'string':
177
+ case "string":
167
178
  handle = this.vm.newString(obj);
168
179
  manage = true;
169
180
  break;
170
- case 'number':
181
+ case "number":
171
182
  handle = this.vm.newNumber(obj);
172
183
  manage = true;
173
184
  break;
174
- case 'undefined':
185
+ case "undefined":
175
186
  handle = this.vm.undefined;
176
187
  break;
177
- case 'boolean':
188
+ case "boolean":
178
189
  handle = obj ? this.vm.true : this.vm.false;
179
190
  break;
180
191
  default:
@@ -210,11 +221,11 @@ export class JsExecutionContext {
210
221
  public importObjectUniversal(handle: QuickJSHandle | undefined): unknown {
211
222
  if (handle === undefined) return undefined;
212
223
  switch (this.vm.typeof(handle)) {
213
- case 'undefined':
224
+ case "undefined":
214
225
  return undefined;
215
- case 'boolean':
216
- case 'number':
217
- case 'string':
226
+ case "boolean":
227
+ case "number":
228
+ case "string":
218
229
  return this.vm.dump(handle);
219
230
  default:
220
231
  return this.importObjectViaJson(handle);
@@ -225,7 +236,7 @@ export class JsExecutionContext {
225
236
  const text = this.vm
226
237
  .unwrapResult(this.vm.callFunction(this.fnJSONStringify, this.vm.undefined, handle))
227
238
  .consume((strHandle) => this.vm.getString(strHandle));
228
- if (text === 'undefined')
239
+ if (text === "undefined")
229
240
  // special case with futures
230
241
  return undefined;
231
242
  return JSON.parse(text);
@@ -239,10 +250,10 @@ export class JsExecutionContext {
239
250
  // Core props
240
251
  //
241
252
 
242
- this.vm.setProp(configCtx, 'callbackRegistry', this.callbackRegistry);
253
+ this.vm.setProp(configCtx, "callbackRegistry", this.callbackRegistry);
243
254
  this.vm.setProp(
244
255
  configCtx,
245
- 'featureFlags',
256
+ "featureFlags",
246
257
  this.exportObjectUniversal(JsRenderInternal.GlobalCfgRenderCtxFeatureFlags, localScope),
247
258
  );
248
259
 
@@ -255,7 +266,7 @@ export class JsExecutionContext {
255
266
  // Creating global variable inside the vm
256
267
  //
257
268
 
258
- this.vm.setProp(this.vm.global, 'cfgRenderCtx', configCtx);
269
+ this.vm.setProp(this.vm.global, "cfgRenderCtx", configCtx);
259
270
  });
260
271
  }
261
272
  }
@@ -290,25 +301,42 @@ export class ErrorRepository {
290
301
  /** Returns the original error that was stored by parsing uuid of mimicrated error. */
291
302
  public getOriginal(quickJSError: unknown): unknown {
292
303
  if (!(quickJSError instanceof errors.QuickJSUnwrapError)) {
293
- console.warn('ErrorRepo: quickJSError is not a QuickJSUnwrapError', stringifyWithResourceId(quickJSError));
304
+ console.warn(
305
+ "ErrorRepo: quickJSError is not a QuickJSUnwrapError",
306
+ stringifyWithResourceId(quickJSError),
307
+ );
294
308
  return quickJSError;
295
309
  }
296
310
 
297
311
  const cause = quickJSError.cause;
298
- if (!(typeof cause === 'object' && cause !== null && ('name' in cause) && typeof cause.name === 'string')) {
299
- console.warn('ErrorRepo: quickJSError.cause is not an Error (can be stack limit exceeded)', stringifyWithResourceId(quickJSError));
312
+ if (
313
+ !(
314
+ typeof cause === "object" &&
315
+ cause !== null &&
316
+ "name" in cause &&
317
+ typeof cause.name === "string"
318
+ )
319
+ ) {
320
+ console.warn(
321
+ "ErrorRepo: quickJSError.cause is not an Error (can be stack limit exceeded)",
322
+ stringifyWithResourceId(quickJSError),
323
+ );
300
324
  return quickJSError;
301
325
  }
302
326
 
303
327
  const causeName = cause.name;
304
- const errorId = causeName.slice(causeName.indexOf('/uuid:') + '/uuid:'.length);
328
+ const errorId = causeName.slice(causeName.indexOf("/uuid:") + "/uuid:".length);
305
329
  if (!errorId) {
306
- throw new Error(`ErrorRepo: quickJSError.cause.name does not contain errorId: ${causeName}, ${stringifyWithResourceId(quickJSError)}`);
330
+ throw new Error(
331
+ `ErrorRepo: quickJSError.cause.name does not contain errorId: ${causeName}, ${stringifyWithResourceId(quickJSError)}`,
332
+ );
307
333
  }
308
334
 
309
335
  const error = this.errorIdToError.get(errorId);
310
336
  if (error === undefined) {
311
- throw new Error(`ErrorRepo: errorId not found: ${errorId}, ${stringifyWithResourceId(quickJSError)}`);
337
+ throw new Error(
338
+ `ErrorRepo: errorId not found: ${errorId}, ${stringifyWithResourceId(quickJSError)}`,
339
+ );
312
340
  }
313
341
 
314
342
  return new PlQuickJSError(quickJSError, error as Error);
@@ -1,20 +1,30 @@
1
- import type { MiddleLayerEnvironment } from '../middle_layer/middle_layer';
2
- import type { BlockCodeWithInfo, ConfigRenderLambda } from '@platforma-sdk/model';
3
- import type { ComputableRenderingOps } from '@milaboratories/computable';
4
- import { Computable } from '@milaboratories/computable';
5
- import type { QuickJSWASMModule } from 'quickjs-emscripten';
6
- import { Scope } from 'quickjs-emscripten';
7
- import type { DeadlineSettings } from './context';
8
- import { JsExecutionContext } from './context';
9
- import type { BlockContextAny } from '../middle_layer/block_ctx';
10
- import { getDebugFlags } from '../debug';
11
-
12
- function logOutputStatus(handle: string, renderedResult: unknown, stable: boolean, recalculationCounter: number, unstableMarker?: string) {
13
- if (getDebugFlags().logOutputStatus && (getDebugFlags().logOutputStatus === 'any' || !stable)) {
1
+ import type { MiddleLayerEnvironment } from "../middle_layer/middle_layer";
2
+ import type { BlockCodeWithInfo, ConfigRenderLambda } from "@platforma-sdk/model";
3
+ import type { ComputableRenderingOps } from "@milaboratories/computable";
4
+ import { Computable } from "@milaboratories/computable";
5
+ import type { QuickJSWASMModule } from "quickjs-emscripten";
6
+ import { Scope } from "quickjs-emscripten";
7
+ import type { DeadlineSettings } from "./context";
8
+ import { JsExecutionContext } from "./context";
9
+ import type { BlockContextAny } from "../middle_layer/block_ctx";
10
+ import { getDebugFlags } from "../debug";
11
+
12
+ function logOutputStatus(
13
+ handle: string,
14
+ renderedResult: unknown,
15
+ stable: boolean,
16
+ recalculationCounter: number,
17
+ unstableMarker?: string,
18
+ ) {
19
+ if (getDebugFlags().logOutputStatus && (getDebugFlags().logOutputStatus === "any" || !stable)) {
14
20
  if (stable)
15
- console.log(`Stable output ${handle} calculated ${renderedResult !== undefined ? 'defined' : 'undefined'}; (#${recalculationCounter})`);
21
+ console.log(
22
+ `Stable output ${handle} calculated ${renderedResult !== undefined ? "defined" : "undefined"}; (#${recalculationCounter})`,
23
+ );
16
24
  else
17
- console.log(`Unstable output ${handle}; marker = ${unstableMarker}; ${renderedResult !== undefined ? 'defined' : 'undefined'} (#${recalculationCounter})`);
25
+ console.log(
26
+ `Unstable output ${handle}; marker = ${unstableMarker}; ${renderedResult !== undefined ? "defined" : "undefined"} (#${recalculationCounter})`,
27
+ );
18
28
  }
19
29
  }
20
30
 
@@ -77,12 +87,14 @@ export function computableFromRF(
77
87
  // adding configKey to reload all outputs on block-pack update
78
88
  const key = `${ctx.blockId}#lambda#${configKey}#${fh.handle}`;
79
89
  ops = { ...ops, key };
80
- if (ops.mode === undefined && fh.retentive === true) ops.mode = 'StableOnlyRetentive';
90
+ if (ops.mode === undefined && fh.retentive === true) ops.mode = "StableOnlyRetentive";
81
91
  return Computable.makeRaw((cCtx) => {
82
92
  const { code, featureFlags } = codeWithInfo;
83
93
 
84
94
  if (getDebugFlags().logOutputRecalculations)
85
- console.log(`Block lambda recalculation : ${key} (${cCtx.changeSourceMarker}; ${cCtx.bodyInvocations} invocations)`);
95
+ console.log(
96
+ `Block lambda recalculation : ${key} (${cCtx.changeSourceMarker}; ${cCtx.bodyInvocations} invocations)`,
97
+ );
86
98
 
87
99
  const scope = new Scope();
88
100
  let keepVmAlive = false;
@@ -104,10 +116,15 @@ export function computableFromRF(
104
116
  return false;
105
117
  });
106
118
  const vm = scope.manage(runtime.newContext());
107
- const rCtx = new JsExecutionContext(scope, vm,
108
- (s) => { deadlineSettings = s; },
119
+ const rCtx = new JsExecutionContext(
120
+ scope,
121
+ vm,
122
+ (s) => {
123
+ deadlineSettings = s;
124
+ },
109
125
  featureFlags,
110
- { computableCtx: cCtx, blockCtx: ctx, mlEnv: env });
126
+ { computableCtx: cCtx, blockCtx: ctx, mlEnv: env },
127
+ );
111
128
 
112
129
  rCtx.evaluateBundle(code.content);
113
130
  const result = rCtx.runCallback(fh.handle);
@@ -118,7 +135,13 @@ export function computableFromRF(
118
135
 
119
136
  if (Object.keys(toBeResolved).length === 0) {
120
137
  const importedResult = rCtx.importObjectUniversal(result);
121
- logOutputStatus(fh.handle, importedResult, cCtx.unstableMarker === undefined, -1, cCtx.unstableMarker);
138
+ logOutputStatus(
139
+ fh.handle,
140
+ importedResult,
141
+ cCtx.unstableMarker === undefined,
142
+ -1,
143
+ cCtx.unstableMarker,
144
+ );
122
145
  return { ir: importedResult };
123
146
  }
124
147
 
@@ -130,7 +153,7 @@ export function computableFromRF(
130
153
  return {
131
154
  ir: toBeResolved,
132
155
  postprocessValue: (resolved: Record<string, unknown>, { unstableMarker, stable }) => {
133
- // resolving futures
156
+ // resolving futures
134
157
  for (const [handle, value] of Object.entries(resolved)) rCtx.runCallback(handle, value);
135
158
 
136
159
  // rendering result
@@ -172,8 +195,12 @@ export function executeSingleLambda(
172
195
  return false;
173
196
  });
174
197
  const vm = scope.manage(runtime.newContext());
175
- const rCtx = new JsExecutionContext(scope, vm,
176
- (s) => { deadlineSettings = s; },
198
+ const rCtx = new JsExecutionContext(
199
+ scope,
200
+ vm,
201
+ (s) => {
202
+ deadlineSettings = s;
203
+ },
177
204
  featureFlags,
178
205
  );
179
206
 
@@ -1,14 +1,14 @@
1
- import { notEmpty } from '@milaboratories/ts-helpers';
2
- import type { PlTreeEntry } from '@milaboratories/pl-tree';
3
- import type { MiddleLayerEnvironment } from './middle_layer';
4
- import { Computable } from '@milaboratories/computable';
5
- import type { ProjectStructure } from '../model/project_model';
6
- import { ProjectStructureKey } from '../model/project_model';
7
- import { allBlocks } from '../model/project_model_util';
8
- import { constructBlockContext } from './block_ctx';
9
- import { computableFromCfgOrRF, isActive } from './render';
10
- import { getBlockPackInfo } from './util';
11
- import { extractCodeWithInfo, wrapCallback } from '@platforma-sdk/model';
1
+ import { notEmpty } from "@milaboratories/ts-helpers";
2
+ import type { PlTreeEntry } from "@milaboratories/pl-tree";
3
+ import type { MiddleLayerEnvironment } from "./middle_layer";
4
+ import { Computable } from "@milaboratories/computable";
5
+ import type { ProjectStructure } from "../model/project_model";
6
+ import { ProjectStructureKey } from "../model/project_model";
7
+ import { allBlocks } from "../model/project_model_util";
8
+ import { constructBlockContext } from "./block_ctx";
9
+ import { computableFromCfgOrRF, isActive } from "./render";
10
+ import { getBlockPackInfo } from "./util";
11
+ import { extractCodeWithInfo, wrapCallback } from "@platforma-sdk/model";
12
12
 
13
13
  /** Returns derived general project state form the project resource */
14
14
  export function activeConfigs(
@@ -38,7 +38,9 @@ export function activeConfigs(
38
38
 
39
39
  for (const cfg of activeOutputConfigs) {
40
40
  ret.push(
41
- Computable.wrapError(computableFromCfgOrRF(env, blockCtx, cfg, codeWithInfoOrError.value, bp.bpId)),
41
+ Computable.wrapError(
42
+ computableFromCfgOrRF(env, blockCtx, cfg, codeWithInfoOrError.value, bp.bpId),
43
+ ),
42
44
  );
43
45
  }
44
46
  }
@@ -1,34 +1,32 @@
1
- import type { PlTreeEntry } from '@milaboratories/pl-tree';
1
+ import type { PlTreeEntry } from "@milaboratories/pl-tree";
2
2
  import type {
3
3
  ComputableCtx,
4
4
  ComputableStableDefined,
5
5
  ComputableValueOrErrors,
6
- } from '@milaboratories/computable';
7
- import {
8
- Computable,
9
- } from '@milaboratories/computable';
10
- import { constructBlockContext, constructBlockContextArgsOnly } from './block_ctx';
11
- import { blockArgsAuthorKey } from '../model/project_model';
12
- import { ifNotUndef } from '../cfg_render/util';
13
- import type { MiddleLayerEnvironment } from './middle_layer';
14
- import { getBlockPackInfo } from './util';
15
- import type { AuthorMarker, BlockStateInternalV3 } from '@milaboratories/pl-model-middle-layer';
16
- import { computableFromCfgOrRF } from './render';
17
- import { resourceIdToString } from '@milaboratories/pl-client';
18
- import { deepFreeze } from '@milaboratories/ts-helpers';
19
- import { extractCodeWithInfo } from '@platforma-sdk/model';
20
- import { getDebugFlags } from '../debug';
6
+ } from "@milaboratories/computable";
7
+ import { Computable } from "@milaboratories/computable";
8
+ import { constructBlockContext, constructBlockContextArgsOnly } from "./block_ctx";
9
+ import { blockArgsAuthorKey } from "../model/project_model";
10
+ import { ifNotUndef } from "../cfg_render/util";
11
+ import type { MiddleLayerEnvironment } from "./middle_layer";
12
+ import { getBlockPackInfo } from "./util";
13
+ import type { AuthorMarker, BlockStateInternalV3 } from "@milaboratories/pl-model-middle-layer";
14
+ import { computableFromCfgOrRF } from "./render";
15
+ import { resourceIdToString } from "@milaboratories/pl-client";
16
+ import { deepFreeze } from "@milaboratories/ts-helpers";
17
+ import { extractCodeWithInfo } from "@platforma-sdk/model";
18
+ import { getDebugFlags } from "../debug";
21
19
 
22
- export type BlockParameters = Omit<BlockStateInternalV3, 'outputs' | 'navigationState'>;
20
+ export type BlockParameters = Omit<BlockStateInternalV3, "outputs" | "navigationState">;
23
21
 
24
22
  export function getBlockParameters(
25
23
  projectEntry: PlTreeEntry,
26
- blockId: string
24
+ blockId: string,
27
25
  ): Computable<BlockParameters>;
28
26
  export function getBlockParameters(
29
27
  projectEntry: PlTreeEntry,
30
28
  blockId: string,
31
- cCtx: ComputableCtx
29
+ cCtx: ComputableCtx,
32
30
  ): BlockParameters;
33
31
  export function getBlockParameters(
34
32
  projectEntry: PlTreeEntry,
@@ -44,7 +42,8 @@ export function getBlockParameters(
44
42
  const ctx = constructBlockContextArgsOnly(projectEntry, blockId);
45
43
  const blockStorageJson = ctx.blockStorage(cCtx);
46
44
  // Parse raw storage JSON - UI will derive data using sdk/model
47
- const blockStorage = blockStorageJson !== undefined ? deepFreeze(JSON.parse(blockStorageJson)) : undefined;
45
+ const blockStorage =
46
+ blockStorageJson !== undefined ? deepFreeze(JSON.parse(blockStorageJson)) : undefined;
48
47
  return {
49
48
  author: prj.getKeyValueAsJson<AuthorMarker>(blockArgsAuthorKey(blockId)),
50
49
  blockStorage,
@@ -56,11 +55,13 @@ export function blockOutputs(
56
55
  blockId: string,
57
56
  env: MiddleLayerEnvironment,
58
57
  ): ComputableStableDefined<Record<string, ComputableValueOrErrors<unknown>>> {
59
- const key = 'outputs#' + resourceIdToString(projectEntry.rid) + '#' + blockId;
58
+ const key = "outputs#" + resourceIdToString(projectEntry.rid) + "#" + blockId;
60
59
  return Computable.make(
61
60
  (c) => {
62
61
  if (getDebugFlags().logOutputRecalculations) {
63
- console.log(`blockOutput recalculation : ${key} (${c.changeSourceMarker}; ${c.bodyInvocations} invocations)`);
62
+ console.log(
63
+ `blockOutput recalculation : ${key} (${c.changeSourceMarker}; ${c.bodyInvocations} invocations)`,
64
+ );
64
65
  }
65
66
 
66
67
  const prj = c.accessor(projectEntry).node();
@@ -69,7 +70,13 @@ export function blockOutputs(
69
70
  return ifNotUndef(getBlockPackInfo(prj, blockId), ({ cfg, bpId }) => {
70
71
  const outputs: Record<string, Computable<any>> = {};
71
72
  for (const [cellId, cellCfg] of Object.entries(cfg.outputs)) {
72
- const computableOutput = computableFromCfgOrRF(env, ctx, cellCfg, extractCodeWithInfo(cfg), bpId);
73
+ const computableOutput = computableFromCfgOrRF(
74
+ env,
75
+ ctx,
76
+ cellCfg,
77
+ extractCodeWithInfo(cfg),
78
+ bpId,
79
+ );
73
80
  outputs[cellId] = Computable.wrapError(computableOutput, 1);
74
81
  }
75
82
  return outputs;
@@ -1,17 +1,12 @@
1
- import type { ComputableCtx } from '@milaboratories/computable';
2
- import type { PlTreeEntry } from '@milaboratories/pl-tree';
3
- import { cachedDecode, notEmpty } from '@milaboratories/ts-helpers';
4
- import type { Optional } from 'utility-types';
5
- import type {
6
- Block,
7
- ProjectStructure } from '../model/project_model';
8
- import {
9
- ProjectStructureKey,
10
- projectFieldName,
11
- } from '../model/project_model';
12
- import { allBlocks } from '../model/project_model_util';
13
- import { ResultPool } from '../pool/result_pool';
14
- import { deriveDataFromStorage } from '@platforma-sdk/model';
1
+ import type { ComputableCtx } from "@milaboratories/computable";
2
+ import type { PlTreeEntry } from "@milaboratories/pl-tree";
3
+ import { cachedDecode, notEmpty } from "@milaboratories/ts-helpers";
4
+ import type { Optional } from "utility-types";
5
+ import type { Block, ProjectStructure } from "../model/project_model";
6
+ import { ProjectStructureKey, projectFieldName } from "../model/project_model";
7
+ import { allBlocks } from "../model/project_model_util";
8
+ import { ResultPool } from "../pool/result_pool";
9
+ import { deriveDataFromStorage } from "@platforma-sdk/model";
15
10
 
16
11
  export type BlockContextArgsOnly = {
17
12
  readonly blockId: string;
@@ -29,7 +24,7 @@ export type BlockContextFull = BlockContextArgsOnly & {
29
24
  readonly getResultsPool: (cCtx: ComputableCtx) => ResultPool;
30
25
  };
31
26
 
32
- export type BlockContextAny = Optional<BlockContextFull, 'prod' | 'staging' | 'getResultsPool'>;
27
+ export type BlockContextAny = Optional<BlockContextFull, "prod" | "staging" | "getResultsPool">;
33
28
 
34
29
  export function constructBlockContextArgsOnly(
35
30
  projectEntry: PlTreeEntry,
@@ -40,7 +35,7 @@ export function constructBlockContextArgsOnly(
40
35
  .accessor(projectEntry)
41
36
  .node()
42
37
  .traverse({
43
- field: projectFieldName(blockId, 'currentArgs'),
38
+ field: projectFieldName(blockId, "currentArgs"),
44
39
  stableIfNotFound: true,
45
40
  })
46
41
  ?.getData();
@@ -51,7 +46,7 @@ export function constructBlockContextArgsOnly(
51
46
  .accessor(projectEntry)
52
47
  .node()
53
48
  .traverse({
54
- field: projectFieldName(blockId, 'prodArgs'),
49
+ field: projectFieldName(blockId, "prodArgs"),
55
50
  stableIfNotFound: true,
56
51
  })
57
52
  ?.getData();
@@ -62,7 +57,7 @@ export function constructBlockContextArgsOnly(
62
57
  .accessor(projectEntry)
63
58
  .node()
64
59
  .traverse({
65
- field: projectFieldName(blockId, 'blockStorage'),
60
+ field: projectFieldName(blockId, "blockStorage"),
66
61
  stableIfNotFound: true,
67
62
  })
68
63
  ?.getData();
@@ -76,7 +71,7 @@ export function constructBlockContextArgsOnly(
76
71
  const parsed = JSON.parse(rawJson);
77
72
  return JSON.stringify(deriveDataFromStorage(parsed));
78
73
  } catch (err) {
79
- console.error('Error deriving data from storage', err);
74
+ console.error("Error deriving data from storage", err);
80
75
  return undefined;
81
76
  }
82
77
  };
@@ -86,7 +81,7 @@ export function constructBlockContextArgsOnly(
86
81
  .accessor(projectEntry)
87
82
  .node()
88
83
  .traverse({
89
- field: projectFieldName(blockId, 'blockStorage'),
84
+ field: projectFieldName(blockId, "blockStorage"),
90
85
  stableIfNotFound: true,
91
86
  })
92
87
  ?.getData();
@@ -98,7 +93,7 @@ export function constructBlockContextArgsOnly(
98
93
  .accessor(projectEntry)
99
94
  .node()
100
95
  .traverse({
101
- field: projectFieldName(blockId, 'currentPrerunArgs'),
96
+ field: projectFieldName(blockId, "currentPrerunArgs"),
102
97
  stableIfNotFound: true,
103
98
  })
104
99
  ?.getData();
@@ -132,7 +127,7 @@ export function constructBlockContext(
132
127
  .accessor(projectEntry)
133
128
  .node({ ignoreError: true })
134
129
  .traverse({
135
- field: projectFieldName(blockId, 'prodOutput'),
130
+ field: projectFieldName(blockId, "prodOutput"),
136
131
  stableIfNotFound: true,
137
132
  ignoreError: true,
138
133
  })
@@ -141,20 +136,21 @@ export function constructBlockContext(
141
136
  staging: (cCtx: ComputableCtx) => {
142
137
  // Check if staging is expected (currentPrerunArgs is set)
143
138
  // For blocks with failed args derivation, staging will never be rendered
144
- const hasPrerunArgs = cCtx
145
- .accessor(projectEntry)
146
- .node({ ignoreError: true })
147
- .traverse({
148
- field: projectFieldName(blockId, 'currentPrerunArgs'),
149
- stableIfNotFound: true,
150
- ignoreError: true,
151
- }) !== undefined;
139
+ const hasPrerunArgs =
140
+ cCtx
141
+ .accessor(projectEntry)
142
+ .node({ ignoreError: true })
143
+ .traverse({
144
+ field: projectFieldName(blockId, "currentPrerunArgs"),
145
+ stableIfNotFound: true,
146
+ ignoreError: true,
147
+ }) !== undefined;
152
148
 
153
149
  const result = cCtx
154
150
  .accessor(projectEntry)
155
151
  .node({ ignoreError: true })
156
152
  .traverse({
157
- field: projectFieldName(blockId, 'stagingOutput'),
153
+ field: projectFieldName(blockId, "stagingOutput"),
158
154
  // Only mark stable if staging is NOT expected (no prerunArgs)
159
155
  stableIfNotFound: !hasPrerunArgs,
160
156
  ignoreError: true,
@@ -1,10 +1,10 @@
1
- import type { ComputableCtx } from '@milaboratories/computable';
2
- import type { PlTreeEntry } from '@milaboratories/pl-tree';
3
- import type { PlResourceEntry, StdCtx } from '@platforma-sdk/model';
4
- import type { BlockContextAny } from './block_ctx';
1
+ import type { ComputableCtx } from "@milaboratories/computable";
2
+ import type { PlTreeEntry } from "@milaboratories/pl-tree";
3
+ import type { PlResourceEntry, StdCtx } from "@platforma-sdk/model";
4
+ import type { BlockContextAny } from "./block_ctx";
5
5
 
6
6
  type SC = StdCtx<unknown, unknown>;
7
- type SCAO = Pick<SC, '$blockId' | '$ui' | '$args' | '$data'>;
7
+ type SCAO = Pick<SC, "$blockId" | "$ui" | "$args" | "$data">;
8
8
  export type MatStdCtxArgsOnly = {
9
9
  [Var in keyof SCAO]: SCAO[Var] extends PlResourceEntry
10
10
  ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined
@@ -16,22 +16,22 @@ export type MatStdCtx = {
16
16
  : SC[Var];
17
17
  };
18
18
 
19
- export const NonKeyCtxFields = ['$prod', '$staging'];
19
+ export const NonKeyCtxFields = ["$prod", "$staging"];
20
20
 
21
21
  export function toCfgContext(ctx: BlockContextAny): MatStdCtx {
22
22
  return {
23
23
  $blockId: ctx.blockId,
24
24
  $args: (cCtx: ComputableCtx) => {
25
25
  const args = ctx.args(cCtx);
26
- return args !== undefined ? JSON.parse(args) as unknown : undefined;
26
+ return args !== undefined ? (JSON.parse(args) as unknown) : undefined;
27
27
  },
28
28
  $ui: (cCtx: ComputableCtx) => {
29
29
  const data = ctx.data(cCtx);
30
- return data !== undefined ? JSON.parse(data) as unknown : undefined;
30
+ return data !== undefined ? (JSON.parse(data) as unknown) : undefined;
31
31
  },
32
32
  $data: (cCtx: ComputableCtx) => {
33
33
  const data = ctx.data(cCtx);
34
- return data !== undefined ? JSON.parse(data) as unknown : undefined;
34
+ return data !== undefined ? (JSON.parse(data) as unknown) : undefined;
35
35
  },
36
36
  $prod: ctx.prod,
37
37
  $staging: ctx.staging,