@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,9 +1,9 @@
1
- import type { PlTreeEntry } from '@milaboratories/pl-tree';
2
- import type { ComputableCtx, ComputableStableDefined, ComputableValueOrErrors } from '@milaboratories/computable';
3
- import { Computable } from '@milaboratories/computable';
4
- import type { MiddleLayerEnvironment } from './middle_layer';
5
- import type { BlockStateInternalV3 } from '@milaboratories/pl-model-middle-layer';
6
- export type BlockParameters = Omit<BlockStateInternalV3, 'outputs' | 'navigationState'>;
1
+ import type { PlTreeEntry } from "@milaboratories/pl-tree";
2
+ import type { ComputableCtx, ComputableStableDefined, ComputableValueOrErrors } from "@milaboratories/computable";
3
+ import { Computable } from "@milaboratories/computable";
4
+ import type { MiddleLayerEnvironment } from "./middle_layer";
5
+ import type { BlockStateInternalV3 } from "@milaboratories/pl-model-middle-layer";
6
+ export type BlockParameters = Omit<BlockStateInternalV3, "outputs" | "navigationState">;
7
7
  export declare function getBlockParameters(projectEntry: PlTreeEntry, blockId: string): Computable<BlockParameters>;
8
8
  export declare function getBlockParameters(projectEntry: PlTreeEntry, blockId: string, cCtx: ComputableCtx): BlockParameters;
9
9
  export declare function blockOutputs(projectEntry: PlTreeEntry, blockId: string, env: MiddleLayerEnvironment): ComputableStableDefined<Record<string, ComputableValueOrErrors<unknown>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/middle_layer/block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACX,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAgB,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAOhG,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,iBAAiB,CAAC,CAAC;AAExF,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,eAAe,CAAC,CAAC;AAC/B,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,GAClB,eAAe,CAAC;AAsBnB,wBAAgB,YAAY,CAC1B,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,sBAAsB,GAC1B,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAsB3E"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/middle_layer/block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAIxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAgB,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAOhG,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,iBAAiB,CAAC,CAAC;AAExF,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,eAAe,CAAC,CAAC;AAC/B,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,GAClB,eAAe,CAAC;AAuBnB,wBAAgB,YAAY,CAC1B,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,sBAAsB,GAC1B,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CA8B3E"}
@@ -25,7 +25,7 @@ function getBlockParameters(projectEntry, blockId, cCtx) {
25
25
  };
26
26
  }
27
27
  function blockOutputs(projectEntry, blockId, env) {
28
- const key = 'outputs#' + resourceIdToString(projectEntry.rid) + '#' + blockId;
28
+ const key = "outputs#" + resourceIdToString(projectEntry.rid) + "#" + blockId;
29
29
  return Computable.make((c) => {
30
30
  if (getDebugFlags().logOutputRecalculations) {
31
31
  console.log(`blockOutput recalculation : ${key} (${c.changeSourceMarker}; ${c.bodyInvocations} invocations)`);
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sources":["../../src/middle_layer/block.ts"],"sourcesContent":["import type { PlTreeEntry } from '@milaboratories/pl-tree';\nimport type {\n ComputableCtx,\n ComputableStableDefined,\n ComputableValueOrErrors,\n} from '@milaboratories/computable';\nimport {\n Computable,\n} from '@milaboratories/computable';\nimport { constructBlockContext, constructBlockContextArgsOnly } from './block_ctx';\nimport { blockArgsAuthorKey } from '../model/project_model';\nimport { ifNotUndef } from '../cfg_render/util';\nimport type { MiddleLayerEnvironment } from './middle_layer';\nimport { getBlockPackInfo } from './util';\nimport type { AuthorMarker, BlockStateInternalV3 } from '@milaboratories/pl-model-middle-layer';\nimport { computableFromCfgOrRF } from './render';\nimport { resourceIdToString } from '@milaboratories/pl-client';\nimport { deepFreeze } from '@milaboratories/ts-helpers';\nimport { extractCodeWithInfo } from '@platforma-sdk/model';\nimport { getDebugFlags } from '../debug';\n\nexport type BlockParameters = Omit<BlockStateInternalV3, 'outputs' | 'navigationState'>;\n\nexport function getBlockParameters(\n projectEntry: PlTreeEntry,\n blockId: string\n): Computable<BlockParameters>;\nexport function getBlockParameters(\n projectEntry: PlTreeEntry,\n blockId: string,\n cCtx: ComputableCtx\n): BlockParameters;\nexport function getBlockParameters(\n projectEntry: PlTreeEntry,\n blockId: string,\n cCtx?: ComputableCtx,\n): BlockParameters | Computable<BlockParameters> {\n if (cCtx === undefined)\n return Computable.make((c) => getBlockParameters(projectEntry, blockId, c), {\n key: `inputs#${resourceIdToString(projectEntry.rid)}#${blockId}`,\n });\n\n const prj = cCtx.accessor(projectEntry).node();\n const ctx = constructBlockContextArgsOnly(projectEntry, blockId);\n const blockStorageJson = ctx.blockStorage(cCtx);\n // Parse raw storage JSON - UI will derive data using sdk/model\n const blockStorage = blockStorageJson !== undefined ? deepFreeze(JSON.parse(blockStorageJson)) : undefined;\n return {\n author: prj.getKeyValueAsJson<AuthorMarker>(blockArgsAuthorKey(blockId)),\n blockStorage,\n };\n}\n\nexport function blockOutputs(\n projectEntry: PlTreeEntry,\n blockId: string,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<Record<string, ComputableValueOrErrors<unknown>>> {\n const key = 'outputs#' + resourceIdToString(projectEntry.rid) + '#' + blockId;\n return Computable.make(\n (c) => {\n if (getDebugFlags().logOutputRecalculations) {\n console.log(`blockOutput recalculation : ${key} (${c.changeSourceMarker}; ${c.bodyInvocations} invocations)`);\n }\n\n const prj = c.accessor(projectEntry).node();\n const ctx = constructBlockContext(projectEntry, blockId);\n\n return ifNotUndef(getBlockPackInfo(prj, blockId), ({ cfg, bpId }) => {\n const outputs: Record<string, Computable<any>> = {};\n for (const [cellId, cellCfg] of Object.entries(cfg.outputs)) {\n const computableOutput = computableFromCfgOrRF(env, ctx, cellCfg, extractCodeWithInfo(cfg), bpId);\n outputs[cellId] = Computable.wrapError(computableOutput, 1);\n }\n return outputs;\n });\n },\n { key },\n ).withStableType();\n}\n"],"names":[],"mappings":";;;;;;;;;;;SAgCgB,kBAAkB,CAChC,YAAyB,EACzB,OAAe,EACf,IAAoB,EAAA;IAEpB,IAAI,IAAI,KAAK,SAAS;AACpB,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;YAC1E,GAAG,EAAE,CAAA,OAAA,EAAU,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE;AACjE,SAAA,CAAC;IAEJ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;IAC9C,MAAM,GAAG,GAAG,6BAA6B,CAAC,YAAY,EAAE,OAAO,CAAC;IAChE,MAAM,gBAAgB,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;;IAE/C,MAAM,YAAY,GAAG,gBAAgB,KAAK,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,SAAS;IAC1G,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,iBAAiB,CAAe,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACxE,YAAY;KACb;AACH;SAEgB,YAAY,CAC1B,YAAyB,EACzB,OAAe,EACf,GAA2B,EAAA;AAE3B,IAAA,MAAM,GAAG,GAAG,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO;AAC7E,IAAA,OAAO,UAAU,CAAC,IAAI,CACpB,CAAC,CAAC,KAAI;AACJ,QAAA,IAAI,aAAa,EAAE,CAAC,uBAAuB,EAAE;AAC3C,YAAA,OAAO,CAAC,GAAG,CAAC,CAAA,4BAAA,EAA+B,GAAG,CAAA,EAAA,EAAK,CAAC,CAAC,kBAAkB,KAAK,CAAC,CAAC,eAAe,CAAA,aAAA,CAAe,CAAC;QAC/G;QAEA,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;QAC3C,MAAM,GAAG,GAAG,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC;AAExD,QAAA,OAAO,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAI;YAClE,MAAM,OAAO,GAAoC,EAAE;AACnD,YAAA,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC3D,gBAAA,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AACjG,gBAAA,OAAO,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC7D;AACA,YAAA,OAAO,OAAO;AAChB,QAAA,CAAC,CAAC;IACJ,CAAC,EACD,EAAE,GAAG,EAAE,CACR,CAAC,cAAc,EAAE;AACpB;;;;"}
1
+ {"version":3,"file":"block.js","sources":["../../src/middle_layer/block.ts"],"sourcesContent":["import type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport type {\n ComputableCtx,\n ComputableStableDefined,\n ComputableValueOrErrors,\n} from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport { constructBlockContext, constructBlockContextArgsOnly } from \"./block_ctx\";\nimport { blockArgsAuthorKey } from \"../model/project_model\";\nimport { ifNotUndef } from \"../cfg_render/util\";\nimport type { MiddleLayerEnvironment } from \"./middle_layer\";\nimport { getBlockPackInfo } from \"./util\";\nimport type { AuthorMarker, BlockStateInternalV3 } from \"@milaboratories/pl-model-middle-layer\";\nimport { computableFromCfgOrRF } from \"./render\";\nimport { resourceIdToString } from \"@milaboratories/pl-client\";\nimport { deepFreeze } from \"@milaboratories/ts-helpers\";\nimport { extractCodeWithInfo } from \"@platforma-sdk/model\";\nimport { getDebugFlags } from \"../debug\";\n\nexport type BlockParameters = Omit<BlockStateInternalV3, \"outputs\" | \"navigationState\">;\n\nexport function getBlockParameters(\n projectEntry: PlTreeEntry,\n blockId: string,\n): Computable<BlockParameters>;\nexport function getBlockParameters(\n projectEntry: PlTreeEntry,\n blockId: string,\n cCtx: ComputableCtx,\n): BlockParameters;\nexport function getBlockParameters(\n projectEntry: PlTreeEntry,\n blockId: string,\n cCtx?: ComputableCtx,\n): BlockParameters | Computable<BlockParameters> {\n if (cCtx === undefined)\n return Computable.make((c) => getBlockParameters(projectEntry, blockId, c), {\n key: `inputs#${resourceIdToString(projectEntry.rid)}#${blockId}`,\n });\n\n const prj = cCtx.accessor(projectEntry).node();\n const ctx = constructBlockContextArgsOnly(projectEntry, blockId);\n const blockStorageJson = ctx.blockStorage(cCtx);\n // Parse raw storage JSON - UI will derive data using sdk/model\n const blockStorage =\n blockStorageJson !== undefined ? deepFreeze(JSON.parse(blockStorageJson)) : undefined;\n return {\n author: prj.getKeyValueAsJson<AuthorMarker>(blockArgsAuthorKey(blockId)),\n blockStorage,\n };\n}\n\nexport function blockOutputs(\n projectEntry: PlTreeEntry,\n blockId: string,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<Record<string, ComputableValueOrErrors<unknown>>> {\n const key = \"outputs#\" + resourceIdToString(projectEntry.rid) + \"#\" + blockId;\n return Computable.make(\n (c) => {\n if (getDebugFlags().logOutputRecalculations) {\n console.log(\n `blockOutput recalculation : ${key} (${c.changeSourceMarker}; ${c.bodyInvocations} invocations)`,\n );\n }\n\n const prj = c.accessor(projectEntry).node();\n const ctx = constructBlockContext(projectEntry, blockId);\n\n return ifNotUndef(getBlockPackInfo(prj, blockId), ({ cfg, bpId }) => {\n const outputs: Record<string, Computable<any>> = {};\n for (const [cellId, cellCfg] of Object.entries(cfg.outputs)) {\n const computableOutput = computableFromCfgOrRF(\n env,\n ctx,\n cellCfg,\n extractCodeWithInfo(cfg),\n bpId,\n );\n outputs[cellId] = Computable.wrapError(computableOutput, 1);\n }\n return outputs;\n });\n },\n { key },\n ).withStableType();\n}\n"],"names":[],"mappings":";;;;;;;;;;;SA8BgB,kBAAkB,CAChC,YAAyB,EACzB,OAAe,EACf,IAAoB,EAAA;IAEpB,IAAI,IAAI,KAAK,SAAS;AACpB,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;YAC1E,GAAG,EAAE,CAAA,OAAA,EAAU,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE;AACjE,SAAA,CAAC;IAEJ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;IAC9C,MAAM,GAAG,GAAG,6BAA6B,CAAC,YAAY,EAAE,OAAO,CAAC;IAChE,MAAM,gBAAgB,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;;IAE/C,MAAM,YAAY,GAChB,gBAAgB,KAAK,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,SAAS;IACvF,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,iBAAiB,CAAe,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACxE,YAAY;KACb;AACH;SAEgB,YAAY,CAC1B,YAAyB,EACzB,OAAe,EACf,GAA2B,EAAA;AAE3B,IAAA,MAAM,GAAG,GAAG,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO;AAC7E,IAAA,OAAO,UAAU,CAAC,IAAI,CACpB,CAAC,CAAC,KAAI;AACJ,QAAA,IAAI,aAAa,EAAE,CAAC,uBAAuB,EAAE;AAC3C,YAAA,OAAO,CAAC,GAAG,CACT,CAAA,4BAAA,EAA+B,GAAG,CAAA,EAAA,EAAK,CAAC,CAAC,kBAAkB,KAAK,CAAC,CAAC,eAAe,CAAA,aAAA,CAAe,CACjG;QACH;QAEA,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;QAC3C,MAAM,GAAG,GAAG,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC;AAExD,QAAA,OAAO,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAI;YAClE,MAAM,OAAO,GAAoC,EAAE;AACnD,YAAA,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC3D,gBAAA,MAAM,gBAAgB,GAAG,qBAAqB,CAC5C,GAAG,EACH,GAAG,EACH,OAAO,EACP,mBAAmB,CAAC,GAAG,CAAC,EACxB,IAAI,CACL;AACD,gBAAA,OAAO,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC7D;AACA,YAAA,OAAO,OAAO;AAChB,QAAA,CAAC,CAAC;IACJ,CAAC,EACD,EAAE,GAAG,EAAE,CACR,CAAC,cAAc,EAAE;AACpB;;;;"}
@@ -12,7 +12,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
12
12
  .accessor(projectEntry)
13
13
  .node()
14
14
  .traverse({
15
- field: project_model.projectFieldName(blockId, 'currentArgs'),
15
+ field: project_model.projectFieldName(blockId, "currentArgs"),
16
16
  stableIfNotFound: true,
17
17
  })
18
18
  ?.getData();
@@ -23,7 +23,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
23
23
  .accessor(projectEntry)
24
24
  .node()
25
25
  .traverse({
26
- field: project_model.projectFieldName(blockId, 'prodArgs'),
26
+ field: project_model.projectFieldName(blockId, "prodArgs"),
27
27
  stableIfNotFound: true,
28
28
  })
29
29
  ?.getData();
@@ -34,7 +34,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
34
34
  .accessor(projectEntry)
35
35
  .node()
36
36
  .traverse({
37
- field: project_model.projectFieldName(blockId, 'blockStorage'),
37
+ field: project_model.projectFieldName(blockId, "blockStorage"),
38
38
  stableIfNotFound: true,
39
39
  })
40
40
  ?.getData();
@@ -49,7 +49,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
49
49
  return JSON.stringify(model.deriveDataFromStorage(parsed));
50
50
  }
51
51
  catch (err) {
52
- console.error('Error deriving data from storage', err);
52
+ console.error("Error deriving data from storage", err);
53
53
  return undefined;
54
54
  }
55
55
  };
@@ -59,7 +59,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
59
59
  .accessor(projectEntry)
60
60
  .node()
61
61
  .traverse({
62
- field: project_model.projectFieldName(blockId, 'blockStorage'),
62
+ field: project_model.projectFieldName(blockId, "blockStorage"),
63
63
  stableIfNotFound: true,
64
64
  })
65
65
  ?.getData();
@@ -72,7 +72,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
72
72
  .accessor(projectEntry)
73
73
  .node()
74
74
  .traverse({
75
- field: project_model.projectFieldName(blockId, 'currentPrerunArgs'),
75
+ field: project_model.projectFieldName(blockId, "currentPrerunArgs"),
76
76
  stableIfNotFound: true,
77
77
  })
78
78
  ?.getData();
@@ -103,7 +103,7 @@ function constructBlockContext(projectEntry, blockId) {
103
103
  .accessor(projectEntry)
104
104
  .node({ ignoreError: true })
105
105
  .traverse({
106
- field: project_model.projectFieldName(blockId, 'prodOutput'),
106
+ field: project_model.projectFieldName(blockId, "prodOutput"),
107
107
  stableIfNotFound: true,
108
108
  ignoreError: true,
109
109
  })
@@ -116,7 +116,7 @@ function constructBlockContext(projectEntry, blockId) {
116
116
  .accessor(projectEntry)
117
117
  .node({ ignoreError: true })
118
118
  .traverse({
119
- field: project_model.projectFieldName(blockId, 'currentPrerunArgs'),
119
+ field: project_model.projectFieldName(blockId, "currentPrerunArgs"),
120
120
  stableIfNotFound: true,
121
121
  ignoreError: true,
122
122
  }) !== undefined;
@@ -124,7 +124,7 @@ function constructBlockContext(projectEntry, blockId) {
124
124
  .accessor(projectEntry)
125
125
  .node({ ignoreError: true })
126
126
  .traverse({
127
- field: project_model.projectFieldName(blockId, 'stagingOutput'),
127
+ field: project_model.projectFieldName(blockId, "stagingOutput"),
128
128
  // Only mark stable if staging is NOT expected (no prerunArgs)
129
129
  stableIfNotFound: !hasPrerunArgs,
130
130
  ignoreError: true,
@@ -1 +1 @@
1
- {"version":3,"file":"block_ctx.cjs","sources":["../../src/middle_layer/block_ctx.ts"],"sourcesContent":["import type { ComputableCtx } from '@milaboratories/computable';\nimport type { PlTreeEntry } from '@milaboratories/pl-tree';\nimport { cachedDecode, notEmpty } from '@milaboratories/ts-helpers';\nimport type { Optional } from 'utility-types';\nimport type {\n Block,\n ProjectStructure } from '../model/project_model';\nimport {\n ProjectStructureKey,\n projectFieldName,\n} from '../model/project_model';\nimport { allBlocks } from '../model/project_model_util';\nimport { ResultPool } from '../pool/result_pool';\nimport { deriveDataFromStorage } from '@platforma-sdk/model';\n\nexport type BlockContextArgsOnly = {\n readonly blockId: string;\n readonly args: (cCtx: ComputableCtx) => string | undefined;\n readonly activeArgs: (cCtx: ComputableCtx) => string | undefined;\n readonly blockMeta: (cCtx: ComputableCtx) => Map<string, Block>;\n readonly data: (cCtx: ComputableCtx) => string | undefined;\n readonly blockStorage: (cCtx: ComputableCtx) => string | undefined;\n readonly prerunArgs: (cCtx: ComputableCtx) => string | undefined;\n};\n\nexport type BlockContextFull = BlockContextArgsOnly & {\n readonly prod: (cCtx: ComputableCtx) => PlTreeEntry | undefined;\n readonly staging: (cCtx: ComputableCtx) => PlTreeEntry | undefined;\n readonly getResultsPool: (cCtx: ComputableCtx) => ResultPool;\n};\n\nexport type BlockContextAny = Optional<BlockContextFull, 'prod' | 'staging' | 'getResultsPool'>;\n\nexport function constructBlockContextArgsOnly(\n projectEntry: PlTreeEntry,\n blockId: string,\n): BlockContextArgsOnly {\n const args = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'currentArgs'),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n const activeArgs = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'prodArgs'),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n const data = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'blockStorage'),\n stableIfNotFound: true,\n })\n ?.getData();\n if (!data) return undefined;\n\n const rawJson = cachedDecode(data);\n if (!rawJson) return undefined;\n\n // Parse to check if it's BlockStorage format\n try {\n const parsed = JSON.parse(rawJson);\n return JSON.stringify(deriveDataFromStorage(parsed));\n } catch (err) {\n console.error('Error deriving data from storage', err);\n return undefined;\n }\n };\n // Returns raw blockStorage JSON - UI derives data using sdk/model\n const blockStorage = (cCtx: ComputableCtx) => {\n const storageData = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'blockStorage'),\n stableIfNotFound: true,\n })\n ?.getData();\n if (!storageData) return undefined;\n return cachedDecode(storageData);\n };\n const prerunArgs = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'currentPrerunArgs'),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n return {\n blockId,\n args,\n activeArgs,\n data,\n blockStorage,\n prerunArgs,\n blockMeta: (cCtx: ComputableCtx) => {\n const prj = cCtx.accessor(projectEntry).node();\n const structure = notEmpty(prj.getKeyValueAsJson<ProjectStructure>(ProjectStructureKey));\n const result = new Map<string, Block>();\n for (const block of allBlocks(structure)) result.set(block.id, block);\n return result;\n },\n };\n}\n\nexport function constructBlockContext(\n projectEntry: PlTreeEntry,\n blockId: string,\n): BlockContextFull {\n return {\n ...constructBlockContextArgsOnly(projectEntry, blockId),\n prod: (cCtx: ComputableCtx) => {\n return cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, 'prodOutput'),\n stableIfNotFound: true,\n ignoreError: true,\n })\n ?.persist();\n },\n staging: (cCtx: ComputableCtx) => {\n // Check if staging is expected (currentPrerunArgs is set)\n // For blocks with failed args derivation, staging will never be rendered\n const hasPrerunArgs = cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, 'currentPrerunArgs'),\n stableIfNotFound: true,\n ignoreError: true,\n }) !== undefined;\n\n const result = cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, 'stagingOutput'),\n // Only mark stable if staging is NOT expected (no prerunArgs)\n stableIfNotFound: !hasPrerunArgs,\n ignoreError: true,\n })\n ?.persist();\n return result;\n },\n getResultsPool: (cCtx: ComputableCtx) => ResultPool.create(cCtx, projectEntry, blockId),\n };\n}\n"],"names":["projectFieldName","cachedDecode","deriveDataFromStorage","notEmpty","ProjectStructureKey","allBlocks","ResultPool"],"mappings":"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"}
1
+ {"version":3,"file":"block_ctx.cjs","sources":["../../src/middle_layer/block_ctx.ts"],"sourcesContent":["import type { ComputableCtx } from \"@milaboratories/computable\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport { cachedDecode, notEmpty } from \"@milaboratories/ts-helpers\";\nimport type { Optional } from \"utility-types\";\nimport type { Block, ProjectStructure } from \"../model/project_model\";\nimport { ProjectStructureKey, projectFieldName } from \"../model/project_model\";\nimport { allBlocks } from \"../model/project_model_util\";\nimport { ResultPool } from \"../pool/result_pool\";\nimport { deriveDataFromStorage } from \"@platforma-sdk/model\";\n\nexport type BlockContextArgsOnly = {\n readonly blockId: string;\n readonly args: (cCtx: ComputableCtx) => string | undefined;\n readonly activeArgs: (cCtx: ComputableCtx) => string | undefined;\n readonly blockMeta: (cCtx: ComputableCtx) => Map<string, Block>;\n readonly data: (cCtx: ComputableCtx) => string | undefined;\n readonly blockStorage: (cCtx: ComputableCtx) => string | undefined;\n readonly prerunArgs: (cCtx: ComputableCtx) => string | undefined;\n};\n\nexport type BlockContextFull = BlockContextArgsOnly & {\n readonly prod: (cCtx: ComputableCtx) => PlTreeEntry | undefined;\n readonly staging: (cCtx: ComputableCtx) => PlTreeEntry | undefined;\n readonly getResultsPool: (cCtx: ComputableCtx) => ResultPool;\n};\n\nexport type BlockContextAny = Optional<BlockContextFull, \"prod\" | \"staging\" | \"getResultsPool\">;\n\nexport function constructBlockContextArgsOnly(\n projectEntry: PlTreeEntry,\n blockId: string,\n): BlockContextArgsOnly {\n const args = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"currentArgs\"),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n const activeArgs = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"prodArgs\"),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n const data = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"blockStorage\"),\n stableIfNotFound: true,\n })\n ?.getData();\n if (!data) return undefined;\n\n const rawJson = cachedDecode(data);\n if (!rawJson) return undefined;\n\n // Parse to check if it's BlockStorage format\n try {\n const parsed = JSON.parse(rawJson);\n return JSON.stringify(deriveDataFromStorage(parsed));\n } catch (err) {\n console.error(\"Error deriving data from storage\", err);\n return undefined;\n }\n };\n // Returns raw blockStorage JSON - UI derives data using sdk/model\n const blockStorage = (cCtx: ComputableCtx) => {\n const storageData = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"blockStorage\"),\n stableIfNotFound: true,\n })\n ?.getData();\n if (!storageData) return undefined;\n return cachedDecode(storageData);\n };\n const prerunArgs = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"currentPrerunArgs\"),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n return {\n blockId,\n args,\n activeArgs,\n data,\n blockStorage,\n prerunArgs,\n blockMeta: (cCtx: ComputableCtx) => {\n const prj = cCtx.accessor(projectEntry).node();\n const structure = notEmpty(prj.getKeyValueAsJson<ProjectStructure>(ProjectStructureKey));\n const result = new Map<string, Block>();\n for (const block of allBlocks(structure)) result.set(block.id, block);\n return result;\n },\n };\n}\n\nexport function constructBlockContext(\n projectEntry: PlTreeEntry,\n blockId: string,\n): BlockContextFull {\n return {\n ...constructBlockContextArgsOnly(projectEntry, blockId),\n prod: (cCtx: ComputableCtx) => {\n return cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, \"prodOutput\"),\n stableIfNotFound: true,\n ignoreError: true,\n })\n ?.persist();\n },\n staging: (cCtx: ComputableCtx) => {\n // Check if staging is expected (currentPrerunArgs is set)\n // For blocks with failed args derivation, staging will never be rendered\n const hasPrerunArgs =\n cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, \"currentPrerunArgs\"),\n stableIfNotFound: true,\n ignoreError: true,\n }) !== undefined;\n\n const result = cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, \"stagingOutput\"),\n // Only mark stable if staging is NOT expected (no prerunArgs)\n stableIfNotFound: !hasPrerunArgs,\n ignoreError: true,\n })\n ?.persist();\n return result;\n },\n getResultsPool: (cCtx: ComputableCtx) => ResultPool.create(cCtx, projectEntry, blockId),\n };\n}\n"],"names":["projectFieldName","cachedDecode","deriveDataFromStorage","notEmpty","ProjectStructureKey","allBlocks","ResultPool"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { ComputableCtx } from '@milaboratories/computable';
2
- import type { PlTreeEntry } from '@milaboratories/pl-tree';
3
- import type { Optional } from 'utility-types';
4
- import type { Block } from '../model/project_model';
5
- import { ResultPool } from '../pool/result_pool';
1
+ import type { ComputableCtx } from "@milaboratories/computable";
2
+ import type { PlTreeEntry } from "@milaboratories/pl-tree";
3
+ import type { Optional } from "utility-types";
4
+ import type { Block } from "../model/project_model";
5
+ import { ResultPool } from "../pool/result_pool";
6
6
  export type BlockContextArgsOnly = {
7
7
  readonly blockId: string;
8
8
  readonly args: (cCtx: ComputableCtx) => string | undefined;
@@ -17,7 +17,7 @@ export type BlockContextFull = BlockContextArgsOnly & {
17
17
  readonly staging: (cCtx: ComputableCtx) => PlTreeEntry | undefined;
18
18
  readonly getResultsPool: (cCtx: ComputableCtx) => ResultPool;
19
19
  };
20
- export type BlockContextAny = Optional<BlockContextFull, 'prod' | 'staging' | 'getResultsPool'>;
20
+ export type BlockContextAny = Optional<BlockContextFull, "prod" | "staging" | "getResultsPool">;
21
21
  export declare function constructBlockContextArgsOnly(projectEntry: PlTreeEntry, blockId: string): BlockContextArgsOnly;
22
22
  export declare function constructBlockContext(projectEntry: PlTreeEntry, blockId: string): BlockContextFull;
23
23
  //# sourceMappingURL=block_ctx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"block_ctx.d.ts","sourceRoot":"","sources":["../../src/middle_layer/block_ctx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EACV,KAAK,EACa,MAAM,wBAAwB,CAAC;AAMnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,WAAW,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,WAAW,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,UAAU,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC,CAAC;AAEhG,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,GACd,oBAAoB,CAqFtB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,GACd,gBAAgB,CAwClB"}
1
+ {"version":3,"file":"block_ctx.d.ts","sourceRoot":"","sources":["../../src/middle_layer/block_ctx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAoB,MAAM,wBAAwB,CAAC;AAGtE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,WAAW,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,WAAW,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,UAAU,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC,CAAC;AAEhG,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,GACd,oBAAoB,CAqFtB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,GACd,gBAAgB,CAyClB"}
@@ -10,7 +10,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
10
10
  .accessor(projectEntry)
11
11
  .node()
12
12
  .traverse({
13
- field: projectFieldName(blockId, 'currentArgs'),
13
+ field: projectFieldName(blockId, "currentArgs"),
14
14
  stableIfNotFound: true,
15
15
  })
16
16
  ?.getData();
@@ -21,7 +21,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
21
21
  .accessor(projectEntry)
22
22
  .node()
23
23
  .traverse({
24
- field: projectFieldName(blockId, 'prodArgs'),
24
+ field: projectFieldName(blockId, "prodArgs"),
25
25
  stableIfNotFound: true,
26
26
  })
27
27
  ?.getData();
@@ -32,7 +32,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
32
32
  .accessor(projectEntry)
33
33
  .node()
34
34
  .traverse({
35
- field: projectFieldName(blockId, 'blockStorage'),
35
+ field: projectFieldName(blockId, "blockStorage"),
36
36
  stableIfNotFound: true,
37
37
  })
38
38
  ?.getData();
@@ -47,7 +47,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
47
47
  return JSON.stringify(deriveDataFromStorage(parsed));
48
48
  }
49
49
  catch (err) {
50
- console.error('Error deriving data from storage', err);
50
+ console.error("Error deriving data from storage", err);
51
51
  return undefined;
52
52
  }
53
53
  };
@@ -57,7 +57,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
57
57
  .accessor(projectEntry)
58
58
  .node()
59
59
  .traverse({
60
- field: projectFieldName(blockId, 'blockStorage'),
60
+ field: projectFieldName(blockId, "blockStorage"),
61
61
  stableIfNotFound: true,
62
62
  })
63
63
  ?.getData();
@@ -70,7 +70,7 @@ function constructBlockContextArgsOnly(projectEntry, blockId) {
70
70
  .accessor(projectEntry)
71
71
  .node()
72
72
  .traverse({
73
- field: projectFieldName(blockId, 'currentPrerunArgs'),
73
+ field: projectFieldName(blockId, "currentPrerunArgs"),
74
74
  stableIfNotFound: true,
75
75
  })
76
76
  ?.getData();
@@ -101,7 +101,7 @@ function constructBlockContext(projectEntry, blockId) {
101
101
  .accessor(projectEntry)
102
102
  .node({ ignoreError: true })
103
103
  .traverse({
104
- field: projectFieldName(blockId, 'prodOutput'),
104
+ field: projectFieldName(blockId, "prodOutput"),
105
105
  stableIfNotFound: true,
106
106
  ignoreError: true,
107
107
  })
@@ -114,7 +114,7 @@ function constructBlockContext(projectEntry, blockId) {
114
114
  .accessor(projectEntry)
115
115
  .node({ ignoreError: true })
116
116
  .traverse({
117
- field: projectFieldName(blockId, 'currentPrerunArgs'),
117
+ field: projectFieldName(blockId, "currentPrerunArgs"),
118
118
  stableIfNotFound: true,
119
119
  ignoreError: true,
120
120
  }) !== undefined;
@@ -122,7 +122,7 @@ function constructBlockContext(projectEntry, blockId) {
122
122
  .accessor(projectEntry)
123
123
  .node({ ignoreError: true })
124
124
  .traverse({
125
- field: projectFieldName(blockId, 'stagingOutput'),
125
+ field: projectFieldName(blockId, "stagingOutput"),
126
126
  // Only mark stable if staging is NOT expected (no prerunArgs)
127
127
  stableIfNotFound: !hasPrerunArgs,
128
128
  ignoreError: true,
@@ -1 +1 @@
1
- {"version":3,"file":"block_ctx.js","sources":["../../src/middle_layer/block_ctx.ts"],"sourcesContent":["import type { ComputableCtx } from '@milaboratories/computable';\nimport type { PlTreeEntry } from '@milaboratories/pl-tree';\nimport { cachedDecode, notEmpty } from '@milaboratories/ts-helpers';\nimport type { Optional } from 'utility-types';\nimport type {\n Block,\n ProjectStructure } from '../model/project_model';\nimport {\n ProjectStructureKey,\n projectFieldName,\n} from '../model/project_model';\nimport { allBlocks } from '../model/project_model_util';\nimport { ResultPool } from '../pool/result_pool';\nimport { deriveDataFromStorage } from '@platforma-sdk/model';\n\nexport type BlockContextArgsOnly = {\n readonly blockId: string;\n readonly args: (cCtx: ComputableCtx) => string | undefined;\n readonly activeArgs: (cCtx: ComputableCtx) => string | undefined;\n readonly blockMeta: (cCtx: ComputableCtx) => Map<string, Block>;\n readonly data: (cCtx: ComputableCtx) => string | undefined;\n readonly blockStorage: (cCtx: ComputableCtx) => string | undefined;\n readonly prerunArgs: (cCtx: ComputableCtx) => string | undefined;\n};\n\nexport type BlockContextFull = BlockContextArgsOnly & {\n readonly prod: (cCtx: ComputableCtx) => PlTreeEntry | undefined;\n readonly staging: (cCtx: ComputableCtx) => PlTreeEntry | undefined;\n readonly getResultsPool: (cCtx: ComputableCtx) => ResultPool;\n};\n\nexport type BlockContextAny = Optional<BlockContextFull, 'prod' | 'staging' | 'getResultsPool'>;\n\nexport function constructBlockContextArgsOnly(\n projectEntry: PlTreeEntry,\n blockId: string,\n): BlockContextArgsOnly {\n const args = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'currentArgs'),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n const activeArgs = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'prodArgs'),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n const data = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'blockStorage'),\n stableIfNotFound: true,\n })\n ?.getData();\n if (!data) return undefined;\n\n const rawJson = cachedDecode(data);\n if (!rawJson) return undefined;\n\n // Parse to check if it's BlockStorage format\n try {\n const parsed = JSON.parse(rawJson);\n return JSON.stringify(deriveDataFromStorage(parsed));\n } catch (err) {\n console.error('Error deriving data from storage', err);\n return undefined;\n }\n };\n // Returns raw blockStorage JSON - UI derives data using sdk/model\n const blockStorage = (cCtx: ComputableCtx) => {\n const storageData = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'blockStorage'),\n stableIfNotFound: true,\n })\n ?.getData();\n if (!storageData) return undefined;\n return cachedDecode(storageData);\n };\n const prerunArgs = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, 'currentPrerunArgs'),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n return {\n blockId,\n args,\n activeArgs,\n data,\n blockStorage,\n prerunArgs,\n blockMeta: (cCtx: ComputableCtx) => {\n const prj = cCtx.accessor(projectEntry).node();\n const structure = notEmpty(prj.getKeyValueAsJson<ProjectStructure>(ProjectStructureKey));\n const result = new Map<string, Block>();\n for (const block of allBlocks(structure)) result.set(block.id, block);\n return result;\n },\n };\n}\n\nexport function constructBlockContext(\n projectEntry: PlTreeEntry,\n blockId: string,\n): BlockContextFull {\n return {\n ...constructBlockContextArgsOnly(projectEntry, blockId),\n prod: (cCtx: ComputableCtx) => {\n return cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, 'prodOutput'),\n stableIfNotFound: true,\n ignoreError: true,\n })\n ?.persist();\n },\n staging: (cCtx: ComputableCtx) => {\n // Check if staging is expected (currentPrerunArgs is set)\n // For blocks with failed args derivation, staging will never be rendered\n const hasPrerunArgs = cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, 'currentPrerunArgs'),\n stableIfNotFound: true,\n ignoreError: true,\n }) !== undefined;\n\n const result = cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, 'stagingOutput'),\n // Only mark stable if staging is NOT expected (no prerunArgs)\n stableIfNotFound: !hasPrerunArgs,\n ignoreError: true,\n })\n ?.persist();\n return result;\n },\n getResultsPool: (cCtx: ComputableCtx) => ResultPool.create(cCtx, projectEntry, blockId),\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block_ctx.js","sources":["../../src/middle_layer/block_ctx.ts"],"sourcesContent":["import type { ComputableCtx } from \"@milaboratories/computable\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport { cachedDecode, notEmpty } from \"@milaboratories/ts-helpers\";\nimport type { Optional } from \"utility-types\";\nimport type { Block, ProjectStructure } from \"../model/project_model\";\nimport { ProjectStructureKey, projectFieldName } from \"../model/project_model\";\nimport { allBlocks } from \"../model/project_model_util\";\nimport { ResultPool } from \"../pool/result_pool\";\nimport { deriveDataFromStorage } from \"@platforma-sdk/model\";\n\nexport type BlockContextArgsOnly = {\n readonly blockId: string;\n readonly args: (cCtx: ComputableCtx) => string | undefined;\n readonly activeArgs: (cCtx: ComputableCtx) => string | undefined;\n readonly blockMeta: (cCtx: ComputableCtx) => Map<string, Block>;\n readonly data: (cCtx: ComputableCtx) => string | undefined;\n readonly blockStorage: (cCtx: ComputableCtx) => string | undefined;\n readonly prerunArgs: (cCtx: ComputableCtx) => string | undefined;\n};\n\nexport type BlockContextFull = BlockContextArgsOnly & {\n readonly prod: (cCtx: ComputableCtx) => PlTreeEntry | undefined;\n readonly staging: (cCtx: ComputableCtx) => PlTreeEntry | undefined;\n readonly getResultsPool: (cCtx: ComputableCtx) => ResultPool;\n};\n\nexport type BlockContextAny = Optional<BlockContextFull, \"prod\" | \"staging\" | \"getResultsPool\">;\n\nexport function constructBlockContextArgsOnly(\n projectEntry: PlTreeEntry,\n blockId: string,\n): BlockContextArgsOnly {\n const args = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"currentArgs\"),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n const activeArgs = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"prodArgs\"),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n const data = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"blockStorage\"),\n stableIfNotFound: true,\n })\n ?.getData();\n if (!data) return undefined;\n\n const rawJson = cachedDecode(data);\n if (!rawJson) return undefined;\n\n // Parse to check if it's BlockStorage format\n try {\n const parsed = JSON.parse(rawJson);\n return JSON.stringify(deriveDataFromStorage(parsed));\n } catch (err) {\n console.error(\"Error deriving data from storage\", err);\n return undefined;\n }\n };\n // Returns raw blockStorage JSON - UI derives data using sdk/model\n const blockStorage = (cCtx: ComputableCtx) => {\n const storageData = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"blockStorage\"),\n stableIfNotFound: true,\n })\n ?.getData();\n if (!storageData) return undefined;\n return cachedDecode(storageData);\n };\n const prerunArgs = (cCtx: ComputableCtx) => {\n const data = cCtx\n .accessor(projectEntry)\n .node()\n .traverse({\n field: projectFieldName(blockId, \"currentPrerunArgs\"),\n stableIfNotFound: true,\n })\n ?.getData();\n return data ? cachedDecode(data) : undefined;\n };\n return {\n blockId,\n args,\n activeArgs,\n data,\n blockStorage,\n prerunArgs,\n blockMeta: (cCtx: ComputableCtx) => {\n const prj = cCtx.accessor(projectEntry).node();\n const structure = notEmpty(prj.getKeyValueAsJson<ProjectStructure>(ProjectStructureKey));\n const result = new Map<string, Block>();\n for (const block of allBlocks(structure)) result.set(block.id, block);\n return result;\n },\n };\n}\n\nexport function constructBlockContext(\n projectEntry: PlTreeEntry,\n blockId: string,\n): BlockContextFull {\n return {\n ...constructBlockContextArgsOnly(projectEntry, blockId),\n prod: (cCtx: ComputableCtx) => {\n return cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, \"prodOutput\"),\n stableIfNotFound: true,\n ignoreError: true,\n })\n ?.persist();\n },\n staging: (cCtx: ComputableCtx) => {\n // Check if staging is expected (currentPrerunArgs is set)\n // For blocks with failed args derivation, staging will never be rendered\n const hasPrerunArgs =\n cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, \"currentPrerunArgs\"),\n stableIfNotFound: true,\n ignoreError: true,\n }) !== undefined;\n\n const result = cCtx\n .accessor(projectEntry)\n .node({ ignoreError: true })\n .traverse({\n field: projectFieldName(blockId, \"stagingOutput\"),\n // Only mark stable if staging is NOT expected (no prerunArgs)\n stableIfNotFound: !hasPrerunArgs,\n ignoreError: true,\n })\n ?.persist();\n return result;\n },\n getResultsPool: (cCtx: ComputableCtx) => ResultPool.create(cCtx, projectEntry, blockId),\n };\n}\n"],"names":[],"mappings":";;;;;;AA4BM,SAAU,6BAA6B,CAC3C,YAAyB,EACzB,OAAe,EAAA;AAEf,IAAA,MAAM,IAAI,GAAG,CAAC,IAAmB,KAAI;QACnC,MAAM,IAAI,GAAG;aACV,QAAQ,CAAC,YAAY;AACrB,aAAA,IAAI;AACJ,aAAA,QAAQ,CAAC;AACR,YAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC;AAC/C,YAAA,gBAAgB,EAAE,IAAI;SACvB;cACC,OAAO,EAAE;AACb,QAAA,OAAO,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS;AAC9C,IAAA,CAAC;AACD,IAAA,MAAM,UAAU,GAAG,CAAC,IAAmB,KAAI;QACzC,MAAM,IAAI,GAAG;aACV,QAAQ,CAAC,YAAY;AACrB,aAAA,IAAI;AACJ,aAAA,QAAQ,CAAC;AACR,YAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;AAC5C,YAAA,gBAAgB,EAAE,IAAI;SACvB;cACC,OAAO,EAAE;AACb,QAAA,OAAO,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS;AAC9C,IAAA,CAAC;AACD,IAAA,MAAM,IAAI,GAAG,CAAC,IAAmB,KAAI;QACnC,MAAM,IAAI,GAAG;aACV,QAAQ,CAAC,YAAY;AACrB,aAAA,IAAI;AACJ,aAAA,QAAQ,CAAC;AACR,YAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC;AAChD,YAAA,gBAAgB,EAAE,IAAI;SACvB;cACC,OAAO,EAAE;AACb,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,SAAS;AAE3B,QAAA,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,SAAS;;AAG9B,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAClC,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACtD;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC;AACtD,YAAA,OAAO,SAAS;QAClB;AACF,IAAA,CAAC;;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,IAAmB,KAAI;QAC3C,MAAM,WAAW,GAAG;aACjB,QAAQ,CAAC,YAAY;AACrB,aAAA,IAAI;AACJ,aAAA,QAAQ,CAAC;AACR,YAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC;AAChD,YAAA,gBAAgB,EAAE,IAAI;SACvB;cACC,OAAO,EAAE;AACb,QAAA,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,SAAS;AAClC,QAAA,OAAO,YAAY,CAAC,WAAW,CAAC;AAClC,IAAA,CAAC;AACD,IAAA,MAAM,UAAU,GAAG,CAAC,IAAmB,KAAI;QACzC,MAAM,IAAI,GAAG;aACV,QAAQ,CAAC,YAAY;AACrB,aAAA,IAAI;AACJ,aAAA,QAAQ,CAAC;AACR,YAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC;AACrD,YAAA,gBAAgB,EAAE,IAAI;SACvB;cACC,OAAO,EAAE;AACb,QAAA,OAAO,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS;AAC9C,IAAA,CAAC;IACD,OAAO;QACL,OAAO;QACP,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,YAAY;QACZ,UAAU;AACV,QAAA,SAAS,EAAE,CAAC,IAAmB,KAAI;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;YAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAmB,mBAAmB,CAAC,CAAC;AACxF,YAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB;AACvC,YAAA,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,SAAS,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC;AACrE,YAAA,OAAO,MAAM;QACf,CAAC;KACF;AACH;AAEM,SAAU,qBAAqB,CACnC,YAAyB,EACzB,OAAe,EAAA;IAEf,OAAO;AACL,QAAA,GAAG,6BAA6B,CAAC,YAAY,EAAE,OAAO,CAAC;AACvD,QAAA,IAAI,EAAE,CAAC,IAAmB,KAAI;AAC5B,YAAA,OAAO;iBACJ,QAAQ,CAAC,YAAY;AACrB,iBAAA,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;AAC1B,iBAAA,QAAQ,CAAC;AACR,gBAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC;AAC9C,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,WAAW,EAAE,IAAI;aAClB;kBACC,OAAO,EAAE;QACf,CAAC;AACD,QAAA,OAAO,EAAE,CAAC,IAAmB,KAAI;;;YAG/B,MAAM,aAAa,GACjB;iBACG,QAAQ,CAAC,YAAY;AACrB,iBAAA,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;AAC1B,iBAAA,QAAQ,CAAC;AACR,gBAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC;AACrD,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,WAAW,EAAE,IAAI;aAClB,CAAC,KAAK,SAAS;YAEpB,MAAM,MAAM,GAAG;iBACZ,QAAQ,CAAC,YAAY;AACrB,iBAAA,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;AAC1B,iBAAA,QAAQ,CAAC;AACR,gBAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC;;gBAEjD,gBAAgB,EAAE,CAAC,aAAa;AAChC,gBAAA,WAAW,EAAE,IAAI;aAClB;kBACC,OAAO,EAAE;AACb,YAAA,OAAO,MAAM;QACf,CAAC;AACD,QAAA,cAAc,EAAE,CAAC,IAAmB,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC;KACxF;AACH;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const NonKeyCtxFields = ['$prod', '$staging'];
3
+ const NonKeyCtxFields = ["$prod", "$staging"];
4
4
  function toCfgContext(ctx) {
5
5
  return {
6
6
  $blockId: ctx.blockId,
@@ -1 +1 @@
1
- {"version":3,"file":"block_ctx_unsafe.cjs","sources":["../../src/middle_layer/block_ctx_unsafe.ts"],"sourcesContent":["import type { ComputableCtx } from '@milaboratories/computable';\nimport type { PlTreeEntry } from '@milaboratories/pl-tree';\nimport type { PlResourceEntry, StdCtx } from '@platforma-sdk/model';\nimport type { BlockContextAny } from './block_ctx';\n\ntype SC = StdCtx<unknown, unknown>;\ntype SCAO = Pick<SC, '$blockId' | '$ui' | '$args' | '$data'>;\nexport type MatStdCtxArgsOnly = {\n [Var in keyof SCAO]: SCAO[Var] extends PlResourceEntry\n ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined\n : SCAO[Var];\n};\nexport type MatStdCtx = {\n [Var in keyof SC]: SC[Var] extends PlResourceEntry\n ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined\n : SC[Var];\n};\n\nexport const NonKeyCtxFields = ['$prod', '$staging'];\n\nexport function toCfgContext(ctx: BlockContextAny): MatStdCtx {\n return {\n $blockId: ctx.blockId,\n $args: (cCtx: ComputableCtx) => {\n const args = ctx.args(cCtx);\n return args !== undefined ? JSON.parse(args) as unknown : undefined;\n },\n $ui: (cCtx: ComputableCtx) => {\n const data = ctx.data(cCtx);\n return data !== undefined ? JSON.parse(data) as unknown : undefined;\n },\n $data: (cCtx: ComputableCtx) => {\n const data = ctx.data(cCtx);\n return data !== undefined ? JSON.parse(data) as unknown : undefined;\n },\n $prod: ctx.prod,\n $staging: ctx.staging,\n };\n}\n"],"names":[],"mappings":";;MAkBa,eAAe,GAAG,CAAC,OAAO,EAAE,UAAU;AAE7C,SAAU,YAAY,CAAC,GAAoB,EAAA;IAC/C,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,OAAO;AACrB,QAAA,KAAK,EAAE,CAAC,IAAmB,KAAI;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,GAAG,SAAS;QACrE,CAAC;AACD,QAAA,GAAG,EAAE,CAAC,IAAmB,KAAI;YAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,GAAG,SAAS;QACrE,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,IAAmB,KAAI;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,GAAG,SAAS;QACrE,CAAC;QACD,KAAK,EAAE,GAAG,CAAC,IAAI;QACf,QAAQ,EAAE,GAAG,CAAC,OAAO;KACtB;AACH;;;;;"}
1
+ {"version":3,"file":"block_ctx_unsafe.cjs","sources":["../../src/middle_layer/block_ctx_unsafe.ts"],"sourcesContent":["import type { ComputableCtx } from \"@milaboratories/computable\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport type { PlResourceEntry, StdCtx } from \"@platforma-sdk/model\";\nimport type { BlockContextAny } from \"./block_ctx\";\n\ntype SC = StdCtx<unknown, unknown>;\ntype SCAO = Pick<SC, \"$blockId\" | \"$ui\" | \"$args\" | \"$data\">;\nexport type MatStdCtxArgsOnly = {\n [Var in keyof SCAO]: SCAO[Var] extends PlResourceEntry\n ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined\n : SCAO[Var];\n};\nexport type MatStdCtx = {\n [Var in keyof SC]: SC[Var] extends PlResourceEntry\n ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined\n : SC[Var];\n};\n\nexport const NonKeyCtxFields = [\"$prod\", \"$staging\"];\n\nexport function toCfgContext(ctx: BlockContextAny): MatStdCtx {\n return {\n $blockId: ctx.blockId,\n $args: (cCtx: ComputableCtx) => {\n const args = ctx.args(cCtx);\n return args !== undefined ? (JSON.parse(args) as unknown) : undefined;\n },\n $ui: (cCtx: ComputableCtx) => {\n const data = ctx.data(cCtx);\n return data !== undefined ? (JSON.parse(data) as unknown) : undefined;\n },\n $data: (cCtx: ComputableCtx) => {\n const data = ctx.data(cCtx);\n return data !== undefined ? (JSON.parse(data) as unknown) : undefined;\n },\n $prod: ctx.prod,\n $staging: ctx.staging,\n };\n}\n"],"names":[],"mappings":";;MAkBa,eAAe,GAAG,CAAC,OAAO,EAAE,UAAU;AAE7C,SAAU,YAAY,CAAC,GAAoB,EAAA;IAC/C,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,OAAO;AACrB,QAAA,KAAK,EAAE,CAAC,IAAmB,KAAI;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,GAAG,SAAS;QACvE,CAAC;AACD,QAAA,GAAG,EAAE,CAAC,IAAmB,KAAI;YAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,GAAG,SAAS;QACvE,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,IAAmB,KAAI;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,GAAG,SAAS;QACvE,CAAC;QACD,KAAK,EAAE,GAAG,CAAC,IAAI;QACf,QAAQ,EAAE,GAAG,CAAC,OAAO;KACtB;AACH;;;;;"}
@@ -1,9 +1,9 @@
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
  type SC = StdCtx<unknown, unknown>;
6
- type SCAO = Pick<SC, '$blockId' | '$ui' | '$args' | '$data'>;
6
+ type SCAO = Pick<SC, "$blockId" | "$ui" | "$args" | "$data">;
7
7
  export type MatStdCtxArgsOnly = {
8
8
  [Var in keyof SCAO]: SCAO[Var] extends PlResourceEntry ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined : SCAO[Var];
9
9
  };
@@ -1,4 +1,4 @@
1
- const NonKeyCtxFields = ['$prod', '$staging'];
1
+ const NonKeyCtxFields = ["$prod", "$staging"];
2
2
  function toCfgContext(ctx) {
3
3
  return {
4
4
  $blockId: ctx.blockId,
@@ -1 +1 @@
1
- {"version":3,"file":"block_ctx_unsafe.js","sources":["../../src/middle_layer/block_ctx_unsafe.ts"],"sourcesContent":["import type { ComputableCtx } from '@milaboratories/computable';\nimport type { PlTreeEntry } from '@milaboratories/pl-tree';\nimport type { PlResourceEntry, StdCtx } from '@platforma-sdk/model';\nimport type { BlockContextAny } from './block_ctx';\n\ntype SC = StdCtx<unknown, unknown>;\ntype SCAO = Pick<SC, '$blockId' | '$ui' | '$args' | '$data'>;\nexport type MatStdCtxArgsOnly = {\n [Var in keyof SCAO]: SCAO[Var] extends PlResourceEntry\n ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined\n : SCAO[Var];\n};\nexport type MatStdCtx = {\n [Var in keyof SC]: SC[Var] extends PlResourceEntry\n ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined\n : SC[Var];\n};\n\nexport const NonKeyCtxFields = ['$prod', '$staging'];\n\nexport function toCfgContext(ctx: BlockContextAny): MatStdCtx {\n return {\n $blockId: ctx.blockId,\n $args: (cCtx: ComputableCtx) => {\n const args = ctx.args(cCtx);\n return args !== undefined ? JSON.parse(args) as unknown : undefined;\n },\n $ui: (cCtx: ComputableCtx) => {\n const data = ctx.data(cCtx);\n return data !== undefined ? JSON.parse(data) as unknown : undefined;\n },\n $data: (cCtx: ComputableCtx) => {\n const data = ctx.data(cCtx);\n return data !== undefined ? JSON.parse(data) as unknown : undefined;\n },\n $prod: ctx.prod,\n $staging: ctx.staging,\n };\n}\n"],"names":[],"mappings":"MAkBa,eAAe,GAAG,CAAC,OAAO,EAAE,UAAU;AAE7C,SAAU,YAAY,CAAC,GAAoB,EAAA;IAC/C,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,OAAO;AACrB,QAAA,KAAK,EAAE,CAAC,IAAmB,KAAI;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,GAAG,SAAS;QACrE,CAAC;AACD,QAAA,GAAG,EAAE,CAAC,IAAmB,KAAI;YAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,GAAG,SAAS;QACrE,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,IAAmB,KAAI;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,GAAG,SAAS;QACrE,CAAC;QACD,KAAK,EAAE,GAAG,CAAC,IAAI;QACf,QAAQ,EAAE,GAAG,CAAC,OAAO;KACtB;AACH;;;;"}
1
+ {"version":3,"file":"block_ctx_unsafe.js","sources":["../../src/middle_layer/block_ctx_unsafe.ts"],"sourcesContent":["import type { ComputableCtx } from \"@milaboratories/computable\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport type { PlResourceEntry, StdCtx } from \"@platforma-sdk/model\";\nimport type { BlockContextAny } from \"./block_ctx\";\n\ntype SC = StdCtx<unknown, unknown>;\ntype SCAO = Pick<SC, \"$blockId\" | \"$ui\" | \"$args\" | \"$data\">;\nexport type MatStdCtxArgsOnly = {\n [Var in keyof SCAO]: SCAO[Var] extends PlResourceEntry\n ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined\n : SCAO[Var];\n};\nexport type MatStdCtx = {\n [Var in keyof SC]: SC[Var] extends PlResourceEntry\n ? PlTreeEntry | ((cCtx: ComputableCtx) => PlTreeEntry | undefined) | undefined\n : SC[Var];\n};\n\nexport const NonKeyCtxFields = [\"$prod\", \"$staging\"];\n\nexport function toCfgContext(ctx: BlockContextAny): MatStdCtx {\n return {\n $blockId: ctx.blockId,\n $args: (cCtx: ComputableCtx) => {\n const args = ctx.args(cCtx);\n return args !== undefined ? (JSON.parse(args) as unknown) : undefined;\n },\n $ui: (cCtx: ComputableCtx) => {\n const data = ctx.data(cCtx);\n return data !== undefined ? (JSON.parse(data) as unknown) : undefined;\n },\n $data: (cCtx: ComputableCtx) => {\n const data = ctx.data(cCtx);\n return data !== undefined ? (JSON.parse(data) as unknown) : undefined;\n },\n $prod: ctx.prod,\n $staging: ctx.staging,\n };\n}\n"],"names":[],"mappings":"MAkBa,eAAe,GAAG,CAAC,OAAO,EAAE,UAAU;AAE7C,SAAU,YAAY,CAAC,GAAoB,EAAA;IAC/C,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,OAAO;AACrB,QAAA,KAAK,EAAE,CAAC,IAAmB,KAAI;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,GAAG,SAAS;QACvE,CAAC;AACD,QAAA,GAAG,EAAE,CAAC,IAAmB,KAAI;YAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,GAAG,SAAS;QACvE,CAAC;AACD,QAAA,KAAK,EAAE,CAAC,IAAmB,KAAI;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,YAAA,OAAO,IAAI,KAAK,SAAS,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,GAAG,SAAS;QACvE,CAAC;QACD,KAAK,EAAE,GAAG,CAAC,IAAI;QACf,QAAQ,EAAE,GAAG,CAAC,OAAO;KACtB;AACH;;;;"}
@@ -42,8 +42,7 @@ async function initDriverKit(pl, workdir, frontendDownloadPath, _ops) {
42
42
  frontendDriver: frontendDownloadDriver,
43
43
  };
44
44
  const dispose = async () => {
45
- const disposePromises = Object.values(driverKit)
46
- .flatMap((driver) => tsHelpers.isAsyncDisposable(driver) ? [driver[Symbol.asyncDispose]] : []);
45
+ const disposePromises = Object.values(driverKit).flatMap((driver) => tsHelpers.isAsyncDisposable(driver) ? [driver[Symbol.asyncDispose]] : []);
47
46
  await Promise.all(disposePromises);
48
47
  };
49
48
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"driver_kit.cjs","sources":["../../src/middle_layer/driver_kit.ts"],"sourcesContent":["import type { PlClient } from '@milaboratories/pl-client';\nimport type {\n InternalLsDriver } from '@milaboratories/pl-drivers';\nimport {\n createDownloadClient,\n createLogsClient,\n createUploadBlobClient,\n createUploadProgressClient,\n DownloadDriver,\n DownloadBlobToURLDriver,\n LogsDriver,\n LogsStreamDriver,\n LsDriver,\n UploadDriver,\n DownloadUrlDriver,\n} from '@milaboratories/pl-drivers';\nimport type * as Sdk from '@milaboratories/pl-model-common';\nimport type { Signer } from '@milaboratories/ts-helpers';\nimport { HmacSha256Signer, isAsyncDisposable } from '@milaboratories/ts-helpers';\nimport type { InternalPFrameDriver } from '../pool';\nimport { createPFrameDriver } from '../pool';\nimport type {\n DriverKitOps,\n DriverKitOpsConstructor,\n} from './ops';\nimport {\n DefaultDriverKitOpsPaths,\n DefaultDriverKitOpsSettings,\n} from './ops';\n\n/**\n * Drivers offered by the middle-layer for internal consumers,\n * like configuration rendering routines.\n *\n * This intertface is basically a version of the DriverKit from\n * UI SDK with extended API.\n * */\nexport interface MiddleLayerDriverKit extends Sdk.DriverKit, AsyncDisposable {\n /** Dispose the driver kit and all its resources. */\n dispose(): Promise<void>;\n\n // override with wider interface\n readonly blobDriver: DownloadDriver;\n // override with wider interface\n readonly blobToURLDriver: DownloadBlobToURLDriver;\n // override with wider interface\n readonly logDriver: LogsDriver;\n // override with wider interface\n readonly lsDriver: InternalLsDriver;\n // override with wider interface\n readonly pFrameDriver: InternalPFrameDriver;\n // override with wider interface\n readonly frontendDriver: DownloadUrlDriver;\n\n /**\n * Signer is initialized from local secret in drivers initialization routine,\n * so constitutes a part of the driver kit\n * */\n readonly signer: Signer;\n\n /**\n * Used to retrieve upload progress, and initiate upload porecesses driven by\n * upload requests from block outputs.\n * */\n readonly uploadDriver: UploadDriver;\n}\n\nexport async function initDriverKit(\n pl: PlClient,\n workdir: string,\n frontendDownloadPath: string,\n _ops: DriverKitOpsConstructor,\n): Promise<MiddleLayerDriverKit> {\n const ops: DriverKitOps = {\n ...DefaultDriverKitOpsSettings,\n ...DefaultDriverKitOpsPaths(workdir),\n ..._ops,\n };\n\n const signer = new HmacSha256Signer(ops.localSecret);\n\n const downloadClient = createDownloadClient(ops.logger, pl, ops.localProjections);\n const logsClient = createLogsClient(pl, ops.logger);\n const uploadBlobClient = createUploadBlobClient(pl, ops.logger);\n const uploadProgressClient = createUploadProgressClient(pl, ops.logger);\n\n const blobDriver = await DownloadDriver.init(\n ops.logger,\n downloadClient,\n logsClient,\n ops.blobDownloadPath,\n ops.blobDownloadRangesCachePath,\n signer,\n ops.blobDriverOps,\n );\n\n const blobToURLDriver = new DownloadBlobToURLDriver(\n ops.logger,\n signer,\n downloadClient,\n ops.downloadBlobToURLPath,\n ops.downloadBlobToURLDriverOps,\n );\n\n const uploadDriver = new UploadDriver(\n ops.logger,\n signer,\n uploadBlobClient,\n uploadProgressClient,\n ops.uploadDriverOps,\n );\n const logsStreamDriver = new LogsStreamDriver(ops.logger, logsClient, ops.logStreamDriverOps);\n const logDriver = new LogsDriver(ops.logger, logsStreamDriver, blobDriver);\n const lsDriver = await LsDriver.init(\n ops.logger,\n pl,\n signer,\n ops.localProjections,\n ops.openFileDialogCallback,\n ops.virtualLocalStoragesOverride,\n );\n\n const pFrameDriver = await createPFrameDriver({\n blobDriver,\n logger: ops.logger,\n spillPath: ops.pframesSpillPath,\n options: ops.pFrameDriverOps,\n });\n\n const frontendDownloadDriver = new DownloadUrlDriver(\n ops.logger,\n pl.httpDispatcher,\n frontendDownloadPath,\n signer,\n ops.frontendDownloadDriverOps,\n );\n\n const driverKit = {\n blobDriver,\n blobToURLDriver: blobToURLDriver,\n logDriver,\n lsDriver,\n signer,\n uploadDriver,\n pFrameDriver,\n frontendDriver: frontendDownloadDriver,\n };\n\n const dispose = async () => {\n const disposePromises = Object.values(driverKit)\n .flatMap((driver) => isAsyncDisposable(driver) ? [driver[Symbol.asyncDispose]] : []);\n await Promise.all(disposePromises);\n };\n\n return {\n ...driverKit,\n dispose,\n [Symbol.asyncDispose]: dispose,\n };\n}\n"],"names":["ops","DefaultDriverKitOpsSettings","DefaultDriverKitOpsPaths","HmacSha256Signer","createDownloadClient","createLogsClient","createUploadBlobClient","createUploadProgressClient","DownloadDriver","DownloadBlobToURLDriver","UploadDriver","LogsStreamDriver","LogsDriver","LsDriver","createPFrameDriver","DownloadUrlDriver","isAsyncDisposable"],"mappings":"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"}
1
+ {"version":3,"file":"driver_kit.cjs","sources":["../../src/middle_layer/driver_kit.ts"],"sourcesContent":["import type { PlClient } from \"@milaboratories/pl-client\";\nimport type { InternalLsDriver } from \"@milaboratories/pl-drivers\";\nimport {\n createDownloadClient,\n createLogsClient,\n createUploadBlobClient,\n createUploadProgressClient,\n DownloadDriver,\n DownloadBlobToURLDriver,\n LogsDriver,\n LogsStreamDriver,\n LsDriver,\n UploadDriver,\n DownloadUrlDriver,\n} from \"@milaboratories/pl-drivers\";\nimport type * as Sdk from \"@milaboratories/pl-model-common\";\nimport type { Signer } from \"@milaboratories/ts-helpers\";\nimport { HmacSha256Signer, isAsyncDisposable } from \"@milaboratories/ts-helpers\";\nimport type { InternalPFrameDriver } from \"../pool\";\nimport { createPFrameDriver } from \"../pool\";\nimport type { DriverKitOps, DriverKitOpsConstructor } from \"./ops\";\nimport { DefaultDriverKitOpsPaths, DefaultDriverKitOpsSettings } from \"./ops\";\n\n/**\n * Drivers offered by the middle-layer for internal consumers,\n * like configuration rendering routines.\n *\n * This intertface is basically a version of the DriverKit from\n * UI SDK with extended API.\n * */\nexport interface MiddleLayerDriverKit extends Sdk.DriverKit, AsyncDisposable {\n /** Dispose the driver kit and all its resources. */\n dispose(): Promise<void>;\n\n // override with wider interface\n readonly blobDriver: DownloadDriver;\n // override with wider interface\n readonly blobToURLDriver: DownloadBlobToURLDriver;\n // override with wider interface\n readonly logDriver: LogsDriver;\n // override with wider interface\n readonly lsDriver: InternalLsDriver;\n // override with wider interface\n readonly pFrameDriver: InternalPFrameDriver;\n // override with wider interface\n readonly frontendDriver: DownloadUrlDriver;\n\n /**\n * Signer is initialized from local secret in drivers initialization routine,\n * so constitutes a part of the driver kit\n * */\n readonly signer: Signer;\n\n /**\n * Used to retrieve upload progress, and initiate upload porecesses driven by\n * upload requests from block outputs.\n * */\n readonly uploadDriver: UploadDriver;\n}\n\nexport async function initDriverKit(\n pl: PlClient,\n workdir: string,\n frontendDownloadPath: string,\n _ops: DriverKitOpsConstructor,\n): Promise<MiddleLayerDriverKit> {\n const ops: DriverKitOps = {\n ...DefaultDriverKitOpsSettings,\n ...DefaultDriverKitOpsPaths(workdir),\n ..._ops,\n };\n\n const signer = new HmacSha256Signer(ops.localSecret);\n\n const downloadClient = createDownloadClient(ops.logger, pl, ops.localProjections);\n const logsClient = createLogsClient(pl, ops.logger);\n const uploadBlobClient = createUploadBlobClient(pl, ops.logger);\n const uploadProgressClient = createUploadProgressClient(pl, ops.logger);\n\n const blobDriver = await DownloadDriver.init(\n ops.logger,\n downloadClient,\n logsClient,\n ops.blobDownloadPath,\n ops.blobDownloadRangesCachePath,\n signer,\n ops.blobDriverOps,\n );\n\n const blobToURLDriver = new DownloadBlobToURLDriver(\n ops.logger,\n signer,\n downloadClient,\n ops.downloadBlobToURLPath,\n ops.downloadBlobToURLDriverOps,\n );\n\n const uploadDriver = new UploadDriver(\n ops.logger,\n signer,\n uploadBlobClient,\n uploadProgressClient,\n ops.uploadDriverOps,\n );\n const logsStreamDriver = new LogsStreamDriver(ops.logger, logsClient, ops.logStreamDriverOps);\n const logDriver = new LogsDriver(ops.logger, logsStreamDriver, blobDriver);\n const lsDriver = await LsDriver.init(\n ops.logger,\n pl,\n signer,\n ops.localProjections,\n ops.openFileDialogCallback,\n ops.virtualLocalStoragesOverride,\n );\n\n const pFrameDriver = await createPFrameDriver({\n blobDriver,\n logger: ops.logger,\n spillPath: ops.pframesSpillPath,\n options: ops.pFrameDriverOps,\n });\n\n const frontendDownloadDriver = new DownloadUrlDriver(\n ops.logger,\n pl.httpDispatcher,\n frontendDownloadPath,\n signer,\n ops.frontendDownloadDriverOps,\n );\n\n const driverKit = {\n blobDriver,\n blobToURLDriver: blobToURLDriver,\n logDriver,\n lsDriver,\n signer,\n uploadDriver,\n pFrameDriver,\n frontendDriver: frontendDownloadDriver,\n };\n\n const dispose = async () => {\n const disposePromises = Object.values(driverKit).flatMap((driver) =>\n isAsyncDisposable(driver) ? [driver[Symbol.asyncDispose]] : [],\n );\n await Promise.all(disposePromises);\n };\n\n return {\n ...driverKit,\n dispose,\n [Symbol.asyncDispose]: dispose,\n };\n}\n"],"names":["ops","DefaultDriverKitOpsSettings","DefaultDriverKitOpsPaths","HmacSha256Signer","createDownloadClient","createLogsClient","createUploadBlobClient","createUploadProgressClient","DownloadDriver","DownloadBlobToURLDriver","UploadDriver","LogsStreamDriver","LogsDriver","LsDriver","createPFrameDriver","DownloadUrlDriver","isAsyncDisposable"],"mappings":";;;;;;;;;AA4DO,eAAe,aAAa,CACjC,EAAY,EACZ,OAAe,EACf,oBAA4B,EAC5B,IAA6B,EAAA;AAE7B,IAAA,MAAMA,KAAG,GAAiB;AACxB,QAAA,GAAGC,+BAA2B;QAC9B,GAAGC,4BAAwB,CAAC,OAAO,CAAC;AACpC,QAAA,GAAG,IAAI;KACR;IAED,MAAM,MAAM,GAAG,IAAIC,0BAAgB,CAACH,KAAG,CAAC,WAAW,CAAC;AAEpD,IAAA,MAAM,cAAc,GAAGI,8BAAoB,CAACJ,KAAG,CAAC,MAAM,EAAE,EAAE,EAAEA,KAAG,CAAC,gBAAgB,CAAC;IACjF,MAAM,UAAU,GAAGK,0BAAgB,CAAC,EAAE,EAAEL,KAAG,CAAC,MAAM,CAAC;IACnD,MAAM,gBAAgB,GAAGM,gCAAsB,CAAC,EAAE,EAAEN,KAAG,CAAC,MAAM,CAAC;IAC/D,MAAM,oBAAoB,GAAGO,oCAA0B,CAAC,EAAE,EAAEP,KAAG,CAAC,MAAM,CAAC;AAEvE,IAAA,MAAM,UAAU,GAAG,MAAMQ,wBAAc,CAAC,IAAI,CAC1CR,KAAG,CAAC,MAAM,EACV,cAAc,EACd,UAAU,EACVA,KAAG,CAAC,gBAAgB,EACpBA,KAAG,CAAC,2BAA2B,EAC/B,MAAM,EACNA,KAAG,CAAC,aAAa,CAClB;IAED,MAAM,eAAe,GAAG,IAAIS,iCAAuB,CACjDT,KAAG,CAAC,MAAM,EACV,MAAM,EACN,cAAc,EACdA,KAAG,CAAC,qBAAqB,EACzBA,KAAG,CAAC,0BAA0B,CAC/B;AAED,IAAA,MAAM,YAAY,GAAG,IAAIU,sBAAY,CACnCV,KAAG,CAAC,MAAM,EACV,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpBA,KAAG,CAAC,eAAe,CACpB;AACD,IAAA,MAAM,gBAAgB,GAAG,IAAIW,0BAAgB,CAACX,KAAG,CAAC,MAAM,EAAE,UAAU,EAAEA,KAAG,CAAC,kBAAkB,CAAC;AAC7F,IAAA,MAAM,SAAS,GAAG,IAAIY,oBAAU,CAACZ,KAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAMa,kBAAQ,CAAC,IAAI,CAClCb,KAAG,CAAC,MAAM,EACV,EAAE,EACF,MAAM,EACNA,KAAG,CAAC,gBAAgB,EACpBA,KAAG,CAAC,sBAAsB,EAC1BA,KAAG,CAAC,4BAA4B,CACjC;AAED,IAAA,MAAM,YAAY,GAAG,MAAMc,yBAAkB,CAAC;QAC5C,UAAU;QACV,MAAM,EAAEd,KAAG,CAAC,MAAM;QAClB,SAAS,EAAEA,KAAG,CAAC,gBAAgB;QAC/B,OAAO,EAAEA,KAAG,CAAC,eAAe;AAC7B,KAAA,CAAC;IAEF,MAAM,sBAAsB,GAAG,IAAIe,2BAAiB,CAClDf,KAAG,CAAC,MAAM,EACV,EAAE,CAAC,cAAc,EACjB,oBAAoB,EACpB,MAAM,EACNA,KAAG,CAAC,yBAAyB,CAC9B;AAED,IAAA,MAAM,SAAS,GAAG;QAChB,UAAU;AACV,QAAA,eAAe,EAAE,eAAe;QAChC,SAAS;QACT,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,YAAY;AACZ,QAAA,cAAc,EAAE,sBAAsB;KACvC;AAED,IAAA,MAAM,OAAO,GAAG,YAAW;AACzB,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAC9DgB,2BAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAC/D;AACD,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AACpC,IAAA,CAAC;IAED,OAAO;AACL,QAAA,GAAG,SAAS;QACZ,OAAO;AACP,QAAA,CAAC,MAAM,CAAC,YAAY,GAAG,OAAO;KAC/B;AACH;;;;"}
@@ -1,10 +1,10 @@
1
- import type { PlClient } from '@milaboratories/pl-client';
2
- import type { InternalLsDriver } from '@milaboratories/pl-drivers';
3
- import { DownloadDriver, DownloadBlobToURLDriver, LogsDriver, UploadDriver, DownloadUrlDriver } from '@milaboratories/pl-drivers';
4
- import type * as Sdk from '@milaboratories/pl-model-common';
5
- import type { Signer } from '@milaboratories/ts-helpers';
6
- import type { InternalPFrameDriver } from '../pool';
7
- import type { DriverKitOpsConstructor } from './ops';
1
+ import type { PlClient } from "@milaboratories/pl-client";
2
+ import type { InternalLsDriver } from "@milaboratories/pl-drivers";
3
+ import { DownloadDriver, DownloadBlobToURLDriver, LogsDriver, UploadDriver, DownloadUrlDriver } from "@milaboratories/pl-drivers";
4
+ import type * as Sdk from "@milaboratories/pl-model-common";
5
+ import type { Signer } from "@milaboratories/ts-helpers";
6
+ import type { InternalPFrameDriver } from "../pool";
7
+ import type { DriverKitOpsConstructor } from "./ops";
8
8
  /**
9
9
  * Drivers offered by the middle-layer for internal consumers,
10
10
  * like configuration rendering routines.
@@ -1 +1 @@
1
- {"version":3,"file":"driver_kit.d.ts","sourceRoot":"","sources":["../../src/middle_layer/driver_kit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAKL,cAAc,EACd,uBAAuB,EACvB,UAAU,EAGV,YAAY,EACZ,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,GAAG,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,OAAO,CAAC;AAMf;;;;;;KAMK;AACL,MAAM,WAAW,oBAAqB,SAAQ,GAAG,CAAC,SAAS,EAAE,eAAe;IAC1E,oDAAoD;IACpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAElD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAEpC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAE5C,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAE3C;;;SAGK;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;SAGK;IACL,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAC5B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAuF/B"}
1
+ {"version":3,"file":"driver_kit.d.ts","sourceRoot":"","sources":["../../src/middle_layer/driver_kit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAKL,cAAc,EACd,uBAAuB,EACvB,UAAU,EAGV,YAAY,EACZ,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,GAAG,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,KAAK,EAAgB,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAGnE;;;;;;KAMK;AACL,MAAM,WAAW,oBAAqB,SAAQ,GAAG,CAAC,SAAS,EAAE,eAAe;IAC1E,oDAAoD;IACpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAElD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAEpC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAE5C,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAE3C;;;SAGK;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;SAGK;IACL,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAC5B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAwF/B"}
@@ -40,8 +40,7 @@ async function initDriverKit(pl, workdir, frontendDownloadPath, _ops) {
40
40
  frontendDriver: frontendDownloadDriver,
41
41
  };
42
42
  const dispose = async () => {
43
- const disposePromises = Object.values(driverKit)
44
- .flatMap((driver) => isAsyncDisposable(driver) ? [driver[Symbol.asyncDispose]] : []);
43
+ const disposePromises = Object.values(driverKit).flatMap((driver) => isAsyncDisposable(driver) ? [driver[Symbol.asyncDispose]] : []);
45
44
  await Promise.all(disposePromises);
46
45
  };
47
46
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"driver_kit.js","sources":["../../src/middle_layer/driver_kit.ts"],"sourcesContent":["import type { PlClient } from '@milaboratories/pl-client';\nimport type {\n InternalLsDriver } from '@milaboratories/pl-drivers';\nimport {\n createDownloadClient,\n createLogsClient,\n createUploadBlobClient,\n createUploadProgressClient,\n DownloadDriver,\n DownloadBlobToURLDriver,\n LogsDriver,\n LogsStreamDriver,\n LsDriver,\n UploadDriver,\n DownloadUrlDriver,\n} from '@milaboratories/pl-drivers';\nimport type * as Sdk from '@milaboratories/pl-model-common';\nimport type { Signer } from '@milaboratories/ts-helpers';\nimport { HmacSha256Signer, isAsyncDisposable } from '@milaboratories/ts-helpers';\nimport type { InternalPFrameDriver } from '../pool';\nimport { createPFrameDriver } from '../pool';\nimport type {\n DriverKitOps,\n DriverKitOpsConstructor,\n} from './ops';\nimport {\n DefaultDriverKitOpsPaths,\n DefaultDriverKitOpsSettings,\n} from './ops';\n\n/**\n * Drivers offered by the middle-layer for internal consumers,\n * like configuration rendering routines.\n *\n * This intertface is basically a version of the DriverKit from\n * UI SDK with extended API.\n * */\nexport interface MiddleLayerDriverKit extends Sdk.DriverKit, AsyncDisposable {\n /** Dispose the driver kit and all its resources. */\n dispose(): Promise<void>;\n\n // override with wider interface\n readonly blobDriver: DownloadDriver;\n // override with wider interface\n readonly blobToURLDriver: DownloadBlobToURLDriver;\n // override with wider interface\n readonly logDriver: LogsDriver;\n // override with wider interface\n readonly lsDriver: InternalLsDriver;\n // override with wider interface\n readonly pFrameDriver: InternalPFrameDriver;\n // override with wider interface\n readonly frontendDriver: DownloadUrlDriver;\n\n /**\n * Signer is initialized from local secret in drivers initialization routine,\n * so constitutes a part of the driver kit\n * */\n readonly signer: Signer;\n\n /**\n * Used to retrieve upload progress, and initiate upload porecesses driven by\n * upload requests from block outputs.\n * */\n readonly uploadDriver: UploadDriver;\n}\n\nexport async function initDriverKit(\n pl: PlClient,\n workdir: string,\n frontendDownloadPath: string,\n _ops: DriverKitOpsConstructor,\n): Promise<MiddleLayerDriverKit> {\n const ops: DriverKitOps = {\n ...DefaultDriverKitOpsSettings,\n ...DefaultDriverKitOpsPaths(workdir),\n ..._ops,\n };\n\n const signer = new HmacSha256Signer(ops.localSecret);\n\n const downloadClient = createDownloadClient(ops.logger, pl, ops.localProjections);\n const logsClient = createLogsClient(pl, ops.logger);\n const uploadBlobClient = createUploadBlobClient(pl, ops.logger);\n const uploadProgressClient = createUploadProgressClient(pl, ops.logger);\n\n const blobDriver = await DownloadDriver.init(\n ops.logger,\n downloadClient,\n logsClient,\n ops.blobDownloadPath,\n ops.blobDownloadRangesCachePath,\n signer,\n ops.blobDriverOps,\n );\n\n const blobToURLDriver = new DownloadBlobToURLDriver(\n ops.logger,\n signer,\n downloadClient,\n ops.downloadBlobToURLPath,\n ops.downloadBlobToURLDriverOps,\n );\n\n const uploadDriver = new UploadDriver(\n ops.logger,\n signer,\n uploadBlobClient,\n uploadProgressClient,\n ops.uploadDriverOps,\n );\n const logsStreamDriver = new LogsStreamDriver(ops.logger, logsClient, ops.logStreamDriverOps);\n const logDriver = new LogsDriver(ops.logger, logsStreamDriver, blobDriver);\n const lsDriver = await LsDriver.init(\n ops.logger,\n pl,\n signer,\n ops.localProjections,\n ops.openFileDialogCallback,\n ops.virtualLocalStoragesOverride,\n );\n\n const pFrameDriver = await createPFrameDriver({\n blobDriver,\n logger: ops.logger,\n spillPath: ops.pframesSpillPath,\n options: ops.pFrameDriverOps,\n });\n\n const frontendDownloadDriver = new DownloadUrlDriver(\n ops.logger,\n pl.httpDispatcher,\n frontendDownloadPath,\n signer,\n ops.frontendDownloadDriverOps,\n );\n\n const driverKit = {\n blobDriver,\n blobToURLDriver: blobToURLDriver,\n logDriver,\n lsDriver,\n signer,\n uploadDriver,\n pFrameDriver,\n frontendDriver: frontendDownloadDriver,\n };\n\n const dispose = async () => {\n const disposePromises = Object.values(driverKit)\n .flatMap((driver) => isAsyncDisposable(driver) ? [driver[Symbol.asyncDispose]] : []);\n await Promise.all(disposePromises);\n };\n\n return {\n ...driverKit,\n dispose,\n [Symbol.asyncDispose]: dispose,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver_kit.js","sources":["../../src/middle_layer/driver_kit.ts"],"sourcesContent":["import type { PlClient } from \"@milaboratories/pl-client\";\nimport type { InternalLsDriver } from \"@milaboratories/pl-drivers\";\nimport {\n createDownloadClient,\n createLogsClient,\n createUploadBlobClient,\n createUploadProgressClient,\n DownloadDriver,\n DownloadBlobToURLDriver,\n LogsDriver,\n LogsStreamDriver,\n LsDriver,\n UploadDriver,\n DownloadUrlDriver,\n} from \"@milaboratories/pl-drivers\";\nimport type * as Sdk from \"@milaboratories/pl-model-common\";\nimport type { Signer } from \"@milaboratories/ts-helpers\";\nimport { HmacSha256Signer, isAsyncDisposable } from \"@milaboratories/ts-helpers\";\nimport type { InternalPFrameDriver } from \"../pool\";\nimport { createPFrameDriver } from \"../pool\";\nimport type { DriverKitOps, DriverKitOpsConstructor } from \"./ops\";\nimport { DefaultDriverKitOpsPaths, DefaultDriverKitOpsSettings } from \"./ops\";\n\n/**\n * Drivers offered by the middle-layer for internal consumers,\n * like configuration rendering routines.\n *\n * This intertface is basically a version of the DriverKit from\n * UI SDK with extended API.\n * */\nexport interface MiddleLayerDriverKit extends Sdk.DriverKit, AsyncDisposable {\n /** Dispose the driver kit and all its resources. */\n dispose(): Promise<void>;\n\n // override with wider interface\n readonly blobDriver: DownloadDriver;\n // override with wider interface\n readonly blobToURLDriver: DownloadBlobToURLDriver;\n // override with wider interface\n readonly logDriver: LogsDriver;\n // override with wider interface\n readonly lsDriver: InternalLsDriver;\n // override with wider interface\n readonly pFrameDriver: InternalPFrameDriver;\n // override with wider interface\n readonly frontendDriver: DownloadUrlDriver;\n\n /**\n * Signer is initialized from local secret in drivers initialization routine,\n * so constitutes a part of the driver kit\n * */\n readonly signer: Signer;\n\n /**\n * Used to retrieve upload progress, and initiate upload porecesses driven by\n * upload requests from block outputs.\n * */\n readonly uploadDriver: UploadDriver;\n}\n\nexport async function initDriverKit(\n pl: PlClient,\n workdir: string,\n frontendDownloadPath: string,\n _ops: DriverKitOpsConstructor,\n): Promise<MiddleLayerDriverKit> {\n const ops: DriverKitOps = {\n ...DefaultDriverKitOpsSettings,\n ...DefaultDriverKitOpsPaths(workdir),\n ..._ops,\n };\n\n const signer = new HmacSha256Signer(ops.localSecret);\n\n const downloadClient = createDownloadClient(ops.logger, pl, ops.localProjections);\n const logsClient = createLogsClient(pl, ops.logger);\n const uploadBlobClient = createUploadBlobClient(pl, ops.logger);\n const uploadProgressClient = createUploadProgressClient(pl, ops.logger);\n\n const blobDriver = await DownloadDriver.init(\n ops.logger,\n downloadClient,\n logsClient,\n ops.blobDownloadPath,\n ops.blobDownloadRangesCachePath,\n signer,\n ops.blobDriverOps,\n );\n\n const blobToURLDriver = new DownloadBlobToURLDriver(\n ops.logger,\n signer,\n downloadClient,\n ops.downloadBlobToURLPath,\n ops.downloadBlobToURLDriverOps,\n );\n\n const uploadDriver = new UploadDriver(\n ops.logger,\n signer,\n uploadBlobClient,\n uploadProgressClient,\n ops.uploadDriverOps,\n );\n const logsStreamDriver = new LogsStreamDriver(ops.logger, logsClient, ops.logStreamDriverOps);\n const logDriver = new LogsDriver(ops.logger, logsStreamDriver, blobDriver);\n const lsDriver = await LsDriver.init(\n ops.logger,\n pl,\n signer,\n ops.localProjections,\n ops.openFileDialogCallback,\n ops.virtualLocalStoragesOverride,\n );\n\n const pFrameDriver = await createPFrameDriver({\n blobDriver,\n logger: ops.logger,\n spillPath: ops.pframesSpillPath,\n options: ops.pFrameDriverOps,\n });\n\n const frontendDownloadDriver = new DownloadUrlDriver(\n ops.logger,\n pl.httpDispatcher,\n frontendDownloadPath,\n signer,\n ops.frontendDownloadDriverOps,\n );\n\n const driverKit = {\n blobDriver,\n blobToURLDriver: blobToURLDriver,\n logDriver,\n lsDriver,\n signer,\n uploadDriver,\n pFrameDriver,\n frontendDriver: frontendDownloadDriver,\n };\n\n const dispose = async () => {\n const disposePromises = Object.values(driverKit).flatMap((driver) =>\n isAsyncDisposable(driver) ? [driver[Symbol.asyncDispose]] : [],\n );\n await Promise.all(disposePromises);\n };\n\n return {\n ...driverKit,\n dispose,\n [Symbol.asyncDispose]: dispose,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ function frontendUrlComputable(entry, env) {
36
36
  postprocessValue: (v) => {
37
37
  if (v === undefined)
38
38
  return undefined;
39
- if (typeof v === 'string')
39
+ if (typeof v === "string")
40
40
  return v;
41
41
  if (v.error !== undefined)
42
42
  throw new Error(v.error);
@@ -50,15 +50,15 @@ function frontendData(projectEntry, id, env) {
50
50
  const bp = util.getBlockPackInfo(prj, id);
51
51
  const frontendEntry = prj
52
52
  .traverse({
53
- field: project_model.projectFieldName(id, 'blockPack'),
54
- assertFieldType: 'Dynamic',
55
- }, { field: plClient.Pl.HolderRefField, assertFieldType: 'Input', errorIfFieldNotFound: true }, { field: block_pack.BlockPackFrontendField, assertFieldType: 'Input' })
53
+ field: project_model.projectFieldName(id, "blockPack"),
54
+ assertFieldType: "Dynamic",
55
+ }, { field: plClient.Pl.HolderRefField, assertFieldType: "Input", errorIfFieldNotFound: true }, { field: block_pack.BlockPackFrontendField, assertFieldType: "Input" })
56
56
  ?.persist();
57
57
  return {
58
58
  url: frontendUrlComputable(frontendEntry, env),
59
59
  sdkVersion: bp?.cfg.sdkVersion,
60
60
  };
61
- }, { mode: 'StableOnlyLive' });
61
+ }, { mode: "StableOnlyLive" });
62
62
  }
63
63
 
64
64
  exports.frontendData = frontendData;