@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.
- package/dist/block_registry/index.d.ts +3 -3
- package/dist/block_registry/registry-v2-provider.cjs.map +1 -1
- package/dist/block_registry/registry-v2-provider.d.ts +2 -2
- package/dist/block_registry/registry-v2-provider.js.map +1 -1
- package/dist/block_registry/registry.cjs +54 -53
- package/dist/block_registry/registry.cjs.map +1 -1
- package/dist/block_registry/registry.d.ts +4 -4
- package/dist/block_registry/registry.d.ts.map +1 -1
- package/dist/block_registry/registry.js +54 -53
- package/dist/block_registry/registry.js.map +1 -1
- package/dist/block_registry/watcher.cjs +12 -12
- package/dist/block_registry/watcher.cjs.map +1 -1
- package/dist/block_registry/watcher.d.ts +6 -6
- package/dist/block_registry/watcher.d.ts.map +1 -1
- package/dist/block_registry/watcher.js +12 -12
- package/dist/block_registry/watcher.js.map +1 -1
- package/dist/block_registry/well_known_registries.cjs +6 -6
- package/dist/block_registry/well_known_registries.cjs.map +1 -1
- package/dist/block_registry/well_known_registries.d.ts +1 -1
- package/dist/block_registry/well_known_registries.js +6 -6
- package/dist/block_registry/well_known_registries.js.map +1 -1
- package/dist/cfg_render/executor.cjs +11 -11
- package/dist/cfg_render/executor.cjs.map +1 -1
- package/dist/cfg_render/executor.d.ts +5 -5
- package/dist/cfg_render/executor.js +11 -11
- package/dist/cfg_render/executor.js.map +1 -1
- package/dist/cfg_render/operation.d.ts +5 -5
- package/dist/cfg_render/renderer.cjs +74 -75
- package/dist/cfg_render/renderer.cjs.map +1 -1
- package/dist/cfg_render/renderer.d.ts +2 -2
- package/dist/cfg_render/renderer.d.ts.map +1 -1
- package/dist/cfg_render/renderer.js +74 -75
- package/dist/cfg_render/renderer.js.map +1 -1
- package/dist/cfg_render/traverse.cjs +27 -27
- package/dist/cfg_render/traverse.cjs.map +1 -1
- package/dist/cfg_render/traverse.d.ts +1 -1
- package/dist/cfg_render/traverse.js +27 -27
- package/dist/cfg_render/traverse.js.map +1 -1
- package/dist/cfg_render/util.cjs +1 -1
- package/dist/cfg_render/util.cjs.map +1 -1
- package/dist/cfg_render/util.d.ts +1 -1
- package/dist/cfg_render/util.js +1 -1
- package/dist/cfg_render/util.js.map +1 -1
- package/dist/debug/index.cjs +4 -2
- package/dist/debug/index.cjs.map +1 -1
- package/dist/debug/index.d.ts +2 -2
- package/dist/debug/index.d.ts.map +1 -1
- package/dist/debug/index.js +4 -2
- package/dist/debug/index.js.map +1 -1
- package/dist/dev_env/index.cjs +8 -8
- package/dist/dev_env/index.cjs.map +1 -1
- package/dist/dev_env/index.js +8 -8
- package/dist/dev_env/index.js.map +1 -1
- package/dist/dev_env/util.cjs +1 -1
- package/dist/dev_env/util.cjs.map +1 -1
- package/dist/dev_env/util.d.ts +1 -1
- package/dist/dev_env/util.js +1 -1
- package/dist/dev_env/util.js.map +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/js_render/computable_context.cjs +78 -78
- package/dist/js_render/computable_context.cjs.map +1 -1
- package/dist/js_render/computable_context.d.ts +9 -9
- package/dist/js_render/computable_context.d.ts.map +1 -1
- package/dist/js_render/computable_context.js +78 -78
- package/dist/js_render/computable_context.js.map +1 -1
- package/dist/js_render/context.cjs +33 -27
- package/dist/js_render/context.cjs.map +1 -1
- package/dist/js_render/context.d.ts +7 -7
- package/dist/js_render/context.d.ts.map +1 -1
- package/dist/js_render/context.js +33 -27
- package/dist/js_render/context.js.map +1 -1
- package/dist/js_render/index.cjs +10 -6
- package/dist/js_render/index.cjs.map +1 -1
- package/dist/js_render/index.d.ts +6 -6
- package/dist/js_render/index.d.ts.map +1 -1
- package/dist/js_render/index.js +10 -6
- package/dist/js_render/index.js.map +1 -1
- package/dist/middle_layer/active_cfg.cjs.map +1 -1
- package/dist/middle_layer/active_cfg.d.ts +3 -3
- package/dist/middle_layer/active_cfg.d.ts.map +1 -1
- package/dist/middle_layer/active_cfg.js.map +1 -1
- package/dist/middle_layer/block.cjs +1 -1
- package/dist/middle_layer/block.cjs.map +1 -1
- package/dist/middle_layer/block.d.ts +6 -6
- package/dist/middle_layer/block.d.ts.map +1 -1
- package/dist/middle_layer/block.js +1 -1
- package/dist/middle_layer/block.js.map +1 -1
- package/dist/middle_layer/block_ctx.cjs +9 -9
- package/dist/middle_layer/block_ctx.cjs.map +1 -1
- package/dist/middle_layer/block_ctx.d.ts +6 -6
- package/dist/middle_layer/block_ctx.d.ts.map +1 -1
- package/dist/middle_layer/block_ctx.js +9 -9
- package/dist/middle_layer/block_ctx.js.map +1 -1
- package/dist/middle_layer/block_ctx_unsafe.cjs +1 -1
- package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -1
- package/dist/middle_layer/block_ctx_unsafe.d.ts +5 -5
- package/dist/middle_layer/block_ctx_unsafe.js +1 -1
- package/dist/middle_layer/block_ctx_unsafe.js.map +1 -1
- package/dist/middle_layer/driver_kit.cjs +1 -2
- package/dist/middle_layer/driver_kit.cjs.map +1 -1
- package/dist/middle_layer/driver_kit.d.ts +7 -7
- package/dist/middle_layer/driver_kit.d.ts.map +1 -1
- package/dist/middle_layer/driver_kit.js +1 -2
- package/dist/middle_layer/driver_kit.js.map +1 -1
- package/dist/middle_layer/frontend_path.cjs +5 -5
- package/dist/middle_layer/frontend_path.cjs.map +1 -1
- package/dist/middle_layer/frontend_path.d.ts +4 -4
- package/dist/middle_layer/frontend_path.d.ts.map +1 -1
- package/dist/middle_layer/frontend_path.js +5 -5
- package/dist/middle_layer/frontend_path.js.map +1 -1
- package/dist/middle_layer/index.d.ts +4 -4
- package/dist/middle_layer/middle_layer.cjs +11 -11
- package/dist/middle_layer/middle_layer.cjs.map +1 -1
- package/dist/middle_layer/middle_layer.d.ts +18 -18
- package/dist/middle_layer/middle_layer.d.ts.map +1 -1
- package/dist/middle_layer/middle_layer.js +11 -11
- package/dist/middle_layer/middle_layer.js.map +1 -1
- package/dist/middle_layer/navigation_states.cjs +2 -2
- package/dist/middle_layer/navigation_states.cjs.map +1 -1
- package/dist/middle_layer/navigation_states.d.ts +2 -2
- package/dist/middle_layer/navigation_states.js +2 -2
- package/dist/middle_layer/navigation_states.js.map +1 -1
- package/dist/middle_layer/ops.cjs +5 -5
- package/dist/middle_layer/ops.cjs.map +1 -1
- package/dist/middle_layer/ops.d.ts +11 -11
- package/dist/middle_layer/ops.d.ts.map +1 -1
- package/dist/middle_layer/ops.js +5 -5
- package/dist/middle_layer/ops.js.map +1 -1
- package/dist/middle_layer/project.cjs +71 -63
- package/dist/middle_layer/project.cjs.map +1 -1
- package/dist/middle_layer/project.d.ts +10 -10
- package/dist/middle_layer/project.d.ts.map +1 -1
- package/dist/middle_layer/project.js +71 -63
- package/dist/middle_layer/project.js.map +1 -1
- package/dist/middle_layer/project_list.cjs +2 -2
- package/dist/middle_layer/project_list.cjs.map +1 -1
- package/dist/middle_layer/project_list.d.ts +6 -6
- package/dist/middle_layer/project_list.d.ts.map +1 -1
- package/dist/middle_layer/project_list.js +2 -2
- package/dist/middle_layer/project_list.js.map +1 -1
- package/dist/middle_layer/project_overview.cjs +40 -40
- package/dist/middle_layer/project_overview.cjs.map +1 -1
- package/dist/middle_layer/project_overview.d.ts +5 -5
- package/dist/middle_layer/project_overview.d.ts.map +1 -1
- package/dist/middle_layer/project_overview.js +40 -40
- package/dist/middle_layer/project_overview.js.map +1 -1
- package/dist/middle_layer/project_overview_light.cjs.map +1 -1
- package/dist/middle_layer/project_overview_light.d.ts +2 -2
- package/dist/middle_layer/project_overview_light.d.ts.map +1 -1
- package/dist/middle_layer/project_overview_light.js.map +1 -1
- package/dist/middle_layer/render.cjs +1 -1
- package/dist/middle_layer/render.cjs.map +1 -1
- package/dist/middle_layer/render.d.ts +4 -4
- package/dist/middle_layer/render.js +1 -1
- package/dist/middle_layer/render.js.map +1 -1
- package/dist/middle_layer/render.test.d.ts +2 -2
- package/dist/middle_layer/types.d.ts +3 -3
- package/dist/middle_layer/util.cjs +9 -4
- package/dist/middle_layer/util.cjs.map +1 -1
- package/dist/middle_layer/util.d.ts +4 -4
- package/dist/middle_layer/util.d.ts.map +1 -1
- package/dist/middle_layer/util.js +9 -4
- package/dist/middle_layer/util.js.map +1 -1
- package/dist/model/args.cjs +19 -15
- package/dist/model/args.cjs.map +1 -1
- package/dist/model/args.d.ts +1 -1
- package/dist/model/args.d.ts.map +1 -1
- package/dist/model/args.js +19 -15
- package/dist/model/args.js.map +1 -1
- package/dist/model/block_pack.d.ts +2 -2
- package/dist/model/block_pack_spec.cjs +3 -3
- package/dist/model/block_pack_spec.cjs.map +1 -1
- package/dist/model/block_pack_spec.d.ts +8 -8
- package/dist/model/block_pack_spec.js +3 -3
- package/dist/model/block_pack_spec.js.map +1 -1
- package/dist/model/block_storage_helper.cjs +4 -4
- package/dist/model/block_storage_helper.cjs.map +1 -1
- package/dist/model/block_storage_helper.d.ts +2 -2
- package/dist/model/block_storage_helper.d.ts.map +1 -1
- package/dist/model/block_storage_helper.js +4 -4
- package/dist/model/block_storage_helper.js.map +1 -1
- package/dist/model/index.d.ts +3 -3
- package/dist/model/project_helper.cjs +30 -13
- package/dist/model/project_helper.cjs.map +1 -1
- package/dist/model/project_helper.d.ts +4 -4
- package/dist/model/project_helper.d.ts.map +1 -1
- package/dist/model/project_helper.js +30 -13
- package/dist/model/project_helper.js.map +1 -1
- package/dist/model/project_model.cjs +23 -23
- package/dist/model/project_model.cjs.map +1 -1
- package/dist/model/project_model.d.ts +6 -6
- package/dist/model/project_model.d.ts.map +1 -1
- package/dist/model/project_model.js +23 -23
- package/dist/model/project_model.js.map +1 -1
- package/dist/model/project_model_util.cjs +2 -2
- package/dist/model/project_model_util.cjs.map +1 -1
- package/dist/model/project_model_util.d.ts +3 -3
- package/dist/model/project_model_util.d.ts.map +1 -1
- package/dist/model/project_model_util.js +2 -2
- package/dist/model/project_model_util.js.map +1 -1
- package/dist/model/project_model_v1.cjs +2 -2
- package/dist/model/project_model_v1.cjs.map +1 -1
- package/dist/model/project_model_v1.js +2 -2
- package/dist/model/project_model_v1.js.map +1 -1
- package/dist/model/template_spec.d.ts +5 -5
- package/dist/mutator/block-pack/block_pack.cjs +43 -43
- package/dist/mutator/block-pack/block_pack.cjs.map +1 -1
- package/dist/mutator/block-pack/block_pack.d.ts +6 -6
- package/dist/mutator/block-pack/block_pack.d.ts.map +1 -1
- package/dist/mutator/block-pack/block_pack.js +43 -43
- package/dist/mutator/block-pack/block_pack.js.map +1 -1
- package/dist/mutator/block-pack/frontend.cjs +2 -2
- package/dist/mutator/block-pack/frontend.cjs.map +1 -1
- package/dist/mutator/block-pack/frontend.d.ts +2 -2
- package/dist/mutator/block-pack/frontend.d.ts.map +1 -1
- package/dist/mutator/block-pack/frontend.js +2 -2
- package/dist/mutator/block-pack/frontend.js.map +1 -1
- package/dist/mutator/context_export.cjs +5 -5
- package/dist/mutator/context_export.cjs.map +1 -1
- package/dist/mutator/context_export.d.ts +2 -2
- package/dist/mutator/context_export.d.ts.map +1 -1
- package/dist/mutator/context_export.js +5 -5
- package/dist/mutator/context_export.js.map +1 -1
- package/dist/mutator/migration.cjs +7 -7
- package/dist/mutator/migration.cjs.map +1 -1
- package/dist/mutator/migration.d.ts +1 -1
- package/dist/mutator/migration.d.ts.map +1 -1
- package/dist/mutator/migration.js +7 -7
- package/dist/mutator/migration.js.map +1 -1
- package/dist/mutator/project.cjs +147 -148
- package/dist/mutator/project.cjs.map +1 -1
- package/dist/mutator/project.d.ts +13 -13
- package/dist/mutator/project.d.ts.map +1 -1
- package/dist/mutator/project.js +147 -148
- package/dist/mutator/project.js.map +1 -1
- package/dist/mutator/template/direct_template_loader.cjs +16 -16
- package/dist/mutator/template/direct_template_loader.cjs.map +1 -1
- package/dist/mutator/template/direct_template_loader.d.ts +2 -2
- package/dist/mutator/template/direct_template_loader.d.ts.map +1 -1
- package/dist/mutator/template/direct_template_loader.js +16 -16
- package/dist/mutator/template/direct_template_loader.js.map +1 -1
- package/dist/mutator/template/direct_template_loader_v3.cjs +13 -13
- package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -1
- package/dist/mutator/template/direct_template_loader_v3.d.ts +3 -3
- package/dist/mutator/template/direct_template_loader_v3.d.ts.map +1 -1
- package/dist/mutator/template/direct_template_loader_v3.js +13 -13
- package/dist/mutator/template/direct_template_loader_v3.js.map +1 -1
- package/dist/mutator/template/render_block.cjs +7 -7
- package/dist/mutator/template/render_block.cjs.map +1 -1
- package/dist/mutator/template/render_block.d.ts +1 -1
- package/dist/mutator/template/render_block.d.ts.map +1 -1
- package/dist/mutator/template/render_block.js +7 -7
- package/dist/mutator/template/render_block.js.map +1 -1
- package/dist/mutator/template/render_template.cjs +10 -10
- package/dist/mutator/template/render_template.cjs.map +1 -1
- package/dist/mutator/template/render_template.d.ts +2 -2
- package/dist/mutator/template/render_template.js +10 -10
- package/dist/mutator/template/render_template.js.map +1 -1
- package/dist/mutator/template/template_loading.cjs +17 -17
- package/dist/mutator/template/template_loading.cjs.map +1 -1
- package/dist/mutator/template/template_loading.d.ts +2 -2
- package/dist/mutator/template/template_loading.js +17 -17
- package/dist/mutator/template/template_loading.js.map +1 -1
- package/dist/network_check/network_check.cjs +33 -32
- package/dist/network_check/network_check.cjs.map +1 -1
- package/dist/network_check/network_check.d.ts +6 -6
- package/dist/network_check/network_check.d.ts.map +1 -1
- package/dist/network_check/network_check.js +33 -32
- package/dist/network_check/network_check.js.map +1 -1
- package/dist/network_check/pings.cjs +3 -3
- package/dist/network_check/pings.cjs.map +1 -1
- package/dist/network_check/pings.d.ts +4 -4
- package/dist/network_check/pings.d.ts.map +1 -1
- package/dist/network_check/pings.js +3 -3
- package/dist/network_check/pings.js.map +1 -1
- package/dist/network_check/template.cjs +57 -44
- package/dist/network_check/template.cjs.map +1 -1
- package/dist/network_check/template.d.ts +8 -8
- package/dist/network_check/template.d.ts.map +1 -1
- package/dist/network_check/template.js +57 -44
- package/dist/network_check/template.js.map +1 -1
- package/dist/pool/data.cjs +45 -33
- package/dist/pool/data.cjs.map +1 -1
- package/dist/pool/data.d.ts +3 -3
- package/dist/pool/data.d.ts.map +1 -1
- package/dist/pool/data.js +45 -33
- package/dist/pool/data.js.map +1 -1
- package/dist/pool/driver.cjs +18 -16
- package/dist/pool/driver.cjs.map +1 -1
- package/dist/pool/driver.d.ts +5 -5
- package/dist/pool/driver.d.ts.map +1 -1
- package/dist/pool/driver.js +18 -16
- package/dist/pool/driver.js.map +1 -1
- package/dist/pool/index.d.ts +2 -2
- package/dist/pool/p_object_collection.cjs +5 -5
- package/dist/pool/p_object_collection.cjs.map +1 -1
- package/dist/pool/p_object_collection.d.ts +2 -2
- package/dist/pool/p_object_collection.d.ts.map +1 -1
- package/dist/pool/p_object_collection.js +5 -5
- package/dist/pool/p_object_collection.js.map +1 -1
- package/dist/pool/result_pool.cjs +6 -6
- package/dist/pool/result_pool.cjs.map +1 -1
- package/dist/pool/result_pool.d.ts +6 -6
- package/dist/pool/result_pool.d.ts.map +1 -1
- package/dist/pool/result_pool.js +6 -6
- package/dist/pool/result_pool.js.map +1 -1
- package/dist/test/block_packs.d.ts +2 -2
- package/dist/test/known_templates.d.ts +1 -1
- package/dist/worker/WorkerManager.cjs +7 -8
- package/dist/worker/WorkerManager.cjs.map +1 -1
- package/dist/worker/WorkerManager.d.ts +2 -2
- package/dist/worker/WorkerManager.d.ts.map +1 -1
- package/dist/worker/WorkerManager.js +7 -8
- package/dist/worker/WorkerManager.js.map +1 -1
- package/dist/worker/worker.cjs +6 -4
- package/dist/worker/worker.cjs.map +1 -1
- package/dist/worker/worker.js +6 -4
- package/dist/worker/worker.js.map +1 -1
- package/dist/worker/workerApi.cjs.map +1 -1
- package/dist/worker/workerApi.js.map +1 -1
- package/package.json +41 -41
- package/src/block_registry/index.ts +3 -3
- package/src/block_registry/registry-v2-provider.ts +2 -2
- package/src/block_registry/registry.test.ts +17 -17
- package/src/block_registry/registry.ts +55 -60
- package/src/block_registry/watcher.ts +24 -23
- package/src/block_registry/well_known_registries.ts +7 -7
- package/src/cfg_render/executor.test.ts +36 -36
- package/src/cfg_render/executor.ts +24 -24
- package/src/cfg_render/operation.ts +5 -5
- package/src/cfg_render/renderer.ts +96 -93
- package/src/cfg_render/traverse.ts +50 -50
- package/src/cfg_render/util.ts +3 -3
- package/src/debug/index.ts +6 -4
- package/src/dev_env/index.ts +16 -16
- package/src/dev_env/util.ts +3 -3
- package/src/index.ts +16 -16
- package/src/js_render/computable_context.ts +143 -126
- package/src/js_render/context.ts +72 -44
- package/src/js_render/index.ts +51 -24
- package/src/middle_layer/active_cfg.ts +14 -12
- package/src/middle_layer/block.ts +30 -23
- package/src/middle_layer/block_ctx.ts +27 -31
- package/src/middle_layer/block_ctx_unsafe.ts +9 -9
- package/src/middle_layer/driver_kit.ts +13 -19
- package/src/middle_layer/frontend_path.ts +18 -23
- package/src/middle_layer/index.ts +4 -4
- package/src/middle_layer/middle_layer.ts +57 -55
- package/src/middle_layer/navigation_states.ts +6 -6
- package/src/middle_layer/ops.ts +43 -42
- package/src/middle_layer/project.ts +274 -173
- package/src/middle_layer/project_list.ts +14 -15
- package/src/middle_layer/project_overview.ts +104 -113
- package/src/middle_layer/project_overview_light.ts +7 -9
- package/src/middle_layer/render.test.ts +49 -48
- package/src/middle_layer/render.ts +9 -9
- package/src/middle_layer/types.ts +3 -3
- package/src/middle_layer/util.ts +17 -12
- package/src/model/args.ts +22 -19
- package/src/model/block_pack.ts +2 -2
- package/src/model/block_pack_spec.ts +11 -11
- package/src/model/block_storage_helper.ts +11 -11
- package/src/model/index.ts +3 -3
- package/src/model/project_helper.ts +78 -32
- package/src/model/project_model.test.ts +5 -9
- package/src/model/project_model.ts +48 -49
- package/src/model/project_model_util.test.ts +86 -53
- package/src/model/project_model_util.ts +18 -14
- package/src/model/project_model_v1.ts +3 -3
- package/src/model/template_spec.ts +5 -5
- package/src/mutator/block-pack/block_pack.test.ts +25 -25
- package/src/mutator/block-pack/block_pack.ts +70 -68
- package/src/mutator/block-pack/frontend.ts +6 -13
- package/src/mutator/context_export.ts +12 -10
- package/src/mutator/migration.ts +20 -14
- package/src/mutator/project-v3.test.ts +123 -118
- package/src/mutator/project.test.ts +105 -94
- package/src/mutator/project.ts +357 -274
- package/src/mutator/template/direct_template_loader.ts +26 -32
- package/src/mutator/template/direct_template_loader_v3.ts +51 -25
- package/src/mutator/template/render_block.ts +14 -21
- package/src/mutator/template/render_template.ts +13 -13
- package/src/mutator/template/template_loading.ts +23 -23
- package/src/mutator/template/template_render.test.ts +87 -86
- package/src/network_check/network_check.test.ts +4 -4
- package/src/network_check/network_check.ts +102 -79
- package/src/network_check/pings.ts +35 -16
- package/src/network_check/template.test.ts +47 -44
- package/src/network_check/template.ts +151 -95
- package/src/network_check/test_utils.ts +1 -1
- package/src/pool/data.ts +81 -69
- package/src/pool/driver.ts +56 -51
- package/src/pool/index.ts +2 -2
- package/src/pool/p_object_collection.ts +16 -15
- package/src/pool/result_pool.ts +23 -34
- package/src/test/block_packs.ts +15 -15
- package/src/test/explicit_templates.ts +4 -4
- package/src/test/known_templates.ts +10 -10
- package/src/test_env.ts +1 -1
- package/src/worker/WorkerManager.ts +22 -18
- package/src/worker/worker.ts +11 -9
- package/src/worker/workerApi.ts +1 -1
|
@@ -1 +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 { constructBlockContext, constructBlockContextArgsOnly } from './block_ctx';\nimport { ifNotUndef } from '../cfg_render/util';\nimport { type BlockSection } from '@platforma-sdk/model';\nimport { extractCodeWithInfo, wrapCallback } 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 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 stableIfNotFound: true,\n });\n const currentArguments = cInputs?.getDataAsJson<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: bInfo.argsRid\n ? env.projectHelper.getEnrichmentTargets(\n () => bpInfo.cfg,\n () => args,\n { argsRid: bInfo.argsRid, blockPackRid: bpInfo.bpResourceId },\n )\n : undefined,\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, subtitle, tags, 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 blockCtx = constructBlockContext(prjEntry, id);\n const blockCtxArgsOnly = constructBlockContextArgsOnly(prjEntry, id);\n const codeWithInfoOrError = wrapCallback(() => extractCodeWithInfo(cfg));\n if (codeWithInfoOrError.error) {\n return {\n title: codeWithInfoOrError.error.message,\n isIncompatibleWithRuntime: true,\n featureFlags: cfg.featureFlags,\n };\n }\n const codeWithInfo = codeWithInfoOrError.value;\n return {\n sections: computableFromCfgOrRF(\n env,\n blockCtx,\n cfg.sections,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(new Error('Error in block model sections', { cause }));\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: (cause) => {\n env.logger.error(new Error('Error in block model title', { cause }));\n return 'Invalid title';\n },\n }) as ComputableStableDefined<string>,\n ),\n subtitle: ifNotUndef(\n cfg.subtitle,\n (subtitle) =>\n computableFromCfgOrRF(\n env,\n blockCtxArgsOnly,\n subtitle,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(new Error('Error in block model subtitle', { cause }));\n return 'Invalid subtitle';\n },\n }) as ComputableStableDefined<string>,\n ),\n tags: ifNotUndef(\n cfg.tags,\n (tags) =>\n computableFromCfgOrRF(\n env,\n blockCtx,\n tags,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(new Error('Error in block model tags', { cause }));\n return [];\n },\n }) as ComputableStableDefined<string[]>,\n ),\n // inputsValid: for modelAPIVersion 2, it's true if currentArgs exists (args derivation succeeded)\n // For older blocks, use the inputsValid callback from config\n inputsValid: cfg.modelAPIVersion === 2\n ? info.currentArguments !== undefined\n : cfg.inputsValid\n ? computableFromCfgOrRF(\n env,\n blockCtxArgsOnly,\n cfg.inputsValid,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(new Error('Error in block model inputsValid', { cause }));\n return false;\n },\n }) as ComputableStableDefined<boolean>\n : undefined,\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 // Get block storage debug view by calling VM function (only for Model API v2 blocks)\n const storageDebugView = ifNotUndef(bp, ({ cfg }) => {\n if (cfg.modelAPIVersion !== 2) {\n return undefined;\n }\n const storageNode = prj.traverse({\n field: projectFieldName(id, 'blockStorage'),\n assertFieldType: 'Dynamic',\n stableIfNotFound: true,\n });\n const rawStorageJson = storageNode?.getDataAsString();\n return env.projectHelper.getStorageDebugViewInVM(cfg, rawStorageJson);\n });\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 subtitle,\n tags,\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 storageDebugView,\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","constructBlockContext","constructBlockContextArgsOnly","wrapCallback","extractCodeWithInfo","computableFromCfgOrRF","resourceIdToString","ProjectStructureAuthorKey"],"mappings":"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"}
|
|
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 { ProjectRenderingState, 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 { constructBlockContext, constructBlockContextArgsOnly } from \"./block_ctx\";\nimport { ifNotUndef } from \"../cfg_render/util\";\nimport { type BlockSection } from \"@platforma-sdk/model\";\nimport { extractCodeWithInfo, wrapCallback } 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 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(\n a: Record<string, unknown> | undefined,\n b: Record<string, unknown> | undefined,\n): 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 stableIfNotFound: true,\n });\n const currentArguments = cInputs?.getDataAsJson<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: bInfo.argsRid\n ? env.projectHelper.getEnrichmentTargets(\n () => bpInfo.cfg,\n () => args,\n { argsRid: bInfo.argsRid, blockPackRid: bpInfo.bpResourceId },\n )\n : undefined,\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 {\n sections,\n title,\n subtitle,\n tags,\n inputsValid,\n sdkVersion,\n featureFlags,\n isIncompatibleWithRuntime,\n } =\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 blockCtx = constructBlockContext(prjEntry, id);\n const blockCtxArgsOnly = constructBlockContextArgsOnly(prjEntry, id);\n const codeWithInfoOrError = wrapCallback(() => extractCodeWithInfo(cfg));\n if (codeWithInfoOrError.error) {\n return {\n title: codeWithInfoOrError.error.message,\n isIncompatibleWithRuntime: true,\n featureFlags: cfg.featureFlags,\n };\n }\n const codeWithInfo = codeWithInfoOrError.value;\n return {\n sections: computableFromCfgOrRF(env, blockCtx, cfg.sections, codeWithInfo, bpId).wrap(\n {\n recover: (cause) => {\n env.logger.error(new Error(\"Error in block model sections\", { cause }));\n return [];\n },\n },\n ) as ComputableStableDefined<BlockSection[]>,\n title: ifNotUndef(\n cfg.title,\n (title) =>\n computableFromCfgOrRF(env, blockCtxArgsOnly, title, codeWithInfo, bpId).wrap({\n recover: (cause) => {\n env.logger.error(new Error(\"Error in block model title\", { cause }));\n return \"Invalid title\";\n },\n }) as ComputableStableDefined<string>,\n ),\n subtitle: ifNotUndef(\n cfg.subtitle,\n (subtitle) =>\n computableFromCfgOrRF(env, blockCtxArgsOnly, subtitle, codeWithInfo, bpId).wrap({\n recover: (cause) => {\n env.logger.error(new Error(\"Error in block model subtitle\", { cause }));\n return \"Invalid subtitle\";\n },\n }) as ComputableStableDefined<string>,\n ),\n tags: ifNotUndef(\n cfg.tags,\n (tags) =>\n computableFromCfgOrRF(env, blockCtx, tags, codeWithInfo, bpId).wrap({\n recover: (cause) => {\n env.logger.error(new Error(\"Error in block model tags\", { cause }));\n return [];\n },\n }) as ComputableStableDefined<string[]>,\n ),\n // inputsValid: for modelAPIVersion 2, it's true if currentArgs exists (args derivation succeeded)\n // For older blocks, use the inputsValid callback from config\n inputsValid:\n cfg.modelAPIVersion === 2\n ? info.currentArguments !== undefined\n : cfg.inputsValid\n ? (computableFromCfgOrRF(\n env,\n blockCtxArgsOnly,\n cfg.inputsValid,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(\n new Error(\"Error in block model inputsValid\", { cause }),\n );\n return false;\n },\n }) as ComputableStableDefined<boolean>)\n : undefined,\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 // Get block storage debug view by calling VM function (only for Model API v2 blocks)\n const storageDebugView = ifNotUndef(bp, ({ cfg }) => {\n if (cfg.modelAPIVersion !== 2) {\n return undefined;\n }\n const storageNode = prj.traverse({\n field: projectFieldName(id, \"blockStorage\"),\n assertFieldType: \"Dynamic\",\n stableIfNotFound: true,\n });\n const rawStorageJson = storageNode?.getDataAsString();\n return env.projectHelper.getStorageDebugViewInVM(cfg, rawStorageJson);\n });\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 subtitle,\n tags,\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 storageDebugView,\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","constructBlockContext","constructBlockContextArgsOnly","wrapCallback","extractCodeWithInfo","computableFromCfgOrRF","resourceIdToString","ProjectStructureAuthorKey"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { PlTreeEntry } from
|
|
2
|
-
import type { ComputableStableDefined } from
|
|
3
|
-
import type { MiddleLayerEnvironment } from
|
|
4
|
-
import type { ProjectOverview } from
|
|
5
|
-
import type { NavigationStates } from
|
|
1
|
+
import type { PlTreeEntry } from "@milaboratories/pl-tree";
|
|
2
|
+
import type { ComputableStableDefined } from "@milaboratories/computable";
|
|
3
|
+
import type { MiddleLayerEnvironment } from "./middle_layer";
|
|
4
|
+
import type { ProjectOverview } from "@milaboratories/pl-model-middle-layer";
|
|
5
|
+
import type { 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
8
|
//# sourceMappingURL=project_overview.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project_overview.d.ts","sourceRoot":"","sources":["../../src/middle_layer/project_overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"project_overview.d.ts","sourceRoot":"","sources":["../../src/middle_layer/project_overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAc1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAKV,eAAe,EAChB,MAAM,uCAAuC,CAAC;AAM/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAoC5D,sEAAsE;AACtE,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,sBAAsB,GAC1B,uBAAuB,CAAC,eAAe,CAAC,CAwR1C"}
|
|
@@ -15,7 +15,7 @@ function argsEquals(a, b) {
|
|
|
15
15
|
return true;
|
|
16
16
|
if (a === undefined || b === undefined)
|
|
17
17
|
return false;
|
|
18
|
-
const clean = R.omitBy((_, key) => key.startsWith(
|
|
18
|
+
const clean = R.omitBy((_, key) => key.startsWith("__"));
|
|
19
19
|
return R.isDeepEqual(clean(a), clean(b));
|
|
20
20
|
}
|
|
21
21
|
/** Returns derived general project state form the project resource */
|
|
@@ -30,42 +30,42 @@ function projectOverview(prjEntry, navigationStates, env) {
|
|
|
30
30
|
const infos = new Map();
|
|
31
31
|
for (const { id } of allBlocks(structure)) {
|
|
32
32
|
const cInputs = prj.traverse({
|
|
33
|
-
field: projectFieldName(id,
|
|
34
|
-
assertFieldType:
|
|
33
|
+
field: projectFieldName(id, "currentArgs"),
|
|
34
|
+
assertFieldType: "Dynamic",
|
|
35
35
|
stableIfNotFound: true,
|
|
36
36
|
});
|
|
37
37
|
const currentArguments = cInputs?.getDataAsJson();
|
|
38
38
|
let prod = undefined;
|
|
39
39
|
const rInputs = prj.traverse({
|
|
40
|
-
field: projectFieldName(id,
|
|
41
|
-
assertFieldType:
|
|
40
|
+
field: projectFieldName(id, "prodArgs"),
|
|
41
|
+
assertFieldType: "Dynamic",
|
|
42
42
|
stableIfNotFound: true,
|
|
43
43
|
});
|
|
44
44
|
if (rInputs !== undefined) {
|
|
45
45
|
const prodArgs = rInputs.getDataAsJson();
|
|
46
46
|
const result = prj.getField({
|
|
47
|
-
field: projectFieldName(id,
|
|
48
|
-
assertFieldType:
|
|
47
|
+
field: projectFieldName(id, "prodOutput"),
|
|
48
|
+
assertFieldType: "Dynamic",
|
|
49
49
|
errorIfFieldNotFound: true,
|
|
50
50
|
});
|
|
51
51
|
const ctx = prj.getField({
|
|
52
|
-
field: projectFieldName(id,
|
|
53
|
-
assertFieldType:
|
|
52
|
+
field: projectFieldName(id, "prodUiCtx"),
|
|
53
|
+
assertFieldType: "Dynamic",
|
|
54
54
|
errorIfFieldNotFound: true,
|
|
55
55
|
});
|
|
56
56
|
prod = {
|
|
57
57
|
arguments: prodArgs,
|
|
58
58
|
stale: !argsEquals(currentArguments, prodArgs),
|
|
59
|
-
outputError: result.error !== undefined
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
outputError: result.error !== undefined ||
|
|
60
|
+
ctx.error !== undefined ||
|
|
61
|
+
result.value?.getError() !== undefined ||
|
|
62
|
+
ctx.value?.getError() !== undefined,
|
|
63
63
|
outputsError: result.error?.getDataAsString() ?? result.value?.getError()?.getDataAsString(),
|
|
64
64
|
exportsError: ctx.error?.getDataAsString() ?? ctx.value?.getError()?.getDataAsString(),
|
|
65
|
-
finished: ((result.value !== undefined && result.value.getIsReadyOrError())
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
69
|
};
|
|
70
70
|
}
|
|
71
71
|
infos.set(id, { currentArguments, prod, argsRid: cInputs?.resourceInfo.id });
|
|
@@ -85,15 +85,15 @@ function projectOverview(prjEntry, navigationStates, env) {
|
|
|
85
85
|
const blocks = [...allBlocks(structure)].map(({ id, label: defaultLabel, renderingMode }) => {
|
|
86
86
|
const info = notEmpty(infos.get(id));
|
|
87
87
|
const gNode = notEmpty(currentGraph.nodes.get(id));
|
|
88
|
-
let calculationStatus =
|
|
88
|
+
let calculationStatus = "NotCalculated";
|
|
89
89
|
if (info.prod !== undefined) {
|
|
90
90
|
if (limbo.has(id))
|
|
91
|
-
calculationStatus =
|
|
91
|
+
calculationStatus = "Limbo";
|
|
92
92
|
else
|
|
93
|
-
calculationStatus = info.prod.finished ?
|
|
93
|
+
calculationStatus = info.prod.finished ? "Done" : "Running";
|
|
94
94
|
}
|
|
95
95
|
const bp = getBlockPackInfo(prj, id);
|
|
96
|
-
const { sections, title, subtitle, tags, inputsValid, sdkVersion, featureFlags, isIncompatibleWithRuntime } = ifNotUndef(bp, ({ bpId, cfg }) => {
|
|
96
|
+
const { sections, title, subtitle, tags, inputsValid, sdkVersion, featureFlags, isIncompatibleWithRuntime, } = ifNotUndef(bp, ({ bpId, cfg }) => {
|
|
97
97
|
if (!env.runtimeCapabilities.checkCompatibility(cfg.featureFlags)) {
|
|
98
98
|
return {
|
|
99
99
|
isIncompatibleWithRuntime: true,
|
|
@@ -114,25 +114,25 @@ function projectOverview(prjEntry, navigationStates, env) {
|
|
|
114
114
|
return {
|
|
115
115
|
sections: computableFromCfgOrRF(env, blockCtx, cfg.sections, codeWithInfo, bpId).wrap({
|
|
116
116
|
recover: (cause) => {
|
|
117
|
-
env.logger.error(new Error(
|
|
117
|
+
env.logger.error(new Error("Error in block model sections", { cause }));
|
|
118
118
|
return [];
|
|
119
119
|
},
|
|
120
120
|
}),
|
|
121
121
|
title: ifNotUndef(cfg.title, (title) => computableFromCfgOrRF(env, blockCtxArgsOnly, title, codeWithInfo, bpId).wrap({
|
|
122
122
|
recover: (cause) => {
|
|
123
|
-
env.logger.error(new Error(
|
|
124
|
-
return
|
|
123
|
+
env.logger.error(new Error("Error in block model title", { cause }));
|
|
124
|
+
return "Invalid title";
|
|
125
125
|
},
|
|
126
126
|
})),
|
|
127
127
|
subtitle: ifNotUndef(cfg.subtitle, (subtitle) => computableFromCfgOrRF(env, blockCtxArgsOnly, subtitle, codeWithInfo, bpId).wrap({
|
|
128
128
|
recover: (cause) => {
|
|
129
|
-
env.logger.error(new Error(
|
|
130
|
-
return
|
|
129
|
+
env.logger.error(new Error("Error in block model subtitle", { cause }));
|
|
130
|
+
return "Invalid subtitle";
|
|
131
131
|
},
|
|
132
132
|
})),
|
|
133
133
|
tags: ifNotUndef(cfg.tags, (tags) => computableFromCfgOrRF(env, blockCtx, tags, codeWithInfo, bpId).wrap({
|
|
134
134
|
recover: (cause) => {
|
|
135
|
-
env.logger.error(new Error(
|
|
135
|
+
env.logger.error(new Error("Error in block model tags", { cause }));
|
|
136
136
|
return [];
|
|
137
137
|
},
|
|
138
138
|
})),
|
|
@@ -143,7 +143,7 @@ function projectOverview(prjEntry, navigationStates, env) {
|
|
|
143
143
|
: cfg.inputsValid
|
|
144
144
|
? computableFromCfgOrRF(env, blockCtxArgsOnly, cfg.inputsValid, codeWithInfo, bpId).wrap({
|
|
145
145
|
recover: (cause) => {
|
|
146
|
-
env.logger.error(new Error(
|
|
146
|
+
env.logger.error(new Error("Error in block model inputsValid", { cause }));
|
|
147
147
|
return false;
|
|
148
148
|
},
|
|
149
149
|
})
|
|
@@ -155,8 +155,8 @@ function projectOverview(prjEntry, navigationStates, env) {
|
|
|
155
155
|
}) || {};
|
|
156
156
|
const settings = prj
|
|
157
157
|
.traverse({
|
|
158
|
-
field: projectFieldName(id,
|
|
159
|
-
assertFieldType:
|
|
158
|
+
field: projectFieldName(id, "blockSettings"),
|
|
159
|
+
assertFieldType: "Dynamic",
|
|
160
160
|
errorIfFieldNotSet: true,
|
|
161
161
|
})
|
|
162
162
|
.getDataAsJson();
|
|
@@ -166,8 +166,8 @@ function projectOverview(prjEntry, navigationStates, env) {
|
|
|
166
166
|
return undefined;
|
|
167
167
|
}
|
|
168
168
|
const storageNode = prj.traverse({
|
|
169
|
-
field: projectFieldName(id,
|
|
170
|
-
assertFieldType:
|
|
169
|
+
field: projectFieldName(id, "blockStorage"),
|
|
170
|
+
assertFieldType: "Dynamic",
|
|
171
171
|
stableIfNotFound: true,
|
|
172
172
|
});
|
|
173
173
|
const rawStorageJson = storageNode?.getDataAsString();
|
|
@@ -182,10 +182,10 @@ function projectOverview(prjEntry, navigationStates, env) {
|
|
|
182
182
|
subtitle,
|
|
183
183
|
tags,
|
|
184
184
|
renderingMode,
|
|
185
|
-
stale: info.prod?.stale !== false || calculationStatus ===
|
|
185
|
+
stale: info.prod?.stale !== false || calculationStatus === "Limbo",
|
|
186
186
|
missingReference: gNode.missingReferences,
|
|
187
|
-
upstreams: [...currentGraph.traverseIdsExcludingRoots(
|
|
188
|
-
downstreams: [...currentGraph.traverseIdsExcludingRoots(
|
|
187
|
+
upstreams: [...currentGraph.traverseIdsExcludingRoots("upstream", id)],
|
|
188
|
+
downstreams: [...currentGraph.traverseIdsExcludingRoots("downstream", id)],
|
|
189
189
|
calculationStatus,
|
|
190
190
|
outputErrors: info.prod?.outputError === true,
|
|
191
191
|
outputsError: info.prod?.outputsError,
|
|
@@ -222,10 +222,10 @@ function projectOverview(prjEntry, navigationStates, env) {
|
|
|
222
222
|
if (b.stale)
|
|
223
223
|
staleBlocks.add(b.id);
|
|
224
224
|
const stale = b.stale || b.upstreams.findIndex((u) => staleBlocks.has(u)) !== -1;
|
|
225
|
-
const canRun = (stale || b.outputErrors)
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
225
|
+
const canRun = (stale || b.outputErrors) &&
|
|
226
|
+
Boolean(b.inputsValid) &&
|
|
227
|
+
!b.missingReference &&
|
|
228
|
+
b.upstreams.findIndex((u) => cantRun.has(u)) === -1;
|
|
229
229
|
const bb = {
|
|
230
230
|
...b,
|
|
231
231
|
canRun,
|
|
@@ -233,7 +233,7 @@ function projectOverview(prjEntry, navigationStates, env) {
|
|
|
233
233
|
updateSuggestions: b.updates?.suggestions ?? [],
|
|
234
234
|
updatedBlockPack: b.updates?.mainSuggestion,
|
|
235
235
|
};
|
|
236
|
-
delete bb[
|
|
236
|
+
delete bb["updates"];
|
|
237
237
|
return bb;
|
|
238
238
|
}),
|
|
239
239
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project_overview.js","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 { constructBlockContext, constructBlockContextArgsOnly } from './block_ctx';\nimport { ifNotUndef } from '../cfg_render/util';\nimport { type BlockSection } from '@platforma-sdk/model';\nimport { extractCodeWithInfo, wrapCallback } 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 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 stableIfNotFound: true,\n });\n const currentArguments = cInputs?.getDataAsJson<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: bInfo.argsRid\n ? env.projectHelper.getEnrichmentTargets(\n () => bpInfo.cfg,\n () => args,\n { argsRid: bInfo.argsRid, blockPackRid: bpInfo.bpResourceId },\n )\n : undefined,\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, subtitle, tags, 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 blockCtx = constructBlockContext(prjEntry, id);\n const blockCtxArgsOnly = constructBlockContextArgsOnly(prjEntry, id);\n const codeWithInfoOrError = wrapCallback(() => extractCodeWithInfo(cfg));\n if (codeWithInfoOrError.error) {\n return {\n title: codeWithInfoOrError.error.message,\n isIncompatibleWithRuntime: true,\n featureFlags: cfg.featureFlags,\n };\n }\n const codeWithInfo = codeWithInfoOrError.value;\n return {\n sections: computableFromCfgOrRF(\n env,\n blockCtx,\n cfg.sections,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(new Error('Error in block model sections', { cause }));\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: (cause) => {\n env.logger.error(new Error('Error in block model title', { cause }));\n return 'Invalid title';\n },\n }) as ComputableStableDefined<string>,\n ),\n subtitle: ifNotUndef(\n cfg.subtitle,\n (subtitle) =>\n computableFromCfgOrRF(\n env,\n blockCtxArgsOnly,\n subtitle,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(new Error('Error in block model subtitle', { cause }));\n return 'Invalid subtitle';\n },\n }) as ComputableStableDefined<string>,\n ),\n tags: ifNotUndef(\n cfg.tags,\n (tags) =>\n computableFromCfgOrRF(\n env,\n blockCtx,\n tags,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(new Error('Error in block model tags', { cause }));\n return [];\n },\n }) as ComputableStableDefined<string[]>,\n ),\n // inputsValid: for modelAPIVersion 2, it's true if currentArgs exists (args derivation succeeded)\n // For older blocks, use the inputsValid callback from config\n inputsValid: cfg.modelAPIVersion === 2\n ? info.currentArguments !== undefined\n : cfg.inputsValid\n ? computableFromCfgOrRF(\n env,\n blockCtxArgsOnly,\n cfg.inputsValid,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(new Error('Error in block model inputsValid', { cause }));\n return false;\n },\n }) as ComputableStableDefined<boolean>\n : undefined,\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 // Get block storage debug view by calling VM function (only for Model API v2 blocks)\n const storageDebugView = ifNotUndef(bp, ({ cfg }) => {\n if (cfg.modelAPIVersion !== 2) {\n return undefined;\n }\n const storageNode = prj.traverse({\n field: projectFieldName(id, 'blockStorage'),\n assertFieldType: 'Dynamic',\n stableIfNotFound: true,\n });\n const rawStorageJson = storageNode?.getDataAsString();\n return env.projectHelper.getStorageDebugViewInVM(cfg, rawStorageJson);\n });\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 subtitle,\n tags,\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 storageDebugView,\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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project_overview.js","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 { ProjectRenderingState, 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 { constructBlockContext, constructBlockContextArgsOnly } from \"./block_ctx\";\nimport { ifNotUndef } from \"../cfg_render/util\";\nimport { type BlockSection } from \"@platforma-sdk/model\";\nimport { extractCodeWithInfo, wrapCallback } 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 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(\n a: Record<string, unknown> | undefined,\n b: Record<string, unknown> | undefined,\n): 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 stableIfNotFound: true,\n });\n const currentArguments = cInputs?.getDataAsJson<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: bInfo.argsRid\n ? env.projectHelper.getEnrichmentTargets(\n () => bpInfo.cfg,\n () => args,\n { argsRid: bInfo.argsRid, blockPackRid: bpInfo.bpResourceId },\n )\n : undefined,\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 {\n sections,\n title,\n subtitle,\n tags,\n inputsValid,\n sdkVersion,\n featureFlags,\n isIncompatibleWithRuntime,\n } =\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 blockCtx = constructBlockContext(prjEntry, id);\n const blockCtxArgsOnly = constructBlockContextArgsOnly(prjEntry, id);\n const codeWithInfoOrError = wrapCallback(() => extractCodeWithInfo(cfg));\n if (codeWithInfoOrError.error) {\n return {\n title: codeWithInfoOrError.error.message,\n isIncompatibleWithRuntime: true,\n featureFlags: cfg.featureFlags,\n };\n }\n const codeWithInfo = codeWithInfoOrError.value;\n return {\n sections: computableFromCfgOrRF(env, blockCtx, cfg.sections, codeWithInfo, bpId).wrap(\n {\n recover: (cause) => {\n env.logger.error(new Error(\"Error in block model sections\", { cause }));\n return [];\n },\n },\n ) as ComputableStableDefined<BlockSection[]>,\n title: ifNotUndef(\n cfg.title,\n (title) =>\n computableFromCfgOrRF(env, blockCtxArgsOnly, title, codeWithInfo, bpId).wrap({\n recover: (cause) => {\n env.logger.error(new Error(\"Error in block model title\", { cause }));\n return \"Invalid title\";\n },\n }) as ComputableStableDefined<string>,\n ),\n subtitle: ifNotUndef(\n cfg.subtitle,\n (subtitle) =>\n computableFromCfgOrRF(env, blockCtxArgsOnly, subtitle, codeWithInfo, bpId).wrap({\n recover: (cause) => {\n env.logger.error(new Error(\"Error in block model subtitle\", { cause }));\n return \"Invalid subtitle\";\n },\n }) as ComputableStableDefined<string>,\n ),\n tags: ifNotUndef(\n cfg.tags,\n (tags) =>\n computableFromCfgOrRF(env, blockCtx, tags, codeWithInfo, bpId).wrap({\n recover: (cause) => {\n env.logger.error(new Error(\"Error in block model tags\", { cause }));\n return [];\n },\n }) as ComputableStableDefined<string[]>,\n ),\n // inputsValid: for modelAPIVersion 2, it's true if currentArgs exists (args derivation succeeded)\n // For older blocks, use the inputsValid callback from config\n inputsValid:\n cfg.modelAPIVersion === 2\n ? info.currentArguments !== undefined\n : cfg.inputsValid\n ? (computableFromCfgOrRF(\n env,\n blockCtxArgsOnly,\n cfg.inputsValid,\n codeWithInfo,\n bpId,\n ).wrap({\n recover: (cause) => {\n env.logger.error(\n new Error(\"Error in block model inputsValid\", { cause }),\n );\n return false;\n },\n }) as ComputableStableDefined<boolean>)\n : undefined,\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 // Get block storage debug view by calling VM function (only for Model API v2 blocks)\n const storageDebugView = ifNotUndef(bp, ({ cfg }) => {\n if (cfg.modelAPIVersion !== 2) {\n return undefined;\n }\n const storageNode = prj.traverse({\n field: projectFieldName(id, \"blockStorage\"),\n assertFieldType: \"Dynamic\",\n stableIfNotFound: true,\n });\n const rawStorageJson = storageNode?.getDataAsString();\n return env.projectHelper.getStorageDebugViewInVM(cfg, rawStorageJson);\n });\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 subtitle,\n tags,\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 storageDebugView,\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":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project_overview_light.cjs","sources":["../../src/middle_layer/project_overview_light.ts"],"sourcesContent":["import { notEmpty } from
|
|
1
|
+
{"version":3,"file":"project_overview_light.cjs","sources":["../../src/middle_layer/project_overview_light.ts"],"sourcesContent":["import { notEmpty } from \"@milaboratories/ts-helpers\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport { Computable } from \"@milaboratories/computable\";\nimport type { ProjectStructure } from \"../model/project_model\";\nimport { ProjectStructureKey } from \"../model/project_model\";\nimport { allBlocks } from \"../model/project_model_util\";\n\nexport type ProjectOverviewLight = {\n readonly listOfBlocks: string[];\n};\n\n/** Returns derived general project state form the project resource */\nexport function projectOverviewLight(prjEntry: PlTreeEntry): Computable<ProjectOverviewLight> {\n return Computable.make((ctx) => {\n const prj = ctx.accessor(prjEntry).node();\n\n const structure = notEmpty(prj.getKeyValueAsJson<ProjectStructure>(ProjectStructureKey));\n\n return {\n listOfBlocks: [...allBlocks(structure)].map((b) => b.id),\n };\n });\n}\n"],"names":["Computable","notEmpty","ProjectStructureKey","allBlocks"],"mappings":";;;;;;;AAWA;AACM,SAAU,oBAAoB,CAAC,QAAqB,EAAA;AACxD,IAAA,OAAOA,qBAAU,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;QAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;QAEzC,MAAM,SAAS,GAAGC,kBAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAmBC,iCAAmB,CAAC,CAAC;QAExF,OAAO;AACL,YAAA,YAAY,EAAE,CAAC,GAAGC,4BAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;SACzD;AACH,IAAA,CAAC,CAAC;AACJ;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { PlTreeEntry } from
|
|
2
|
-
import { Computable } from
|
|
1
|
+
import type { PlTreeEntry } from "@milaboratories/pl-tree";
|
|
2
|
+
import { Computable } from "@milaboratories/computable";
|
|
3
3
|
export type ProjectOverviewLight = {
|
|
4
4
|
readonly listOfBlocks: string[];
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project_overview_light.d.ts","sourceRoot":"","sources":["../../src/middle_layer/project_overview_light.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF,sEAAsE;AACtE,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"project_overview_light.d.ts","sourceRoot":"","sources":["../../src/middle_layer/project_overview_light.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAU5F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project_overview_light.js","sources":["../../src/middle_layer/project_overview_light.ts"],"sourcesContent":["import { notEmpty } from
|
|
1
|
+
{"version":3,"file":"project_overview_light.js","sources":["../../src/middle_layer/project_overview_light.ts"],"sourcesContent":["import { notEmpty } from \"@milaboratories/ts-helpers\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport { Computable } from \"@milaboratories/computable\";\nimport type { ProjectStructure } from \"../model/project_model\";\nimport { ProjectStructureKey } from \"../model/project_model\";\nimport { allBlocks } from \"../model/project_model_util\";\n\nexport type ProjectOverviewLight = {\n readonly listOfBlocks: string[];\n};\n\n/** Returns derived general project state form the project resource */\nexport function projectOverviewLight(prjEntry: PlTreeEntry): Computable<ProjectOverviewLight> {\n return Computable.make((ctx) => {\n const prj = ctx.accessor(prjEntry).node();\n\n const structure = notEmpty(prj.getKeyValueAsJson<ProjectStructure>(ProjectStructureKey));\n\n return {\n listOfBlocks: [...allBlocks(structure)].map((b) => b.id),\n };\n });\n}\n"],"names":[],"mappings":";;;;;AAWA;AACM,SAAU,oBAAoB,CAAC,QAAqB,EAAA;AACxD,IAAA,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;QAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;QAEzC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAmB,mBAAmB,CAAC,CAAC;QAExF,OAAO;AACL,YAAA,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;SACzD;AACH,IAAA,CAAC,CAAC;AACJ;;;;"}
|
|
@@ -14,7 +14,7 @@ function isActive(cfg) {
|
|
|
14
14
|
function computableFromCfgOrRF(env, ctx, cfgOrFh, codeWithInfo, configKey, ops = {}) {
|
|
15
15
|
if (model.isConfigLambda(cfgOrFh)) {
|
|
16
16
|
if (codeWithInfo === undefined)
|
|
17
|
-
throw new Error(
|
|
17
|
+
throw new Error("computableFromCfgOrRF: No code bundle.");
|
|
18
18
|
return index.computableFromRF(env, ctx, cfgOrFh, codeWithInfo, configKey, ops);
|
|
19
19
|
}
|
|
20
20
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.cjs","sources":["../../src/middle_layer/render.ts"],"sourcesContent":["import type { BlockCodeWithInfo, TypedConfigOrConfigLambda } from
|
|
1
|
+
{"version":3,"file":"render.cjs","sources":["../../src/middle_layer/render.ts"],"sourcesContent":["import type { BlockCodeWithInfo, TypedConfigOrConfigLambda } from \"@platforma-sdk/model\";\nimport { isConfigLambda } from \"@platforma-sdk/model\";\nimport type { Computable, ComputableRenderingOps } from \"@milaboratories/computable\";\nimport { computableFromCfg } from \"../cfg_render/executor\";\nimport type { MiddleLayerEnvironment } from \"./middle_layer\";\nimport { computableFromRF } from \"../js_render\";\nimport type { BlockContextAny } from \"./block_ctx\";\nimport { hasActiveCfgComponents } from \"../cfg_render/util\";\n\nexport function isActive(cfg: TypedConfigOrConfigLambda): boolean {\n if (isConfigLambda(cfg)) return cfg.isActive === true;\n else return hasActiveCfgComponents(cfg);\n}\n\nexport function computableFromCfgOrRF(\n env: MiddleLayerEnvironment,\n ctx: BlockContextAny,\n cfgOrFh: TypedConfigOrConfigLambda,\n codeWithInfo: BlockCodeWithInfo | undefined,\n configKey: string,\n ops: Partial<ComputableRenderingOps> = {},\n): Computable<unknown> {\n if (isConfigLambda(cfgOrFh)) {\n if (codeWithInfo === undefined) throw new Error(\"computableFromCfgOrRF: No code bundle.\");\n return computableFromRF(env, ctx, cfgOrFh, codeWithInfo, configKey, ops);\n } else return computableFromCfg(env.driverKit, ctx, cfgOrFh, ops);\n}\n"],"names":["isConfigLambda","hasActiveCfgComponents","computableFromRF","computableFromCfg"],"mappings":";;;;;;;AASM,SAAU,QAAQ,CAAC,GAA8B,EAAA;IACrD,IAAIA,oBAAc,CAAC,GAAG,CAAC;AAAE,QAAA,OAAO,GAAG,CAAC,QAAQ,KAAK,IAAI;;AAChD,QAAA,OAAOC,2BAAsB,CAAC,GAAG,CAAC;AACzC;AAEM,SAAU,qBAAqB,CACnC,GAA2B,EAC3B,GAAoB,EACpB,OAAkC,EAClC,YAA2C,EAC3C,SAAiB,EACjB,MAAuC,EAAE,EAAA;AAEzC,IAAA,IAAID,oBAAc,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,YAAY,KAAK,SAAS;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACzF,QAAA,OAAOE,sBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,CAAC;IAC1E;;AAAO,QAAA,OAAOC,0BAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC;AACnE;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { BlockCodeWithInfo, TypedConfigOrConfigLambda } from
|
|
2
|
-
import type { Computable, ComputableRenderingOps } from
|
|
3
|
-
import type { MiddleLayerEnvironment } from
|
|
4
|
-
import type { BlockContextAny } from
|
|
1
|
+
import type { BlockCodeWithInfo, TypedConfigOrConfigLambda } from "@platforma-sdk/model";
|
|
2
|
+
import type { Computable, ComputableRenderingOps } from "@milaboratories/computable";
|
|
3
|
+
import type { MiddleLayerEnvironment } from "./middle_layer";
|
|
4
|
+
import type { BlockContextAny } from "./block_ctx";
|
|
5
5
|
export declare function isActive(cfg: TypedConfigOrConfigLambda): boolean;
|
|
6
6
|
export declare function computableFromCfgOrRF(env: MiddleLayerEnvironment, ctx: BlockContextAny, cfgOrFh: TypedConfigOrConfigLambda, codeWithInfo: BlockCodeWithInfo | undefined, configKey: string, ops?: Partial<ComputableRenderingOps>): Computable<unknown>;
|
|
7
7
|
//# sourceMappingURL=render.d.ts.map
|
|
@@ -12,7 +12,7 @@ function isActive(cfg) {
|
|
|
12
12
|
function computableFromCfgOrRF(env, ctx, cfgOrFh, codeWithInfo, configKey, ops = {}) {
|
|
13
13
|
if (isConfigLambda(cfgOrFh)) {
|
|
14
14
|
if (codeWithInfo === undefined)
|
|
15
|
-
throw new Error(
|
|
15
|
+
throw new Error("computableFromCfgOrRF: No code bundle.");
|
|
16
16
|
return computableFromRF(env, ctx, cfgOrFh, codeWithInfo, configKey, ops);
|
|
17
17
|
}
|
|
18
18
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sources":["../../src/middle_layer/render.ts"],"sourcesContent":["import type { BlockCodeWithInfo, TypedConfigOrConfigLambda } from
|
|
1
|
+
{"version":3,"file":"render.js","sources":["../../src/middle_layer/render.ts"],"sourcesContent":["import type { BlockCodeWithInfo, TypedConfigOrConfigLambda } from \"@platforma-sdk/model\";\nimport { isConfigLambda } from \"@platforma-sdk/model\";\nimport type { Computable, ComputableRenderingOps } from \"@milaboratories/computable\";\nimport { computableFromCfg } from \"../cfg_render/executor\";\nimport type { MiddleLayerEnvironment } from \"./middle_layer\";\nimport { computableFromRF } from \"../js_render\";\nimport type { BlockContextAny } from \"./block_ctx\";\nimport { hasActiveCfgComponents } from \"../cfg_render/util\";\n\nexport function isActive(cfg: TypedConfigOrConfigLambda): boolean {\n if (isConfigLambda(cfg)) return cfg.isActive === true;\n else return hasActiveCfgComponents(cfg);\n}\n\nexport function computableFromCfgOrRF(\n env: MiddleLayerEnvironment,\n ctx: BlockContextAny,\n cfgOrFh: TypedConfigOrConfigLambda,\n codeWithInfo: BlockCodeWithInfo | undefined,\n configKey: string,\n ops: Partial<ComputableRenderingOps> = {},\n): Computable<unknown> {\n if (isConfigLambda(cfgOrFh)) {\n if (codeWithInfo === undefined) throw new Error(\"computableFromCfgOrRF: No code bundle.\");\n return computableFromRF(env, ctx, cfgOrFh, codeWithInfo, configKey, ops);\n } else return computableFromCfg(env.driverKit, ctx, cfgOrFh, ops);\n}\n"],"names":[],"mappings":";;;;;AASM,SAAU,QAAQ,CAAC,GAA8B,EAAA;IACrD,IAAI,cAAc,CAAC,GAAG,CAAC;AAAE,QAAA,OAAO,GAAG,CAAC,QAAQ,KAAK,IAAI;;AAChD,QAAA,OAAO,sBAAsB,CAAC,GAAG,CAAC;AACzC;AAEM,SAAU,qBAAqB,CACnC,GAA2B,EAC3B,GAAoB,EACpB,OAAkC,EAClC,YAA2C,EAC3C,SAAiB,EACjB,MAAuC,EAAE,EAAA;AAEzC,IAAA,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,YAAY,KAAK,SAAS;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACzF,QAAA,OAAO,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,CAAC;IAC1E;;AAAO,QAAA,OAAO,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC;AACnE;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MiddleLayer } from
|
|
2
|
-
import { Project } from
|
|
1
|
+
import { MiddleLayer } from "./middle_layer";
|
|
2
|
+
import { Project } from "./project";
|
|
3
3
|
export declare function withMl(cb: (ml: MiddleLayer, workFolder: string) => Promise<void>): Promise<void>;
|
|
4
4
|
export declare function awaitBlockDone(prj: Project, blockId: string, timeout?: number): Promise<void>;
|
|
5
5
|
//# sourceMappingURL=render.test.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { SynchronizedTreeOps, SynchronizedTreeState } from
|
|
2
|
-
import type { Computable } from
|
|
3
|
-
export type TemporalSynchronizedTreeOps = Pick<SynchronizedTreeOps,
|
|
1
|
+
import type { SynchronizedTreeOps, SynchronizedTreeState } from "@milaboratories/pl-tree";
|
|
2
|
+
import type { Computable } from "@milaboratories/computable";
|
|
3
|
+
export type TemporalSynchronizedTreeOps = Pick<SynchronizedTreeOps, "pollingInterval" | "stopPollingDelay" | "logStat" | "initialTreeLoadingTimeout">;
|
|
4
4
|
export interface TreeAndComputable<T, ST extends T = T> {
|
|
5
5
|
tree: SynchronizedTreeState;
|
|
6
6
|
computable: Computable<T, ST>;
|
|
@@ -8,13 +8,18 @@ var model = require('@platforma-sdk/model');
|
|
|
8
8
|
/** Returns block pack info along with string representation of block-pack resource id */
|
|
9
9
|
function getBlockPackInfo(prj, blockId) {
|
|
10
10
|
return util.ifNotUndef(prj.traverse({
|
|
11
|
-
field: project_model.projectFieldName(blockId,
|
|
12
|
-
assertFieldType:
|
|
11
|
+
field: project_model.projectFieldName(blockId, "blockPack"),
|
|
12
|
+
assertFieldType: "Dynamic",
|
|
13
13
|
errorIfFieldNotSet: true,
|
|
14
|
-
}, { field: plClient.Pl.HolderRefField, assertFieldType:
|
|
14
|
+
}, { field: plClient.Pl.HolderRefField, assertFieldType: "Input", errorIfFieldNotFound: true }), (bpAcc) => {
|
|
15
15
|
const info = bpAcc.getDataAsJson();
|
|
16
16
|
const cfg = model.extractConfig(info.config);
|
|
17
|
-
return {
|
|
17
|
+
return {
|
|
18
|
+
bpResourceId: bpAcc.resourceInfo.id,
|
|
19
|
+
bpId: bpAcc.resourceInfo.id.toString(),
|
|
20
|
+
info,
|
|
21
|
+
cfg,
|
|
22
|
+
};
|
|
18
23
|
});
|
|
19
24
|
}
|
|
20
25
|
|