@milaboratories/pl-middle-layer 1.42.2 → 1.42.3

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 (410) hide show
  1. package/dist/block_registry/index.d.ts +0 -1
  2. package/dist/block_registry/registry-v2-provider.cjs +22 -0
  3. package/dist/block_registry/registry-v2-provider.cjs.map +1 -0
  4. package/dist/block_registry/registry-v2-provider.d.ts +0 -1
  5. package/dist/block_registry/registry-v2-provider.js +20 -0
  6. package/dist/block_registry/registry-v2-provider.js.map +1 -0
  7. package/dist/block_registry/registry.cjs +231 -0
  8. package/dist/block_registry/registry.cjs.map +1 -0
  9. package/dist/block_registry/registry.d.ts +0 -1
  10. package/dist/block_registry/registry.js +227 -0
  11. package/dist/block_registry/registry.js.map +1 -0
  12. package/dist/block_registry/registry.test.d.ts +0 -1
  13. package/dist/block_registry/watcher.cjs +174 -0
  14. package/dist/block_registry/watcher.cjs.map +1 -0
  15. package/dist/block_registry/watcher.d.ts +0 -1
  16. package/dist/block_registry/watcher.js +171 -0
  17. package/dist/block_registry/watcher.js.map +1 -0
  18. package/dist/block_registry/well_known_registries.cjs +19 -0
  19. package/dist/block_registry/well_known_registries.cjs.map +1 -0
  20. package/dist/block_registry/well_known_registries.d.ts +0 -1
  21. package/dist/block_registry/well_known_registries.js +15 -0
  22. package/dist/block_registry/well_known_registries.js.map +1 -0
  23. package/dist/cfg_render/executor.cjs +159 -0
  24. package/dist/cfg_render/executor.cjs.map +1 -0
  25. package/dist/cfg_render/executor.d.ts +0 -1
  26. package/dist/cfg_render/executor.js +156 -0
  27. package/dist/cfg_render/executor.js.map +1 -0
  28. package/dist/cfg_render/executor.test.d.ts +0 -1
  29. package/dist/cfg_render/operation.d.ts +0 -1
  30. package/dist/cfg_render/renderer.cjs +528 -0
  31. package/dist/cfg_render/renderer.cjs.map +1 -0
  32. package/dist/cfg_render/renderer.d.ts +0 -1
  33. package/dist/cfg_render/renderer.js +525 -0
  34. package/dist/cfg_render/renderer.js.map +1 -0
  35. package/dist/cfg_render/traverse.cjs +65 -0
  36. package/dist/cfg_render/traverse.cjs.map +1 -0
  37. package/dist/cfg_render/traverse.d.ts +0 -1
  38. package/dist/cfg_render/traverse.js +63 -0
  39. package/dist/cfg_render/traverse.js.map +1 -0
  40. package/dist/cfg_render/util.cjs +32 -0
  41. package/dist/cfg_render/util.cjs.map +1 -0
  42. package/dist/cfg_render/util.d.ts +0 -1
  43. package/dist/cfg_render/util.js +28 -0
  44. package/dist/cfg_render/util.js.map +1 -0
  45. package/dist/debug/index.cjs +21 -0
  46. package/dist/debug/index.cjs.map +1 -0
  47. package/dist/debug/index.d.ts +0 -1
  48. package/dist/debug/index.js +19 -0
  49. package/dist/debug/index.js.map +1 -0
  50. package/dist/dev_env/index.cjs +59 -0
  51. package/dist/dev_env/index.cjs.map +1 -0
  52. package/dist/dev_env/index.d.ts +0 -1
  53. package/dist/dev_env/index.js +48 -0
  54. package/dist/dev_env/index.js.map +1 -0
  55. package/dist/dev_env/util.cjs +37 -0
  56. package/dist/dev_env/util.cjs.map +1 -0
  57. package/dist/dev_env/util.d.ts +0 -1
  58. package/dist/dev_env/util.js +16 -0
  59. package/dist/dev_env/util.js.map +1 -0
  60. package/dist/index.cjs +74 -0
  61. package/dist/index.cjs.map +1 -0
  62. package/dist/index.d.ts +0 -1
  63. package/dist/index.js +15 -75
  64. package/dist/index.js.map +1 -1
  65. package/dist/js_render/computable_context.cjs +525 -0
  66. package/dist/js_render/computable_context.cjs.map +1 -0
  67. package/dist/js_render/computable_context.d.ts +0 -1
  68. package/dist/js_render/computable_context.js +523 -0
  69. package/dist/js_render/computable_context.js.map +1 -0
  70. package/dist/js_render/context.cjs +229 -0
  71. package/dist/js_render/context.cjs.map +1 -0
  72. package/dist/js_render/context.d.ts +0 -1
  73. package/dist/js_render/context.js +226 -0
  74. package/dist/js_render/context.js.map +1 -0
  75. package/dist/js_render/index.cjs +163 -0
  76. package/dist/js_render/index.cjs.map +1 -0
  77. package/dist/js_render/index.d.ts +0 -1
  78. package/dist/js_render/index.js +160 -0
  79. package/dist/js_render/index.js.map +1 -0
  80. package/dist/middle_layer/active_cfg.cjs +37 -0
  81. package/dist/middle_layer/active_cfg.cjs.map +1 -0
  82. package/dist/middle_layer/active_cfg.d.ts +0 -1
  83. package/dist/middle_layer/active_cfg.js +35 -0
  84. package/dist/middle_layer/active_cfg.js.map +1 -0
  85. package/dist/middle_layer/block.cjs +51 -0
  86. package/dist/middle_layer/block.cjs.map +1 -0
  87. package/dist/middle_layer/block.d.ts +0 -1
  88. package/dist/middle_layer/block.js +48 -0
  89. package/dist/middle_layer/block.js.map +1 -0
  90. package/dist/middle_layer/block_ctx.cjs +87 -0
  91. package/dist/middle_layer/block_ctx.cjs.map +1 -0
  92. package/dist/middle_layer/block_ctx.d.ts +0 -1
  93. package/dist/middle_layer/block_ctx.js +84 -0
  94. package/dist/middle_layer/block_ctx.js.map +1 -0
  95. package/dist/middle_layer/block_ctx_unsafe.cjs +19 -0
  96. package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -0
  97. package/dist/middle_layer/block_ctx_unsafe.d.ts +0 -1
  98. package/dist/middle_layer/block_ctx_unsafe.js +16 -0
  99. package/dist/middle_layer/block_ctx_unsafe.js.map +1 -0
  100. package/dist/middle_layer/driver_kit.cjs +42 -0
  101. package/dist/middle_layer/driver_kit.cjs.map +1 -0
  102. package/dist/middle_layer/driver_kit.d.ts +0 -1
  103. package/dist/middle_layer/driver_kit.js +40 -0
  104. package/dist/middle_layer/driver_kit.js.map +1 -0
  105. package/dist/middle_layer/frontend_path.cjs +64 -0
  106. package/dist/middle_layer/frontend_path.cjs.map +1 -0
  107. package/dist/middle_layer/frontend_path.d.ts +0 -1
  108. package/dist/middle_layer/frontend_path.js +62 -0
  109. package/dist/middle_layer/frontend_path.js.map +1 -0
  110. package/dist/middle_layer/index.d.ts +0 -1
  111. package/dist/middle_layer/middle_layer.cjs +226 -0
  112. package/dist/middle_layer/middle_layer.cjs.map +1 -0
  113. package/dist/middle_layer/middle_layer.d.ts +0 -1
  114. package/dist/middle_layer/middle_layer.js +224 -0
  115. package/dist/middle_layer/middle_layer.js.map +1 -0
  116. package/dist/middle_layer/navigation_states.cjs +41 -0
  117. package/dist/middle_layer/navigation_states.cjs.map +1 -0
  118. package/dist/middle_layer/navigation_states.d.ts +0 -1
  119. package/dist/middle_layer/navigation_states.js +39 -0
  120. package/dist/middle_layer/navigation_states.js.map +1 -0
  121. package/dist/middle_layer/ops.cjs +75 -0
  122. package/dist/middle_layer/ops.cjs.map +1 -0
  123. package/dist/middle_layer/ops.d.ts +0 -1
  124. package/dist/middle_layer/ops.js +70 -0
  125. package/dist/middle_layer/ops.js.map +1 -0
  126. package/dist/middle_layer/project.cjs +446 -0
  127. package/dist/middle_layer/project.cjs.map +1 -0
  128. package/dist/middle_layer/project.d.ts +0 -1
  129. package/dist/middle_layer/project.js +444 -0
  130. package/dist/middle_layer/project.js.map +1 -0
  131. package/dist/middle_layer/project_list.cjs +53 -0
  132. package/dist/middle_layer/project_list.cjs.map +1 -0
  133. package/dist/middle_layer/project_list.d.ts +0 -1
  134. package/dist/middle_layer/project_list.js +48 -0
  135. package/dist/middle_layer/project_list.js.map +1 -0
  136. package/dist/middle_layer/project_overview.cjs +225 -0
  137. package/dist/middle_layer/project_overview.cjs.map +1 -0
  138. package/dist/middle_layer/project_overview.d.ts +0 -1
  139. package/dist/middle_layer/project_overview.js +204 -0
  140. package/dist/middle_layer/project_overview.js.map +1 -0
  141. package/dist/middle_layer/project_overview_light.cjs +20 -0
  142. package/dist/middle_layer/project_overview_light.cjs.map +1 -0
  143. package/dist/middle_layer/project_overview_light.d.ts +0 -1
  144. package/dist/middle_layer/project_overview_light.js +18 -0
  145. package/dist/middle_layer/project_overview_light.js.map +1 -0
  146. package/dist/middle_layer/render.cjs +26 -0
  147. package/dist/middle_layer/render.cjs.map +1 -0
  148. package/dist/middle_layer/render.d.ts +0 -1
  149. package/dist/middle_layer/render.js +23 -0
  150. package/dist/middle_layer/render.js.map +1 -0
  151. package/dist/middle_layer/render.test.d.ts +0 -1
  152. package/dist/middle_layer/types.d.ts +0 -1
  153. package/dist/middle_layer/util.cjs +22 -0
  154. package/dist/middle_layer/util.cjs.map +1 -0
  155. package/dist/middle_layer/util.d.ts +0 -1
  156. package/dist/middle_layer/util.js +20 -0
  157. package/dist/middle_layer/util.js.map +1 -0
  158. package/dist/model/args.cjs +62 -0
  159. package/dist/model/args.cjs.map +1 -0
  160. package/dist/model/args.d.ts +0 -1
  161. package/dist/model/args.js +58 -0
  162. package/dist/model/args.js.map +1 -0
  163. package/dist/model/block_pack.d.ts +0 -1
  164. package/dist/model/block_pack_spec.cjs +11 -0
  165. package/dist/model/block_pack_spec.cjs.map +1 -0
  166. package/dist/model/block_pack_spec.d.ts +0 -1
  167. package/dist/model/block_pack_spec.js +8 -0
  168. package/dist/model/block_pack_spec.js.map +1 -0
  169. package/dist/model/frontend.d.ts +0 -1
  170. package/dist/model/index.d.ts +0 -1
  171. package/dist/model/project_helper.cjs +36 -0
  172. package/dist/model/project_helper.cjs.map +1 -0
  173. package/dist/model/project_helper.d.ts +0 -1
  174. package/dist/model/project_helper.js +34 -0
  175. package/dist/model/project_helper.js.map +1 -0
  176. package/dist/model/project_model.cjs +74 -0
  177. package/dist/model/project_model.cjs.map +1 -0
  178. package/dist/model/project_model.d.ts +0 -1
  179. package/dist/model/project_model.js +54 -0
  180. package/dist/model/project_model.js.map +1 -0
  181. package/dist/model/project_model.test.d.ts +0 -1
  182. package/dist/model/project_model_util.cjs +176 -0
  183. package/dist/model/project_model_util.cjs.map +1 -0
  184. package/dist/model/project_model_util.d.ts +0 -1
  185. package/dist/model/project_model_util.js +170 -0
  186. package/dist/model/project_model_util.js.map +1 -0
  187. package/dist/model/project_model_util.test.d.ts +0 -1
  188. package/dist/model/project_model_v1.cjs +9 -0
  189. package/dist/model/project_model_v1.cjs.map +1 -0
  190. package/dist/model/project_model_v1.d.ts +0 -1
  191. package/dist/model/project_model_v1.js +6 -0
  192. package/dist/model/project_model_v1.js.map +1 -0
  193. package/dist/model/template_spec.d.ts +0 -1
  194. package/dist/mutator/block-pack/block_pack.cjs +233 -0
  195. package/dist/mutator/block-pack/block_pack.cjs.map +1 -0
  196. package/dist/mutator/block-pack/block_pack.d.ts +0 -1
  197. package/dist/mutator/block-pack/block_pack.js +227 -0
  198. package/dist/mutator/block-pack/block_pack.js.map +1 -0
  199. package/dist/mutator/block-pack/block_pack.test.d.ts +0 -1
  200. package/dist/mutator/block-pack/frontend.cjs +21 -0
  201. package/dist/mutator/block-pack/frontend.cjs.map +1 -0
  202. package/dist/mutator/block-pack/frontend.d.ts +0 -1
  203. package/dist/mutator/block-pack/frontend.js +19 -0
  204. package/dist/mutator/block-pack/frontend.js.map +1 -0
  205. package/dist/mutator/context_export.cjs +26 -0
  206. package/dist/mutator/context_export.cjs.map +1 -0
  207. package/dist/mutator/context_export.d.ts +2 -3
  208. package/dist/mutator/context_export.js +23 -0
  209. package/dist/mutator/context_export.js.map +1 -0
  210. package/dist/mutator/migration.cjs +57 -0
  211. package/dist/mutator/migration.cjs.map +1 -0
  212. package/dist/mutator/migration.d.ts +0 -1
  213. package/dist/mutator/migration.js +55 -0
  214. package/dist/mutator/migration.js.map +1 -0
  215. package/dist/mutator/project.cjs +997 -0
  216. package/dist/mutator/project.cjs.map +1 -0
  217. package/dist/mutator/project.d.ts +0 -1
  218. package/dist/mutator/project.js +992 -0
  219. package/dist/mutator/project.js.map +1 -0
  220. package/dist/mutator/project.test.d.ts +0 -1
  221. package/dist/mutator/template/direct_template_loader.cjs +146 -0
  222. package/dist/mutator/template/direct_template_loader.cjs.map +1 -0
  223. package/dist/mutator/template/direct_template_loader.d.ts +0 -1
  224. package/dist/mutator/template/direct_template_loader.js +143 -0
  225. package/dist/mutator/template/direct_template_loader.js.map +1 -0
  226. package/dist/mutator/template/direct_template_loader_v3.cjs +139 -0
  227. package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -0
  228. package/dist/mutator/template/direct_template_loader_v3.d.ts +0 -1
  229. package/dist/mutator/template/direct_template_loader_v3.js +137 -0
  230. package/dist/mutator/template/direct_template_loader_v3.js.map +1 -0
  231. package/dist/mutator/template/render_block.cjs +43 -0
  232. package/dist/mutator/template/render_block.cjs.map +1 -0
  233. package/dist/mutator/template/render_block.d.ts +0 -1
  234. package/dist/mutator/template/render_block.js +34 -0
  235. package/dist/mutator/template/render_block.js.map +1 -0
  236. package/dist/mutator/template/render_template.cjs +35 -0
  237. package/dist/mutator/template/render_template.cjs.map +1 -0
  238. package/dist/mutator/template/render_template.d.ts +0 -1
  239. package/dist/mutator/template/render_template.js +33 -0
  240. package/dist/mutator/template/render_template.js.map +1 -0
  241. package/dist/mutator/template/template_loading.cjs +71 -0
  242. package/dist/mutator/template/template_loading.cjs.map +1 -0
  243. package/dist/mutator/template/template_loading.d.ts +0 -1
  244. package/dist/mutator/template/template_loading.js +60 -0
  245. package/dist/mutator/template/template_loading.js.map +1 -0
  246. package/dist/mutator/template/template_render.test.d.ts +0 -1
  247. package/dist/network_check/network_check.cjs +267 -0
  248. package/dist/network_check/network_check.cjs.map +1 -0
  249. package/dist/network_check/network_check.d.ts +0 -1
  250. package/dist/network_check/network_check.js +264 -0
  251. package/dist/network_check/network_check.js.map +1 -0
  252. package/dist/network_check/network_check.test.d.ts +0 -1
  253. package/dist/network_check/pings.cjs +107 -0
  254. package/dist/network_check/pings.cjs.map +1 -0
  255. package/dist/network_check/pings.d.ts +0 -1
  256. package/dist/network_check/pings.js +96 -0
  257. package/dist/network_check/pings.js.map +1 -0
  258. package/dist/network_check/template.cjs +318 -0
  259. package/dist/network_check/template.cjs.map +1 -0
  260. package/dist/network_check/template.d.ts +0 -1
  261. package/dist/network_check/template.js +302 -0
  262. package/dist/network_check/template.js.map +1 -0
  263. package/dist/network_check/template.test.d.ts +0 -1
  264. package/dist/network_check/test_utils.d.ts +0 -1
  265. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.cjs +77 -0
  266. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.cjs.map +1 -0
  267. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.js +74 -0
  268. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.js.map +1 -0
  269. package/dist/pool/data.cjs +298 -0
  270. package/dist/pool/data.cjs.map +1 -0
  271. package/dist/pool/data.d.ts +7 -9
  272. package/dist/pool/data.js +282 -0
  273. package/dist/pool/data.js.map +1 -0
  274. package/dist/pool/driver.cjs +620 -0
  275. package/dist/pool/driver.cjs.map +1 -0
  276. package/dist/pool/driver.d.ts +0 -1
  277. package/dist/pool/driver.js +598 -0
  278. package/dist/pool/driver.js.map +1 -0
  279. package/dist/pool/index.d.ts +0 -1
  280. package/dist/pool/p_object_collection.cjs +87 -0
  281. package/dist/pool/p_object_collection.cjs.map +1 -0
  282. package/dist/pool/p_object_collection.d.ts +0 -1
  283. package/dist/pool/p_object_collection.js +84 -0
  284. package/dist/pool/p_object_collection.js.map +1 -0
  285. package/dist/pool/ref_count_pool.cjs +58 -0
  286. package/dist/pool/ref_count_pool.cjs.map +1 -0
  287. package/dist/pool/ref_count_pool.d.ts +0 -1
  288. package/dist/pool/ref_count_pool.js +56 -0
  289. package/dist/pool/ref_count_pool.js.map +1 -0
  290. package/dist/pool/result_pool.cjs +265 -0
  291. package/dist/pool/result_pool.cjs.map +1 -0
  292. package/dist/pool/result_pool.d.ts +0 -1
  293. package/dist/pool/result_pool.js +263 -0
  294. package/dist/pool/result_pool.js.map +1 -0
  295. package/dist/test/block_packs.d.ts +0 -1
  296. package/dist/test/explicit_templates.d.ts +0 -1
  297. package/dist/test/known_templates.d.ts +0 -1
  298. package/dist/test_env.d.ts +0 -1
  299. package/dist/worker/WorkerManager.cjs +53 -0
  300. package/dist/worker/WorkerManager.cjs.map +1 -0
  301. package/dist/worker/WorkerManager.d.ts +0 -1
  302. package/dist/worker/WorkerManager.js +51 -0
  303. package/dist/worker/WorkerManager.js.map +1 -0
  304. package/dist/worker/worker.cjs +16 -0
  305. package/dist/worker/worker.cjs.map +1 -0
  306. package/dist/worker/worker.d.ts +0 -1
  307. package/dist/worker/worker.js +14 -0
  308. package/dist/worker/worker.js.map +1 -0
  309. package/dist/worker/workerApi.cjs +20 -0
  310. package/dist/worker/workerApi.cjs.map +1 -0
  311. package/dist/worker/workerApi.d.ts +1 -3
  312. package/dist/worker/workerApi.js +18 -0
  313. package/dist/worker/workerApi.js.map +1 -0
  314. package/package.json +26 -34
  315. package/src/cfg_render/executor.test.ts +5 -4
  316. package/src/model/project_model.test.ts +3 -3
  317. package/src/model/project_model_util.test.ts +3 -2
  318. package/src/mutator/block-pack/block_pack.test.ts +5 -4
  319. package/src/mutator/project.test.ts +4 -4
  320. package/src/mutator/template/template_render.test.ts +7 -6
  321. package/src/network_check/network_check.test.ts +1 -0
  322. package/src/network_check/test_utils.ts +2 -0
  323. package/src/worker/WorkerManager.ts +6 -8
  324. package/dist/block_registry/index.d.ts.map +0 -1
  325. package/dist/block_registry/registry-v2-provider.d.ts.map +0 -1
  326. package/dist/block_registry/registry.d.ts.map +0 -1
  327. package/dist/block_registry/registry.test.d.ts.map +0 -1
  328. package/dist/block_registry/watcher.d.ts.map +0 -1
  329. package/dist/block_registry/well_known_registries.d.ts.map +0 -1
  330. package/dist/cfg_render/executor.d.ts.map +0 -1
  331. package/dist/cfg_render/executor.test.d.ts.map +0 -1
  332. package/dist/cfg_render/operation.d.ts.map +0 -1
  333. package/dist/cfg_render/renderer.d.ts.map +0 -1
  334. package/dist/cfg_render/traverse.d.ts.map +0 -1
  335. package/dist/cfg_render/util.d.ts.map +0 -1
  336. package/dist/debug/index.d.ts.map +0 -1
  337. package/dist/dev_env/index.d.ts.map +0 -1
  338. package/dist/dev_env/util.d.ts.map +0 -1
  339. package/dist/index.d.ts.map +0 -1
  340. package/dist/index.mjs +0 -6742
  341. package/dist/index.mjs.map +0 -1
  342. package/dist/js_render/computable_context.d.ts.map +0 -1
  343. package/dist/js_render/context.d.ts.map +0 -1
  344. package/dist/js_render/index.d.ts.map +0 -1
  345. package/dist/middle_layer/active_cfg.d.ts.map +0 -1
  346. package/dist/middle_layer/block.d.ts.map +0 -1
  347. package/dist/middle_layer/block_ctx.d.ts.map +0 -1
  348. package/dist/middle_layer/block_ctx_unsafe.d.ts.map +0 -1
  349. package/dist/middle_layer/driver_kit.d.ts.map +0 -1
  350. package/dist/middle_layer/frontend_path.d.ts.map +0 -1
  351. package/dist/middle_layer/index.d.ts.map +0 -1
  352. package/dist/middle_layer/middle_layer.d.ts.map +0 -1
  353. package/dist/middle_layer/navigation_states.d.ts.map +0 -1
  354. package/dist/middle_layer/ops.d.ts.map +0 -1
  355. package/dist/middle_layer/project.d.ts.map +0 -1
  356. package/dist/middle_layer/project_list.d.ts.map +0 -1
  357. package/dist/middle_layer/project_overview.d.ts.map +0 -1
  358. package/dist/middle_layer/project_overview_light.d.ts.map +0 -1
  359. package/dist/middle_layer/render.d.ts.map +0 -1
  360. package/dist/middle_layer/render.test.d.ts.map +0 -1
  361. package/dist/middle_layer/types.d.ts.map +0 -1
  362. package/dist/middle_layer/util.d.ts.map +0 -1
  363. package/dist/model/args.d.ts.map +0 -1
  364. package/dist/model/block_pack.d.ts.map +0 -1
  365. package/dist/model/block_pack_spec.d.ts.map +0 -1
  366. package/dist/model/frontend.d.ts.map +0 -1
  367. package/dist/model/index.d.ts.map +0 -1
  368. package/dist/model/project_helper.d.ts.map +0 -1
  369. package/dist/model/project_model.d.ts.map +0 -1
  370. package/dist/model/project_model.test.d.ts.map +0 -1
  371. package/dist/model/project_model_util.d.ts.map +0 -1
  372. package/dist/model/project_model_util.test.d.ts.map +0 -1
  373. package/dist/model/project_model_v1.d.ts.map +0 -1
  374. package/dist/model/template_spec.d.ts.map +0 -1
  375. package/dist/mutator/block-pack/block_pack.d.ts.map +0 -1
  376. package/dist/mutator/block-pack/block_pack.test.d.ts.map +0 -1
  377. package/dist/mutator/block-pack/frontend.d.ts.map +0 -1
  378. package/dist/mutator/context_export.d.ts.map +0 -1
  379. package/dist/mutator/migration.d.ts.map +0 -1
  380. package/dist/mutator/project.d.ts.map +0 -1
  381. package/dist/mutator/project.test.d.ts.map +0 -1
  382. package/dist/mutator/template/direct_template_loader.d.ts.map +0 -1
  383. package/dist/mutator/template/direct_template_loader_v3.d.ts.map +0 -1
  384. package/dist/mutator/template/render_block.d.ts.map +0 -1
  385. package/dist/mutator/template/render_template.d.ts.map +0 -1
  386. package/dist/mutator/template/template_loading.d.ts.map +0 -1
  387. package/dist/mutator/template/template_render.test.d.ts.map +0 -1
  388. package/dist/network_check/network_check.d.ts.map +0 -1
  389. package/dist/network_check/network_check.test.d.ts.map +0 -1
  390. package/dist/network_check/pings.d.ts.map +0 -1
  391. package/dist/network_check/template.d.ts.map +0 -1
  392. package/dist/network_check/template.test.d.ts.map +0 -1
  393. package/dist/network_check/test_utils.d.ts.map +0 -1
  394. package/dist/pool/data.d.ts.map +0 -1
  395. package/dist/pool/driver.d.ts.map +0 -1
  396. package/dist/pool/index.d.ts.map +0 -1
  397. package/dist/pool/p_object_collection.d.ts.map +0 -1
  398. package/dist/pool/ref_count_pool.d.ts.map +0 -1
  399. package/dist/pool/result_pool.d.ts.map +0 -1
  400. package/dist/test/block_packs.d.ts.map +0 -1
  401. package/dist/test/explicit_templates.d.ts.map +0 -1
  402. package/dist/test/known_templates.d.ts.map +0 -1
  403. package/dist/test_env.d.ts.map +0 -1
  404. package/dist/worker/WorkerManager.d.ts.map +0 -1
  405. package/dist/worker/worker.d.ts.map +0 -1
  406. package/dist/worker/workerApi.d.ts.map +0 -1
  407. package/dist/worker.js +0 -2
  408. package/dist/worker.js.map +0 -1
  409. package/dist/worker.mjs +0 -20
  410. package/dist/worker.mjs.map +0 -1
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var plTree = require('@milaboratories/pl-tree');
4
+ var plClient = require('@milaboratories/pl-client');
5
+ var computable = require('@milaboratories/computable');
6
+ var project_model = require('../model/project_model.cjs');
7
+ var tsHelpers = require('@milaboratories/ts-helpers');
8
+
9
+ const ProjectsField = 'projects';
10
+ const ProjectsResourceType = { name: 'Projects', version: '1' };
11
+ const ProjectsListTreePruningFunction = (resource) => {
12
+ if (!plClient.resourceTypesEqual(resource.type, ProjectsResourceType))
13
+ return [];
14
+ return resource.fields;
15
+ };
16
+ async function createProjectList(pl, rid, openedProjects, env) {
17
+ const tree = await plTree.SynchronizedTreeState.init(pl, rid, {
18
+ ...env.ops.defaultTreeOptions,
19
+ pruning: ProjectsListTreePruningFunction,
20
+ }, env.logger);
21
+ const c = computable.Computable.make((ctx) => {
22
+ const node = ctx.accessor(tree.entry()).node();
23
+ const oProjects = openedProjects.getValue(ctx);
24
+ if (node === undefined)
25
+ return undefined;
26
+ const result = [];
27
+ for (const field of node.listDynamicFields()) {
28
+ const prj = node.traverse(field);
29
+ if (prj === undefined)
30
+ continue;
31
+ const meta = tsHelpers.notEmpty(prj.getKeyValueAsJson(project_model.ProjectMetaKey));
32
+ const created = tsHelpers.notEmpty(prj.getKeyValueAsJson(project_model.ProjectCreatedTimestamp));
33
+ const lastModified = tsHelpers.notEmpty(prj.getKeyValueAsJson(project_model.ProjectLastModifiedTimestamp));
34
+ result.push({
35
+ id: field,
36
+ rid: prj.id,
37
+ created: new Date(created),
38
+ lastModified: new Date(lastModified),
39
+ opened: oProjects.indexOf(prj.id) >= 0,
40
+ meta,
41
+ });
42
+ }
43
+ result.sort((p) => -p.lastModified.valueOf());
44
+ return result;
45
+ }).withStableType();
46
+ return { computable: c, tree };
47
+ }
48
+
49
+ exports.ProjectsField = ProjectsField;
50
+ exports.ProjectsListTreePruningFunction = ProjectsListTreePruningFunction;
51
+ exports.ProjectsResourceType = ProjectsResourceType;
52
+ exports.createProjectList = createProjectList;
53
+ //# sourceMappingURL=project_list.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_list.cjs","sources":["../../src/middle_layer/project_list.ts"],"sourcesContent":["import type { PruningFunction } from '@milaboratories/pl-tree';\nimport { SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport type { PlClient, ResourceId, ResourceType } from '@milaboratories/pl-client';\nimport { resourceTypesEqual } from '@milaboratories/pl-client';\nimport type { TreeAndComputableU } from './types';\nimport type { WatchableValue } from '@milaboratories/computable';\nimport { Computable } from '@milaboratories/computable';\nimport type {\n ProjectListEntry } from '../model/project_model';\nimport {\n ProjectCreatedTimestamp,\n ProjectLastModifiedTimestamp,\n ProjectMetaKey,\n} from '../model/project_model';\nimport type { MiddleLayerEnvironment } from './middle_layer';\nimport { notEmpty } from '@milaboratories/ts-helpers';\nimport type { ProjectMeta } from '@milaboratories/pl-model-middle-layer';\n\nexport const ProjectsField = 'projects';\nexport const ProjectsResourceType: ResourceType = { name: 'Projects', version: '1' };\n\nexport const ProjectsListTreePruningFunction: PruningFunction = (resource) => {\n if (!resourceTypesEqual(resource.type, ProjectsResourceType)) return [];\n return resource.fields;\n};\n\nexport async function createProjectList(\n pl: PlClient,\n rid: ResourceId,\n openedProjects: WatchableValue<ResourceId[]>,\n env: MiddleLayerEnvironment,\n): Promise<TreeAndComputableU<ProjectListEntry[]>> {\n const tree = await SynchronizedTreeState.init(\n pl,\n rid,\n {\n ...env.ops.defaultTreeOptions,\n pruning: ProjectsListTreePruningFunction,\n },\n env.logger,\n );\n\n const c = Computable.make((ctx) => {\n const node = ctx.accessor(tree.entry()).node();\n const oProjects = openedProjects.getValue(ctx);\n if (node === undefined) return undefined;\n const result: ProjectListEntry[] = [];\n for (const field of node.listDynamicFields()) {\n const prj = node.traverse(field);\n if (prj === undefined) continue;\n const meta = notEmpty(prj.getKeyValueAsJson<ProjectMeta>(ProjectMetaKey));\n const created = notEmpty(prj.getKeyValueAsJson<number>(ProjectCreatedTimestamp));\n const lastModified = notEmpty(prj.getKeyValueAsJson<number>(ProjectLastModifiedTimestamp));\n result.push({\n id: field,\n rid: prj.id,\n created: new Date(created),\n lastModified: new Date(lastModified),\n opened: oProjects.indexOf(prj.id) >= 0,\n meta,\n });\n }\n result.sort((p) => -p.lastModified.valueOf());\n return result;\n }).withStableType();\n\n return { computable: c, tree };\n}\n"],"names":["resourceTypesEqual","SynchronizedTreeState","Computable","notEmpty","ProjectMetaKey","ProjectCreatedTimestamp","ProjectLastModifiedTimestamp"],"mappings":";;;;;;;;AAkBO,MAAM,aAAa,GAAG;AACtB,MAAM,oBAAoB,GAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG;AAE3E,MAAM,+BAA+B,GAAoB,CAAC,QAAQ,KAAI;IAC3E,IAAI,CAACA,2BAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;AAAE,QAAA,OAAO,EAAE;IACvE,OAAO,QAAQ,CAAC,MAAM;AACxB;AAEO,eAAe,iBAAiB,CACrC,EAAY,EACZ,GAAe,EACf,cAA4C,EAC5C,GAA2B,EAAA;IAE3B,MAAM,IAAI,GAAG,MAAMC,4BAAqB,CAAC,IAAI,CAC3C,EAAE,EACF,GAAG,EACH;AACE,QAAA,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB;AAC7B,QAAA,OAAO,EAAE,+BAA+B;AACzC,KAAA,EACD,GAAG,CAAC,MAAM,CACX;IAED,MAAM,CAAC,GAAGC,qBAAU,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AAChC,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;QAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9C,IAAI,IAAI,KAAK,SAAS;AAAE,YAAA,OAAO,SAAS;QACxC,MAAM,MAAM,GAAuB,EAAE;QACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,IAAI,GAAG,KAAK,SAAS;gBAAE;YACvB,MAAM,IAAI,GAAGC,kBAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAcC,4BAAc,CAAC,CAAC;YACzE,MAAM,OAAO,GAAGD,kBAAQ,CAAC,GAAG,CAAC,iBAAiB,CAASE,qCAAuB,CAAC,CAAC;YAChF,MAAM,YAAY,GAAGF,kBAAQ,CAAC,GAAG,CAAC,iBAAiB,CAASG,0CAA4B,CAAC,CAAC;YAC1F,MAAM,CAAC,IAAI,CAAC;AACV,gBAAA,EAAE,EAAE,KAAK;gBACT,GAAG,EAAE,GAAG,CAAC,EAAE;AACX,gBAAA,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC;AAC1B,gBAAA,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;gBACpC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;gBACtC,IAAI;AACL,aAAA,CAAC;QACJ;AACA,QAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC7C,QAAA,OAAO,MAAM;AACf,IAAA,CAAC,CAAC,CAAC,cAAc,EAAE;AAEnB,IAAA,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE;AAChC;;;;;;;"}
@@ -8,4 +8,3 @@ export declare const ProjectsField = "projects";
8
8
  export declare const ProjectsResourceType: ResourceType;
9
9
  export declare const ProjectsListTreePruningFunction: PruningFunction;
10
10
  export declare function createProjectList(pl: PlClient, rid: ResourceId, openedProjects: WatchableValue<ResourceId[]>, env: MiddleLayerEnvironment): Promise<TreeAndComputableU<ProjectListEntry[]>>;
11
- //# sourceMappingURL=project_list.d.ts.map
@@ -0,0 +1,48 @@
1
+ import { SynchronizedTreeState } from '@milaboratories/pl-tree';
2
+ import { resourceTypesEqual } from '@milaboratories/pl-client';
3
+ import { Computable } from '@milaboratories/computable';
4
+ import { ProjectMetaKey, ProjectCreatedTimestamp, ProjectLastModifiedTimestamp } from '../model/project_model.js';
5
+ import { notEmpty } from '@milaboratories/ts-helpers';
6
+
7
+ const ProjectsField = 'projects';
8
+ const ProjectsResourceType = { name: 'Projects', version: '1' };
9
+ const ProjectsListTreePruningFunction = (resource) => {
10
+ if (!resourceTypesEqual(resource.type, ProjectsResourceType))
11
+ return [];
12
+ return resource.fields;
13
+ };
14
+ async function createProjectList(pl, rid, openedProjects, env) {
15
+ const tree = await SynchronizedTreeState.init(pl, rid, {
16
+ ...env.ops.defaultTreeOptions,
17
+ pruning: ProjectsListTreePruningFunction,
18
+ }, env.logger);
19
+ const c = Computable.make((ctx) => {
20
+ const node = ctx.accessor(tree.entry()).node();
21
+ const oProjects = openedProjects.getValue(ctx);
22
+ if (node === undefined)
23
+ return undefined;
24
+ const result = [];
25
+ for (const field of node.listDynamicFields()) {
26
+ const prj = node.traverse(field);
27
+ if (prj === undefined)
28
+ continue;
29
+ const meta = notEmpty(prj.getKeyValueAsJson(ProjectMetaKey));
30
+ const created = notEmpty(prj.getKeyValueAsJson(ProjectCreatedTimestamp));
31
+ const lastModified = notEmpty(prj.getKeyValueAsJson(ProjectLastModifiedTimestamp));
32
+ result.push({
33
+ id: field,
34
+ rid: prj.id,
35
+ created: new Date(created),
36
+ lastModified: new Date(lastModified),
37
+ opened: oProjects.indexOf(prj.id) >= 0,
38
+ meta,
39
+ });
40
+ }
41
+ result.sort((p) => -p.lastModified.valueOf());
42
+ return result;
43
+ }).withStableType();
44
+ return { computable: c, tree };
45
+ }
46
+
47
+ export { ProjectsField, ProjectsListTreePruningFunction, ProjectsResourceType, createProjectList };
48
+ //# sourceMappingURL=project_list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_list.js","sources":["../../src/middle_layer/project_list.ts"],"sourcesContent":["import type { PruningFunction } from '@milaboratories/pl-tree';\nimport { SynchronizedTreeState } from '@milaboratories/pl-tree';\nimport type { PlClient, ResourceId, ResourceType } from '@milaboratories/pl-client';\nimport { resourceTypesEqual } from '@milaboratories/pl-client';\nimport type { TreeAndComputableU } from './types';\nimport type { WatchableValue } from '@milaboratories/computable';\nimport { Computable } from '@milaboratories/computable';\nimport type {\n ProjectListEntry } from '../model/project_model';\nimport {\n ProjectCreatedTimestamp,\n ProjectLastModifiedTimestamp,\n ProjectMetaKey,\n} from '../model/project_model';\nimport type { MiddleLayerEnvironment } from './middle_layer';\nimport { notEmpty } from '@milaboratories/ts-helpers';\nimport type { ProjectMeta } from '@milaboratories/pl-model-middle-layer';\n\nexport const ProjectsField = 'projects';\nexport const ProjectsResourceType: ResourceType = { name: 'Projects', version: '1' };\n\nexport const ProjectsListTreePruningFunction: PruningFunction = (resource) => {\n if (!resourceTypesEqual(resource.type, ProjectsResourceType)) return [];\n return resource.fields;\n};\n\nexport async function createProjectList(\n pl: PlClient,\n rid: ResourceId,\n openedProjects: WatchableValue<ResourceId[]>,\n env: MiddleLayerEnvironment,\n): Promise<TreeAndComputableU<ProjectListEntry[]>> {\n const tree = await SynchronizedTreeState.init(\n pl,\n rid,\n {\n ...env.ops.defaultTreeOptions,\n pruning: ProjectsListTreePruningFunction,\n },\n env.logger,\n );\n\n const c = Computable.make((ctx) => {\n const node = ctx.accessor(tree.entry()).node();\n const oProjects = openedProjects.getValue(ctx);\n if (node === undefined) return undefined;\n const result: ProjectListEntry[] = [];\n for (const field of node.listDynamicFields()) {\n const prj = node.traverse(field);\n if (prj === undefined) continue;\n const meta = notEmpty(prj.getKeyValueAsJson<ProjectMeta>(ProjectMetaKey));\n const created = notEmpty(prj.getKeyValueAsJson<number>(ProjectCreatedTimestamp));\n const lastModified = notEmpty(prj.getKeyValueAsJson<number>(ProjectLastModifiedTimestamp));\n result.push({\n id: field,\n rid: prj.id,\n created: new Date(created),\n lastModified: new Date(lastModified),\n opened: oProjects.indexOf(prj.id) >= 0,\n meta,\n });\n }\n result.sort((p) => -p.lastModified.valueOf());\n return result;\n }).withStableType();\n\n return { computable: c, tree };\n}\n"],"names":[],"mappings":";;;;;;AAkBO,MAAM,aAAa,GAAG;AACtB,MAAM,oBAAoB,GAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG;AAE3E,MAAM,+BAA+B,GAAoB,CAAC,QAAQ,KAAI;IAC3E,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;AAAE,QAAA,OAAO,EAAE;IACvE,OAAO,QAAQ,CAAC,MAAM;AACxB;AAEO,eAAe,iBAAiB,CACrC,EAAY,EACZ,GAAe,EACf,cAA4C,EAC5C,GAA2B,EAAA;IAE3B,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAC3C,EAAE,EACF,GAAG,EACH;AACE,QAAA,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB;AAC7B,QAAA,OAAO,EAAE,+BAA+B;AACzC,KAAA,EACD,GAAG,CAAC,MAAM,CACX;IAED,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AAChC,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;QAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9C,IAAI,IAAI,KAAK,SAAS;AAAE,YAAA,OAAO,SAAS;QACxC,MAAM,MAAM,GAAuB,EAAE;QACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,IAAI,GAAG,KAAK,SAAS;gBAAE;YACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAc,cAAc,CAAC,CAAC;YACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAS,uBAAuB,CAAC,CAAC;YAChF,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAS,4BAA4B,CAAC,CAAC;YAC1F,MAAM,CAAC,IAAI,CAAC;AACV,gBAAA,EAAE,EAAE,KAAK;gBACT,GAAG,EAAE,GAAG,CAAC,EAAE;AACX,gBAAA,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC;AAC1B,gBAAA,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;gBACpC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;gBACtC,IAAI;AACL,aAAA,CAAC;QACJ;AACA,QAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC7C,QAAA,OAAO,MAAM;AACf,IAAA,CAAC,CAAC,CAAC,cAAc,EAAE;AAEnB,IAAA,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE;AAChC;;;;"}
@@ -0,0 +1,225 @@
1
+ 'use strict';
2
+
3
+ var computable = require('@milaboratories/computable');
4
+ var project_model = require('../model/project_model.cjs');
5
+ var tsHelpers = require('@milaboratories/ts-helpers');
6
+ var project_model_util = require('../model/project_model_util.cjs');
7
+ var block_ctx = require('./block_ctx.cjs');
8
+ var util$1 = require('../cfg_render/util.cjs');
9
+ var model = require('@platforma-sdk/model');
10
+ var render = require('./render.cjs');
11
+ var util = require('./util.cjs');
12
+ var plClient = require('@milaboratories/pl-client');
13
+ var R = require('remeda');
14
+
15
+ function _interopNamespaceDefault(e) {
16
+ var n = Object.create(null);
17
+ if (e) {
18
+ Object.keys(e).forEach(function (k) {
19
+ if (k !== 'default') {
20
+ var d = Object.getOwnPropertyDescriptor(e, k);
21
+ Object.defineProperty(n, k, d.get ? d : {
22
+ enumerable: true,
23
+ get: function () { return e[k]; }
24
+ });
25
+ }
26
+ });
27
+ }
28
+ n.default = e;
29
+ return Object.freeze(n);
30
+ }
31
+
32
+ var R__namespace = /*#__PURE__*/_interopNamespaceDefault(R);
33
+
34
+ function argsEquals(a, b) {
35
+ if (a === b)
36
+ return true;
37
+ if (a === undefined || b === undefined)
38
+ return false;
39
+ const clean = R__namespace.omitBy((_, key) => key.startsWith('__'));
40
+ return R__namespace.isDeepEqual(clean(a), clean(b));
41
+ }
42
+ /** Returns derived general project state form the project resource */
43
+ function projectOverview(prjEntry, navigationStates, env) {
44
+ return computable.Computable.make((ctx) => {
45
+ const prj = ctx.accessor(prjEntry).node();
46
+ const created = tsHelpers.notEmpty(prj.getKeyValueAsJson(project_model.ProjectCreatedTimestamp));
47
+ const lastModified = tsHelpers.notEmpty(prj.getKeyValueAsJson(project_model.ProjectLastModifiedTimestamp));
48
+ const meta = tsHelpers.notEmpty(prj.getKeyValueAsJson(project_model.ProjectMetaKey));
49
+ const structure = tsHelpers.notEmpty(prj.getKeyValueAsJson(project_model.ProjectStructureKey));
50
+ const renderingState = tsHelpers.notEmpty(prj.getKeyValueAsJson(project_model.BlockRenderingStateKey));
51
+ const infos = new Map();
52
+ for (const { id } of project_model_util.allBlocks(structure)) {
53
+ const cInputs = prj.traverse({
54
+ field: project_model.projectFieldName(id, 'currentArgs'),
55
+ assertFieldType: 'Dynamic',
56
+ errorIfFieldNotSet: true,
57
+ });
58
+ const currentArguments = cInputs.getDataAsJson();
59
+ let prod = undefined;
60
+ const rInputs = prj.traverse({
61
+ field: project_model.projectFieldName(id, 'prodArgs'),
62
+ assertFieldType: 'Dynamic',
63
+ stableIfNotFound: true,
64
+ });
65
+ if (rInputs !== undefined) {
66
+ const prodArgs = rInputs.getDataAsJson();
67
+ const result = prj.getField({
68
+ field: project_model.projectFieldName(id, 'prodOutput'),
69
+ assertFieldType: 'Dynamic',
70
+ errorIfFieldNotFound: true,
71
+ });
72
+ const ctx = prj.getField({
73
+ field: project_model.projectFieldName(id, 'prodUiCtx'),
74
+ assertFieldType: 'Dynamic',
75
+ errorIfFieldNotFound: true,
76
+ });
77
+ prod = {
78
+ arguments: prodArgs,
79
+ stale: !argsEquals(currentArguments, prodArgs),
80
+ outputError: result.error !== undefined
81
+ || ctx.error !== undefined
82
+ || result.value?.getError() !== undefined
83
+ || ctx.value?.getError() !== undefined,
84
+ outputsError: result.error?.getDataAsString() ?? result.value?.getError()?.getDataAsString(),
85
+ exportsError: ctx.error?.getDataAsString() ?? ctx.value?.getError()?.getDataAsString(),
86
+ finished: ((result.value !== undefined && result.value.getIsReadyOrError())
87
+ || (result.error !== undefined && result.error.getIsReadyOrError()))
88
+ && ((ctx.value !== undefined && ctx.value.getIsReadyOrError())
89
+ || (ctx.error !== undefined && ctx.error.getIsReadyOrError())),
90
+ };
91
+ }
92
+ infos.set(id, { currentArguments, prod, argsRid: cInputs.resourceInfo.id });
93
+ }
94
+ const currentGraph = project_model_util.productionGraph(structure, (id) => {
95
+ const bpInfo = util.getBlockPackInfo(prj, id);
96
+ const bInfo = infos.get(id);
97
+ const args = bInfo.currentArguments;
98
+ return {
99
+ args,
100
+ enrichmentTargets: env.projectHelper.getEnrichmentTargets(() => bpInfo.cfg, () => args, { argsRid: bInfo.argsRid, blockPackRid: bpInfo.bpResourceId }),
101
+ };
102
+ });
103
+ const limbo = new Set(renderingState.blocksInLimbo);
104
+ const blocks = [...project_model_util.allBlocks(structure)].map(({ id, label: defaultLabel, renderingMode }) => {
105
+ const info = tsHelpers.notEmpty(infos.get(id));
106
+ const gNode = tsHelpers.notEmpty(currentGraph.nodes.get(id));
107
+ let calculationStatus = 'NotCalculated';
108
+ if (info.prod !== undefined) {
109
+ if (limbo.has(id))
110
+ calculationStatus = 'Limbo';
111
+ else
112
+ calculationStatus = info.prod.finished ? 'Done' : 'Running';
113
+ }
114
+ const bp = util.getBlockPackInfo(prj, id);
115
+ const { sections, title, inputsValid, sdkVersion, featureFlags, isIncompatibleWithRuntime } = util$1.ifNotUndef(bp, ({ bpId, cfg }) => {
116
+ if (!env.runtimeCapabilities.checkCompatibility(cfg.featureFlags)) {
117
+ return {
118
+ isIncompatibleWithRuntime: true,
119
+ featureFlags: cfg.featureFlags,
120
+ };
121
+ }
122
+ const blockCtxArgsOnly = block_ctx.constructBlockContextArgsOnly(prjEntry, id);
123
+ const codeWithInfo = model.extractCodeWithInfo(cfg);
124
+ return {
125
+ sections: render.computableFromCfgOrRF(env, blockCtxArgsOnly, cfg.sections, codeWithInfo, bpId).wrap({
126
+ recover: (e) => {
127
+ env.logger.error('Error in block model sections');
128
+ env.logger.error(e);
129
+ return [];
130
+ },
131
+ }),
132
+ title: util$1.ifNotUndef(cfg.title, (title) => render.computableFromCfgOrRF(env, blockCtxArgsOnly, title, codeWithInfo, bpId).wrap({
133
+ recover: (e) => {
134
+ env.logger.error('Error in block model title');
135
+ env.logger.error(e);
136
+ return 'Invalid title';
137
+ },
138
+ })),
139
+ inputsValid: render.computableFromCfgOrRF(env, blockCtxArgsOnly, cfg.inputsValid, codeWithInfo, bpId).wrap({
140
+ recover: (e) => {
141
+ // I'm not sure that we should write an error here, because it just means "Invalid args"
142
+ env.logger.error('Error in block model argsValid');
143
+ env.logger.error(e);
144
+ return false;
145
+ },
146
+ }),
147
+ sdkVersion: codeWithInfo?.sdkVersion,
148
+ featureFlags: codeWithInfo?.featureFlags ?? {},
149
+ isIncompatibleWithRuntime: false,
150
+ };
151
+ }) || {};
152
+ const settings = prj
153
+ .traverse({
154
+ field: project_model.projectFieldName(id, 'blockSettings'),
155
+ assertFieldType: 'Dynamic',
156
+ errorIfFieldNotSet: true,
157
+ })
158
+ .getDataAsJson();
159
+ const updates = util$1.ifNotUndef(bp, ({ info }) => env.blockUpdateWatcher.get({ currentSpec: info.source, settings }));
160
+ return {
161
+ projectResourceId: plClient.resourceIdToString(prjEntry.rid),
162
+ id,
163
+ label: title ?? defaultLabel,
164
+ title: title ?? defaultLabel,
165
+ renderingMode,
166
+ stale: info.prod?.stale !== false || calculationStatus === 'Limbo',
167
+ missingReference: gNode.missingReferences,
168
+ upstreams: [...currentGraph.traverseIdsExcludingRoots('upstream', id)],
169
+ downstreams: [...currentGraph.traverseIdsExcludingRoots('downstream', id)],
170
+ calculationStatus,
171
+ outputErrors: info.prod?.outputError === true,
172
+ outputsError: info.prod?.outputsError,
173
+ exportsError: info.prod?.exportsError,
174
+ settings,
175
+ sections,
176
+ inputsValid,
177
+ updateInfo: {},
178
+ currentBlockPack: bp?.info?.source,
179
+ updates,
180
+ sdkVersion,
181
+ featureFlags,
182
+ isIncompatibleWithRuntime,
183
+ navigationState: navigationStates.getState(id),
184
+ };
185
+ });
186
+ return {
187
+ meta,
188
+ created: new Date(created),
189
+ lastModified: new Date(lastModified),
190
+ authorMarker: prj.getKeyValueAsJson(project_model.ProjectStructureAuthorKey),
191
+ blocks,
192
+ };
193
+ }, {
194
+ postprocessValue: (value) => {
195
+ const cantRun = new Set();
196
+ const staleBlocks = new Set();
197
+ return {
198
+ ...value,
199
+ blocks: value.blocks.map((b) => {
200
+ if (!b.inputsValid)
201
+ cantRun.add(b.id);
202
+ if (b.stale)
203
+ staleBlocks.add(b.id);
204
+ const stale = b.stale || b.upstreams.findIndex((u) => staleBlocks.has(u)) !== -1;
205
+ const canRun = (stale || b.outputErrors)
206
+ && Boolean(b.inputsValid)
207
+ && !b.missingReference
208
+ && b.upstreams.findIndex((u) => cantRun.has(u)) === -1;
209
+ const bb = {
210
+ ...b,
211
+ canRun,
212
+ stale,
213
+ updateSuggestions: b.updates?.suggestions ?? [],
214
+ updatedBlockPack: b.updates?.mainSuggestion,
215
+ };
216
+ delete bb['updates'];
217
+ return bb;
218
+ }),
219
+ };
220
+ },
221
+ }).withStableType();
222
+ }
223
+
224
+ exports.projectOverview = projectOverview;
225
+ //# sourceMappingURL=project_overview.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_overview.cjs","sources":["../../src/middle_layer/project_overview.ts"],"sourcesContent":["import type { PlTreeEntry } from '@milaboratories/pl-tree';\nimport type { ComputableStableDefined } from '@milaboratories/computable';\nimport { Computable } from '@milaboratories/computable';\nimport type {\n ProjectRenderingState,\n ProjectStructure } from '../model/project_model';\nimport {\n BlockRenderingStateKey,\n ProjectCreatedTimestamp,\n projectFieldName,\n ProjectLastModifiedTimestamp,\n ProjectMetaKey,\n ProjectStructureAuthorKey,\n ProjectStructureKey,\n} from '../model/project_model';\nimport { notEmpty } from '@milaboratories/ts-helpers';\nimport { allBlocks, productionGraph } from '../model/project_model_util';\nimport type { MiddleLayerEnvironment } from './middle_layer';\nimport type {\n AuthorMarker,\n BlockCalculationStatus,\n BlockSettings,\n ProjectMeta,\n ProjectOverview,\n} from '@milaboratories/pl-model-middle-layer';\nimport { constructBlockContextArgsOnly } from './block_ctx';\nimport { ifNotUndef } from '../cfg_render/util';\nimport { extractCodeWithInfo, type BlockSection } from '@platforma-sdk/model';\nimport { computableFromCfgOrRF } from './render';\nimport type { NavigationStates } from './navigation_states';\nimport { getBlockPackInfo } from './util';\nimport { resourceIdToString, type ResourceId } from '@milaboratories/pl-client';\nimport * as R from 'remeda';\n\ntype BlockInfo = {\n argsRid: ResourceId;\n currentArguments: unknown;\n prod?: ProdState;\n};\n\ntype _CalculationStatus = 'Running' | 'Done';\n\ntype ProdState = {\n finished: boolean;\n\n outputError: boolean;\n\n outputsError?: string;\n\n exportsError?: string;\n\n stale: boolean;\n\n /** Arguments current production was rendered with. */\n arguments: Record<string, unknown>;\n};\n\nfunction argsEquals(a: Record<string, unknown> | undefined, b: Record<string, unknown> | undefined): boolean {\n if (a === b) return true;\n if (a === undefined || b === undefined) return false;\n const clean = R.omitBy<Record<string, unknown>>((_, key) => key.startsWith('__'));\n return R.isDeepEqual(clean(a), clean(b));\n}\n\n/** Returns derived general project state form the project resource */\nexport function projectOverview(\n prjEntry: PlTreeEntry,\n navigationStates: NavigationStates,\n env: MiddleLayerEnvironment,\n): ComputableStableDefined<ProjectOverview> {\n return Computable.make(\n (ctx) => {\n const prj = ctx.accessor(prjEntry).node();\n\n const created = notEmpty(prj.getKeyValueAsJson<number>(ProjectCreatedTimestamp));\n const lastModified = notEmpty(prj.getKeyValueAsJson<number>(ProjectLastModifiedTimestamp));\n\n const meta = notEmpty(prj.getKeyValueAsJson<ProjectMeta>(ProjectMetaKey));\n const structure = notEmpty(prj.getKeyValueAsJson<ProjectStructure>(ProjectStructureKey));\n const renderingState = notEmpty(\n prj.getKeyValueAsJson<ProjectRenderingState>(BlockRenderingStateKey),\n );\n\n const infos = new Map<string, BlockInfo>();\n for (const { id } of allBlocks(structure)) {\n const cInputs = prj.traverse({\n field: projectFieldName(id, 'currentArgs'),\n assertFieldType: 'Dynamic',\n errorIfFieldNotSet: true,\n });\n const currentArguments = cInputs.getDataAsJson() as Record<string, unknown>;\n\n let prod: ProdState | undefined = undefined;\n\n const rInputs = prj.traverse({\n field: projectFieldName(id, 'prodArgs'),\n assertFieldType: 'Dynamic',\n stableIfNotFound: true,\n });\n if (rInputs !== undefined) {\n const prodArgs = rInputs.getDataAsJson() as Record<string, unknown>;\n const result = prj.getField({\n field: projectFieldName(id, 'prodOutput'),\n assertFieldType: 'Dynamic',\n errorIfFieldNotFound: true,\n });\n const ctx = prj.getField({\n field: projectFieldName(id, 'prodUiCtx'),\n assertFieldType: 'Dynamic',\n errorIfFieldNotFound: true,\n });\n prod = {\n arguments: prodArgs,\n stale: !argsEquals(currentArguments, prodArgs),\n outputError:\n result.error !== undefined\n || ctx.error !== undefined\n || result.value?.getError() !== undefined\n || ctx.value?.getError() !== undefined,\n outputsError:\n result.error?.getDataAsString() ?? result.value?.getError()?.getDataAsString(),\n exportsError: ctx.error?.getDataAsString() ?? ctx.value?.getError()?.getDataAsString(),\n finished:\n ((result.value !== undefined && result.value.getIsReadyOrError())\n || (result.error !== undefined && result.error.getIsReadyOrError()))\n && ((ctx.value !== undefined && ctx.value.getIsReadyOrError())\n || (ctx.error !== undefined && ctx.error.getIsReadyOrError())),\n };\n }\n\n infos.set(id, { currentArguments, prod, argsRid: cInputs.resourceInfo.id });\n }\n\n const currentGraph = productionGraph(structure, (id) => {\n const bpInfo = getBlockPackInfo(prj, id)!;\n const bInfo = infos.get(id)!;\n const args = bInfo.currentArguments;\n return {\n args,\n enrichmentTargets: env.projectHelper.getEnrichmentTargets(() => bpInfo.cfg, () => args, { argsRid: bInfo.argsRid, blockPackRid: bpInfo.bpResourceId }),\n };\n });\n\n const limbo = new Set(renderingState.blocksInLimbo);\n\n const blocks = [...allBlocks(structure)].map(({ id, label: defaultLabel, renderingMode }) => {\n const info = notEmpty(infos.get(id));\n const gNode = notEmpty(currentGraph.nodes.get(id));\n let calculationStatus: BlockCalculationStatus = 'NotCalculated';\n if (info.prod !== undefined) {\n if (limbo.has(id)) calculationStatus = 'Limbo';\n else calculationStatus = info.prod.finished ? 'Done' : 'Running';\n }\n\n const bp = getBlockPackInfo(prj, id);\n\n const { sections, title, inputsValid, sdkVersion, featureFlags, isIncompatibleWithRuntime }\n = ifNotUndef(bp, ({ bpId, cfg }) => {\n if (!env.runtimeCapabilities.checkCompatibility(cfg.featureFlags)) {\n return {\n isIncompatibleWithRuntime: true,\n featureFlags: cfg.featureFlags,\n };\n }\n const blockCtxArgsOnly = constructBlockContextArgsOnly(prjEntry, id);\n const codeWithInfo = extractCodeWithInfo(cfg);\n return {\n sections: computableFromCfgOrRF(\n env,\n blockCtxArgsOnly,\n cfg.sections,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (e) => {\n env.logger.error('Error in block model sections');\n env.logger.error(e);\n return [];\n },\n }) as ComputableStableDefined<BlockSection[]>,\n title: ifNotUndef(\n cfg.title,\n (title) =>\n computableFromCfgOrRF(\n env,\n blockCtxArgsOnly,\n title,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (e) => {\n env.logger.error('Error in block model title');\n env.logger.error(e);\n return 'Invalid title';\n },\n }) as ComputableStableDefined<string>,\n ),\n inputsValid: computableFromCfgOrRF(\n env,\n blockCtxArgsOnly,\n cfg.inputsValid,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (e) => {\n // I'm not sure that we should write an error here, because it just means \"Invalid args\"\n env.logger.error('Error in block model argsValid');\n env.logger.error(e);\n return false;\n },\n }) as ComputableStableDefined<boolean>,\n sdkVersion: codeWithInfo?.sdkVersion,\n featureFlags: codeWithInfo?.featureFlags ?? {},\n isIncompatibleWithRuntime: false,\n };\n }) || {};\n\n const settings = prj\n .traverse({\n field: projectFieldName(id, 'blockSettings'),\n assertFieldType: 'Dynamic',\n errorIfFieldNotSet: true,\n })\n .getDataAsJson() as BlockSettings;\n\n const updates = ifNotUndef(bp, ({ info }) =>\n env.blockUpdateWatcher.get({ currentSpec: info.source, settings }),\n );\n\n return {\n projectResourceId: resourceIdToString(prjEntry.rid),\n id,\n label: title ?? defaultLabel,\n title: title ?? defaultLabel,\n renderingMode,\n stale: info.prod?.stale !== false || calculationStatus === 'Limbo',\n missingReference: gNode.missingReferences,\n upstreams: [...currentGraph.traverseIdsExcludingRoots('upstream', id)],\n downstreams: [...currentGraph.traverseIdsExcludingRoots('downstream', id)],\n calculationStatus,\n outputErrors: info.prod?.outputError === true,\n outputsError: info.prod?.outputsError,\n exportsError: info.prod?.exportsError,\n settings,\n sections,\n inputsValid,\n updateInfo: {},\n currentBlockPack: bp?.info?.source,\n updates,\n sdkVersion,\n featureFlags,\n isIncompatibleWithRuntime,\n navigationState: navigationStates.getState(id),\n };\n });\n\n return {\n meta,\n created: new Date(created),\n lastModified: new Date(lastModified),\n authorMarker: prj.getKeyValueAsJson<AuthorMarker>(ProjectStructureAuthorKey),\n blocks,\n };\n },\n {\n postprocessValue: (value) => {\n const cantRun = new Set<string>();\n const staleBlocks = new Set<string>();\n return {\n ...value,\n blocks: value.blocks.map((b) => {\n if (!b.inputsValid) cantRun.add(b.id);\n if (b.stale) staleBlocks.add(b.id);\n const stale = b.stale || b.upstreams.findIndex((u) => staleBlocks.has(u)) !== -1;\n const canRun\n = (stale || b.outputErrors)\n && Boolean(b.inputsValid)\n && !b.missingReference\n && b.upstreams.findIndex((u) => cantRun.has(u)) === -1;\n const bb = {\n ...b,\n canRun,\n stale,\n updateSuggestions: b.updates?.suggestions ?? [],\n updatedBlockPack: b.updates?.mainSuggestion,\n };\n delete bb['updates'];\n return bb;\n }),\n };\n },\n },\n ).withStableType();\n}\n"],"names":["R","Computable","notEmpty","ProjectCreatedTimestamp","ProjectLastModifiedTimestamp","ProjectMetaKey","ProjectStructureKey","BlockRenderingStateKey","allBlocks","projectFieldName","productionGraph","getBlockPackInfo","ifNotUndef","constructBlockContextArgsOnly","extractCodeWithInfo","computableFromCfgOrRF","resourceIdToString","ProjectStructureAuthorKey"],"mappings":"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"}
@@ -5,4 +5,3 @@ import { ProjectOverview } from '@milaboratories/pl-model-middle-layer';
5
5
  import { NavigationStates } from './navigation_states';
6
6
  /** Returns derived general project state form the project resource */
7
7
  export declare function projectOverview(prjEntry: PlTreeEntry, navigationStates: NavigationStates, env: MiddleLayerEnvironment): ComputableStableDefined<ProjectOverview>;
8
- //# sourceMappingURL=project_overview.d.ts.map
@@ -0,0 +1,204 @@
1
+ import { Computable } from '@milaboratories/computable';
2
+ import { ProjectCreatedTimestamp, ProjectLastModifiedTimestamp, ProjectMetaKey, ProjectStructureKey, BlockRenderingStateKey, projectFieldName, ProjectStructureAuthorKey } from '../model/project_model.js';
3
+ import { notEmpty } from '@milaboratories/ts-helpers';
4
+ import { allBlocks, productionGraph } from '../model/project_model_util.js';
5
+ import { constructBlockContextArgsOnly } from './block_ctx.js';
6
+ import { ifNotUndef } from '../cfg_render/util.js';
7
+ import { extractCodeWithInfo } from '@platforma-sdk/model';
8
+ import { computableFromCfgOrRF } from './render.js';
9
+ import { getBlockPackInfo } from './util.js';
10
+ import { resourceIdToString } from '@milaboratories/pl-client';
11
+ import * as R from 'remeda';
12
+
13
+ function argsEquals(a, b) {
14
+ if (a === b)
15
+ return true;
16
+ if (a === undefined || b === undefined)
17
+ return false;
18
+ const clean = R.omitBy((_, key) => key.startsWith('__'));
19
+ return R.isDeepEqual(clean(a), clean(b));
20
+ }
21
+ /** Returns derived general project state form the project resource */
22
+ function projectOverview(prjEntry, navigationStates, env) {
23
+ return Computable.make((ctx) => {
24
+ const prj = ctx.accessor(prjEntry).node();
25
+ const created = notEmpty(prj.getKeyValueAsJson(ProjectCreatedTimestamp));
26
+ const lastModified = notEmpty(prj.getKeyValueAsJson(ProjectLastModifiedTimestamp));
27
+ const meta = notEmpty(prj.getKeyValueAsJson(ProjectMetaKey));
28
+ const structure = notEmpty(prj.getKeyValueAsJson(ProjectStructureKey));
29
+ const renderingState = notEmpty(prj.getKeyValueAsJson(BlockRenderingStateKey));
30
+ const infos = new Map();
31
+ for (const { id } of allBlocks(structure)) {
32
+ const cInputs = prj.traverse({
33
+ field: projectFieldName(id, 'currentArgs'),
34
+ assertFieldType: 'Dynamic',
35
+ errorIfFieldNotSet: true,
36
+ });
37
+ const currentArguments = cInputs.getDataAsJson();
38
+ let prod = undefined;
39
+ const rInputs = prj.traverse({
40
+ field: projectFieldName(id, 'prodArgs'),
41
+ assertFieldType: 'Dynamic',
42
+ stableIfNotFound: true,
43
+ });
44
+ if (rInputs !== undefined) {
45
+ const prodArgs = rInputs.getDataAsJson();
46
+ const result = prj.getField({
47
+ field: projectFieldName(id, 'prodOutput'),
48
+ assertFieldType: 'Dynamic',
49
+ errorIfFieldNotFound: true,
50
+ });
51
+ const ctx = prj.getField({
52
+ field: projectFieldName(id, 'prodUiCtx'),
53
+ assertFieldType: 'Dynamic',
54
+ errorIfFieldNotFound: true,
55
+ });
56
+ prod = {
57
+ arguments: prodArgs,
58
+ stale: !argsEquals(currentArguments, prodArgs),
59
+ outputError: result.error !== undefined
60
+ || ctx.error !== undefined
61
+ || result.value?.getError() !== undefined
62
+ || ctx.value?.getError() !== undefined,
63
+ outputsError: result.error?.getDataAsString() ?? result.value?.getError()?.getDataAsString(),
64
+ exportsError: ctx.error?.getDataAsString() ?? ctx.value?.getError()?.getDataAsString(),
65
+ finished: ((result.value !== undefined && result.value.getIsReadyOrError())
66
+ || (result.error !== undefined && result.error.getIsReadyOrError()))
67
+ && ((ctx.value !== undefined && ctx.value.getIsReadyOrError())
68
+ || (ctx.error !== undefined && ctx.error.getIsReadyOrError())),
69
+ };
70
+ }
71
+ infos.set(id, { currentArguments, prod, argsRid: cInputs.resourceInfo.id });
72
+ }
73
+ const currentGraph = productionGraph(structure, (id) => {
74
+ const bpInfo = getBlockPackInfo(prj, id);
75
+ const bInfo = infos.get(id);
76
+ const args = bInfo.currentArguments;
77
+ return {
78
+ args,
79
+ enrichmentTargets: env.projectHelper.getEnrichmentTargets(() => bpInfo.cfg, () => args, { argsRid: bInfo.argsRid, blockPackRid: bpInfo.bpResourceId }),
80
+ };
81
+ });
82
+ const limbo = new Set(renderingState.blocksInLimbo);
83
+ const blocks = [...allBlocks(structure)].map(({ id, label: defaultLabel, renderingMode }) => {
84
+ const info = notEmpty(infos.get(id));
85
+ const gNode = notEmpty(currentGraph.nodes.get(id));
86
+ let calculationStatus = 'NotCalculated';
87
+ if (info.prod !== undefined) {
88
+ if (limbo.has(id))
89
+ calculationStatus = 'Limbo';
90
+ else
91
+ calculationStatus = info.prod.finished ? 'Done' : 'Running';
92
+ }
93
+ const bp = getBlockPackInfo(prj, id);
94
+ const { sections, title, inputsValid, sdkVersion, featureFlags, isIncompatibleWithRuntime } = ifNotUndef(bp, ({ bpId, cfg }) => {
95
+ if (!env.runtimeCapabilities.checkCompatibility(cfg.featureFlags)) {
96
+ return {
97
+ isIncompatibleWithRuntime: true,
98
+ featureFlags: cfg.featureFlags,
99
+ };
100
+ }
101
+ const blockCtxArgsOnly = constructBlockContextArgsOnly(prjEntry, id);
102
+ const codeWithInfo = extractCodeWithInfo(cfg);
103
+ return {
104
+ sections: computableFromCfgOrRF(env, blockCtxArgsOnly, cfg.sections, codeWithInfo, bpId).wrap({
105
+ recover: (e) => {
106
+ env.logger.error('Error in block model sections');
107
+ env.logger.error(e);
108
+ return [];
109
+ },
110
+ }),
111
+ title: ifNotUndef(cfg.title, (title) => computableFromCfgOrRF(env, blockCtxArgsOnly, title, codeWithInfo, bpId).wrap({
112
+ recover: (e) => {
113
+ env.logger.error('Error in block model title');
114
+ env.logger.error(e);
115
+ return 'Invalid title';
116
+ },
117
+ })),
118
+ inputsValid: computableFromCfgOrRF(env, blockCtxArgsOnly, cfg.inputsValid, codeWithInfo, bpId).wrap({
119
+ recover: (e) => {
120
+ // I'm not sure that we should write an error here, because it just means "Invalid args"
121
+ env.logger.error('Error in block model argsValid');
122
+ env.logger.error(e);
123
+ return false;
124
+ },
125
+ }),
126
+ sdkVersion: codeWithInfo?.sdkVersion,
127
+ featureFlags: codeWithInfo?.featureFlags ?? {},
128
+ isIncompatibleWithRuntime: false,
129
+ };
130
+ }) || {};
131
+ const settings = prj
132
+ .traverse({
133
+ field: projectFieldName(id, 'blockSettings'),
134
+ assertFieldType: 'Dynamic',
135
+ errorIfFieldNotSet: true,
136
+ })
137
+ .getDataAsJson();
138
+ const updates = ifNotUndef(bp, ({ info }) => env.blockUpdateWatcher.get({ currentSpec: info.source, settings }));
139
+ return {
140
+ projectResourceId: resourceIdToString(prjEntry.rid),
141
+ id,
142
+ label: title ?? defaultLabel,
143
+ title: title ?? defaultLabel,
144
+ renderingMode,
145
+ stale: info.prod?.stale !== false || calculationStatus === 'Limbo',
146
+ missingReference: gNode.missingReferences,
147
+ upstreams: [...currentGraph.traverseIdsExcludingRoots('upstream', id)],
148
+ downstreams: [...currentGraph.traverseIdsExcludingRoots('downstream', id)],
149
+ calculationStatus,
150
+ outputErrors: info.prod?.outputError === true,
151
+ outputsError: info.prod?.outputsError,
152
+ exportsError: info.prod?.exportsError,
153
+ settings,
154
+ sections,
155
+ inputsValid,
156
+ updateInfo: {},
157
+ currentBlockPack: bp?.info?.source,
158
+ updates,
159
+ sdkVersion,
160
+ featureFlags,
161
+ isIncompatibleWithRuntime,
162
+ navigationState: navigationStates.getState(id),
163
+ };
164
+ });
165
+ return {
166
+ meta,
167
+ created: new Date(created),
168
+ lastModified: new Date(lastModified),
169
+ authorMarker: prj.getKeyValueAsJson(ProjectStructureAuthorKey),
170
+ blocks,
171
+ };
172
+ }, {
173
+ postprocessValue: (value) => {
174
+ const cantRun = new Set();
175
+ const staleBlocks = new Set();
176
+ return {
177
+ ...value,
178
+ blocks: value.blocks.map((b) => {
179
+ if (!b.inputsValid)
180
+ cantRun.add(b.id);
181
+ if (b.stale)
182
+ staleBlocks.add(b.id);
183
+ const stale = b.stale || b.upstreams.findIndex((u) => staleBlocks.has(u)) !== -1;
184
+ const canRun = (stale || b.outputErrors)
185
+ && Boolean(b.inputsValid)
186
+ && !b.missingReference
187
+ && b.upstreams.findIndex((u) => cantRun.has(u)) === -1;
188
+ const bb = {
189
+ ...b,
190
+ canRun,
191
+ stale,
192
+ updateSuggestions: b.updates?.suggestions ?? [],
193
+ updatedBlockPack: b.updates?.mainSuggestion,
194
+ };
195
+ delete bb['updates'];
196
+ return bb;
197
+ }),
198
+ };
199
+ },
200
+ }).withStableType();
201
+ }
202
+
203
+ export { projectOverview };
204
+ //# sourceMappingURL=project_overview.js.map