@milaboratories/pl-middle-layer 1.42.1 → 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.
- package/dist/block_registry/index.d.ts +0 -1
- package/dist/block_registry/registry-v2-provider.cjs +22 -0
- package/dist/block_registry/registry-v2-provider.cjs.map +1 -0
- package/dist/block_registry/registry-v2-provider.d.ts +0 -1
- package/dist/block_registry/registry-v2-provider.js +20 -0
- package/dist/block_registry/registry-v2-provider.js.map +1 -0
- package/dist/block_registry/registry.cjs +231 -0
- package/dist/block_registry/registry.cjs.map +1 -0
- package/dist/block_registry/registry.d.ts +0 -1
- package/dist/block_registry/registry.js +227 -0
- package/dist/block_registry/registry.js.map +1 -0
- package/dist/block_registry/registry.test.d.ts +0 -1
- package/dist/block_registry/watcher.cjs +174 -0
- package/dist/block_registry/watcher.cjs.map +1 -0
- package/dist/block_registry/watcher.d.ts +0 -1
- package/dist/block_registry/watcher.js +171 -0
- package/dist/block_registry/watcher.js.map +1 -0
- package/dist/block_registry/well_known_registries.cjs +19 -0
- package/dist/block_registry/well_known_registries.cjs.map +1 -0
- package/dist/block_registry/well_known_registries.d.ts +0 -1
- package/dist/block_registry/well_known_registries.js +15 -0
- package/dist/block_registry/well_known_registries.js.map +1 -0
- package/dist/cfg_render/executor.cjs +159 -0
- package/dist/cfg_render/executor.cjs.map +1 -0
- package/dist/cfg_render/executor.d.ts +0 -1
- package/dist/cfg_render/executor.js +156 -0
- package/dist/cfg_render/executor.js.map +1 -0
- package/dist/cfg_render/executor.test.d.ts +0 -1
- package/dist/cfg_render/operation.d.ts +0 -1
- package/dist/cfg_render/renderer.cjs +528 -0
- package/dist/cfg_render/renderer.cjs.map +1 -0
- package/dist/cfg_render/renderer.d.ts +0 -1
- package/dist/cfg_render/renderer.js +525 -0
- package/dist/cfg_render/renderer.js.map +1 -0
- package/dist/cfg_render/traverse.cjs +65 -0
- package/dist/cfg_render/traverse.cjs.map +1 -0
- package/dist/cfg_render/traverse.d.ts +0 -1
- package/dist/cfg_render/traverse.js +63 -0
- package/dist/cfg_render/traverse.js.map +1 -0
- package/dist/cfg_render/util.cjs +32 -0
- package/dist/cfg_render/util.cjs.map +1 -0
- package/dist/cfg_render/util.d.ts +0 -1
- package/dist/cfg_render/util.js +28 -0
- package/dist/cfg_render/util.js.map +1 -0
- package/dist/debug/index.cjs +21 -0
- package/dist/debug/index.cjs.map +1 -0
- package/dist/debug/index.d.ts +0 -1
- package/dist/debug/index.js +19 -0
- package/dist/debug/index.js.map +1 -0
- package/dist/dev_env/index.cjs +59 -0
- package/dist/dev_env/index.cjs.map +1 -0
- package/dist/dev_env/index.d.ts +0 -1
- package/dist/dev_env/index.js +48 -0
- package/dist/dev_env/index.js.map +1 -0
- package/dist/dev_env/util.cjs +37 -0
- package/dist/dev_env/util.cjs.map +1 -0
- package/dist/dev_env/util.d.ts +0 -1
- package/dist/dev_env/util.js +16 -0
- package/dist/dev_env/util.js.map +1 -0
- package/dist/index.cjs +74 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +15 -75
- package/dist/index.js.map +1 -1
- package/dist/js_render/computable_context.cjs +525 -0
- package/dist/js_render/computable_context.cjs.map +1 -0
- package/dist/js_render/computable_context.d.ts +0 -1
- package/dist/js_render/computable_context.js +523 -0
- package/dist/js_render/computable_context.js.map +1 -0
- package/dist/js_render/context.cjs +229 -0
- package/dist/js_render/context.cjs.map +1 -0
- package/dist/js_render/context.d.ts +0 -1
- package/dist/js_render/context.js +226 -0
- package/dist/js_render/context.js.map +1 -0
- package/dist/js_render/index.cjs +163 -0
- package/dist/js_render/index.cjs.map +1 -0
- package/dist/js_render/index.d.ts +0 -1
- package/dist/js_render/index.js +160 -0
- package/dist/js_render/index.js.map +1 -0
- package/dist/middle_layer/active_cfg.cjs +37 -0
- package/dist/middle_layer/active_cfg.cjs.map +1 -0
- package/dist/middle_layer/active_cfg.d.ts +0 -1
- package/dist/middle_layer/active_cfg.js +35 -0
- package/dist/middle_layer/active_cfg.js.map +1 -0
- package/dist/middle_layer/block.cjs +51 -0
- package/dist/middle_layer/block.cjs.map +1 -0
- package/dist/middle_layer/block.d.ts +0 -1
- package/dist/middle_layer/block.js +48 -0
- package/dist/middle_layer/block.js.map +1 -0
- package/dist/middle_layer/block_ctx.cjs +87 -0
- package/dist/middle_layer/block_ctx.cjs.map +1 -0
- package/dist/middle_layer/block_ctx.d.ts +0 -1
- package/dist/middle_layer/block_ctx.js +84 -0
- package/dist/middle_layer/block_ctx.js.map +1 -0
- package/dist/middle_layer/block_ctx_unsafe.cjs +19 -0
- package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -0
- package/dist/middle_layer/block_ctx_unsafe.d.ts +0 -1
- package/dist/middle_layer/block_ctx_unsafe.js +16 -0
- package/dist/middle_layer/block_ctx_unsafe.js.map +1 -0
- package/dist/middle_layer/driver_kit.cjs +42 -0
- package/dist/middle_layer/driver_kit.cjs.map +1 -0
- package/dist/middle_layer/driver_kit.d.ts +0 -1
- package/dist/middle_layer/driver_kit.js +40 -0
- package/dist/middle_layer/driver_kit.js.map +1 -0
- package/dist/middle_layer/frontend_path.cjs +64 -0
- package/dist/middle_layer/frontend_path.cjs.map +1 -0
- package/dist/middle_layer/frontend_path.d.ts +0 -1
- package/dist/middle_layer/frontend_path.js +62 -0
- package/dist/middle_layer/frontend_path.js.map +1 -0
- package/dist/middle_layer/index.d.ts +0 -1
- package/dist/middle_layer/middle_layer.cjs +226 -0
- package/dist/middle_layer/middle_layer.cjs.map +1 -0
- package/dist/middle_layer/middle_layer.d.ts +0 -1
- package/dist/middle_layer/middle_layer.js +224 -0
- package/dist/middle_layer/middle_layer.js.map +1 -0
- package/dist/middle_layer/navigation_states.cjs +41 -0
- package/dist/middle_layer/navigation_states.cjs.map +1 -0
- package/dist/middle_layer/navigation_states.d.ts +0 -1
- package/dist/middle_layer/navigation_states.js +39 -0
- package/dist/middle_layer/navigation_states.js.map +1 -0
- package/dist/middle_layer/ops.cjs +75 -0
- package/dist/middle_layer/ops.cjs.map +1 -0
- package/dist/middle_layer/ops.d.ts +0 -1
- package/dist/middle_layer/ops.js +70 -0
- package/dist/middle_layer/ops.js.map +1 -0
- package/dist/middle_layer/project.cjs +446 -0
- package/dist/middle_layer/project.cjs.map +1 -0
- package/dist/middle_layer/project.d.ts +0 -1
- package/dist/middle_layer/project.js +444 -0
- package/dist/middle_layer/project.js.map +1 -0
- package/dist/middle_layer/project_list.cjs +53 -0
- package/dist/middle_layer/project_list.cjs.map +1 -0
- package/dist/middle_layer/project_list.d.ts +0 -1
- package/dist/middle_layer/project_list.js +48 -0
- package/dist/middle_layer/project_list.js.map +1 -0
- package/dist/middle_layer/project_overview.cjs +225 -0
- package/dist/middle_layer/project_overview.cjs.map +1 -0
- package/dist/middle_layer/project_overview.d.ts +0 -1
- package/dist/middle_layer/project_overview.js +204 -0
- package/dist/middle_layer/project_overview.js.map +1 -0
- package/dist/middle_layer/project_overview_light.cjs +20 -0
- package/dist/middle_layer/project_overview_light.cjs.map +1 -0
- package/dist/middle_layer/project_overview_light.d.ts +0 -1
- package/dist/middle_layer/project_overview_light.js +18 -0
- package/dist/middle_layer/project_overview_light.js.map +1 -0
- package/dist/middle_layer/render.cjs +26 -0
- package/dist/middle_layer/render.cjs.map +1 -0
- package/dist/middle_layer/render.d.ts +0 -1
- package/dist/middle_layer/render.js +23 -0
- package/dist/middle_layer/render.js.map +1 -0
- package/dist/middle_layer/render.test.d.ts +0 -1
- package/dist/middle_layer/types.d.ts +0 -1
- package/dist/middle_layer/util.cjs +22 -0
- package/dist/middle_layer/util.cjs.map +1 -0
- package/dist/middle_layer/util.d.ts +0 -1
- package/dist/middle_layer/util.js +20 -0
- package/dist/middle_layer/util.js.map +1 -0
- package/dist/model/args.cjs +62 -0
- package/dist/model/args.cjs.map +1 -0
- package/dist/model/args.d.ts +0 -1
- package/dist/model/args.js +58 -0
- package/dist/model/args.js.map +1 -0
- package/dist/model/block_pack.d.ts +0 -1
- package/dist/model/block_pack_spec.cjs +11 -0
- package/dist/model/block_pack_spec.cjs.map +1 -0
- package/dist/model/block_pack_spec.d.ts +0 -1
- package/dist/model/block_pack_spec.js +8 -0
- package/dist/model/block_pack_spec.js.map +1 -0
- package/dist/model/frontend.d.ts +0 -1
- package/dist/model/index.d.ts +0 -1
- package/dist/model/project_helper.cjs +36 -0
- package/dist/model/project_helper.cjs.map +1 -0
- package/dist/model/project_helper.d.ts +0 -1
- package/dist/model/project_helper.js +34 -0
- package/dist/model/project_helper.js.map +1 -0
- package/dist/model/project_model.cjs +74 -0
- package/dist/model/project_model.cjs.map +1 -0
- package/dist/model/project_model.d.ts +0 -1
- package/dist/model/project_model.js +54 -0
- package/dist/model/project_model.js.map +1 -0
- package/dist/model/project_model.test.d.ts +0 -1
- package/dist/model/project_model_util.cjs +176 -0
- package/dist/model/project_model_util.cjs.map +1 -0
- package/dist/model/project_model_util.d.ts +0 -1
- package/dist/model/project_model_util.js +170 -0
- package/dist/model/project_model_util.js.map +1 -0
- package/dist/model/project_model_util.test.d.ts +0 -1
- package/dist/model/project_model_v1.cjs +9 -0
- package/dist/model/project_model_v1.cjs.map +1 -0
- package/dist/model/project_model_v1.d.ts +0 -1
- package/dist/model/project_model_v1.js +6 -0
- package/dist/model/project_model_v1.js.map +1 -0
- package/dist/model/template_spec.d.ts +0 -1
- package/dist/mutator/block-pack/block_pack.cjs +233 -0
- package/dist/mutator/block-pack/block_pack.cjs.map +1 -0
- package/dist/mutator/block-pack/block_pack.d.ts +0 -1
- package/dist/mutator/block-pack/block_pack.js +227 -0
- package/dist/mutator/block-pack/block_pack.js.map +1 -0
- package/dist/mutator/block-pack/block_pack.test.d.ts +0 -1
- package/dist/mutator/block-pack/frontend.cjs +21 -0
- package/dist/mutator/block-pack/frontend.cjs.map +1 -0
- package/dist/mutator/block-pack/frontend.d.ts +0 -1
- package/dist/mutator/block-pack/frontend.js +19 -0
- package/dist/mutator/block-pack/frontend.js.map +1 -0
- package/dist/mutator/context_export.cjs +26 -0
- package/dist/mutator/context_export.cjs.map +1 -0
- package/dist/mutator/context_export.d.ts +2 -3
- package/dist/mutator/context_export.js +23 -0
- package/dist/mutator/context_export.js.map +1 -0
- package/dist/mutator/migration.cjs +57 -0
- package/dist/mutator/migration.cjs.map +1 -0
- package/dist/mutator/migration.d.ts +0 -1
- package/dist/mutator/migration.js +55 -0
- package/dist/mutator/migration.js.map +1 -0
- package/dist/mutator/project.cjs +997 -0
- package/dist/mutator/project.cjs.map +1 -0
- package/dist/mutator/project.d.ts +0 -1
- package/dist/mutator/project.js +992 -0
- package/dist/mutator/project.js.map +1 -0
- package/dist/mutator/project.test.d.ts +0 -1
- package/dist/mutator/template/direct_template_loader.cjs +146 -0
- package/dist/mutator/template/direct_template_loader.cjs.map +1 -0
- package/dist/mutator/template/direct_template_loader.d.ts +0 -1
- package/dist/mutator/template/direct_template_loader.js +143 -0
- package/dist/mutator/template/direct_template_loader.js.map +1 -0
- package/dist/mutator/template/direct_template_loader_v3.cjs +139 -0
- package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -0
- package/dist/mutator/template/direct_template_loader_v3.d.ts +0 -1
- package/dist/mutator/template/direct_template_loader_v3.js +137 -0
- package/dist/mutator/template/direct_template_loader_v3.js.map +1 -0
- package/dist/mutator/template/render_block.cjs +43 -0
- package/dist/mutator/template/render_block.cjs.map +1 -0
- package/dist/mutator/template/render_block.d.ts +0 -1
- package/dist/mutator/template/render_block.js +34 -0
- package/dist/mutator/template/render_block.js.map +1 -0
- package/dist/mutator/template/render_template.cjs +35 -0
- package/dist/mutator/template/render_template.cjs.map +1 -0
- package/dist/mutator/template/render_template.d.ts +0 -1
- package/dist/mutator/template/render_template.js +33 -0
- package/dist/mutator/template/render_template.js.map +1 -0
- package/dist/mutator/template/template_loading.cjs +71 -0
- package/dist/mutator/template/template_loading.cjs.map +1 -0
- package/dist/mutator/template/template_loading.d.ts +0 -1
- package/dist/mutator/template/template_loading.js +60 -0
- package/dist/mutator/template/template_loading.js.map +1 -0
- package/dist/mutator/template/template_render.test.d.ts +0 -1
- package/dist/network_check/network_check.cjs +267 -0
- package/dist/network_check/network_check.cjs.map +1 -0
- package/dist/network_check/network_check.d.ts +0 -1
- package/dist/network_check/network_check.js +264 -0
- package/dist/network_check/network_check.js.map +1 -0
- package/dist/network_check/network_check.test.d.ts +0 -1
- package/dist/network_check/pings.cjs +107 -0
- package/dist/network_check/pings.cjs.map +1 -0
- package/dist/network_check/pings.d.ts +0 -1
- package/dist/network_check/pings.js +96 -0
- package/dist/network_check/pings.js.map +1 -0
- package/dist/network_check/template.cjs +318 -0
- package/dist/network_check/template.cjs.map +1 -0
- package/dist/network_check/template.d.ts +0 -1
- package/dist/network_check/template.js +302 -0
- package/dist/network_check/template.js.map +1 -0
- package/dist/network_check/template.test.d.ts +0 -1
- package/dist/network_check/test_utils.d.ts +0 -1
- 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
- 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
- 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
- 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
- package/dist/pool/data.cjs +298 -0
- package/dist/pool/data.cjs.map +1 -0
- package/dist/pool/data.d.ts +7 -9
- package/dist/pool/data.js +282 -0
- package/dist/pool/data.js.map +1 -0
- package/dist/pool/driver.cjs +620 -0
- package/dist/pool/driver.cjs.map +1 -0
- package/dist/pool/driver.d.ts +0 -1
- package/dist/pool/driver.js +598 -0
- package/dist/pool/driver.js.map +1 -0
- package/dist/pool/index.d.ts +0 -1
- package/dist/pool/p_object_collection.cjs +87 -0
- package/dist/pool/p_object_collection.cjs.map +1 -0
- package/dist/pool/p_object_collection.d.ts +0 -1
- package/dist/pool/p_object_collection.js +84 -0
- package/dist/pool/p_object_collection.js.map +1 -0
- package/dist/pool/ref_count_pool.cjs +58 -0
- package/dist/pool/ref_count_pool.cjs.map +1 -0
- package/dist/pool/ref_count_pool.d.ts +0 -1
- package/dist/pool/ref_count_pool.js +56 -0
- package/dist/pool/ref_count_pool.js.map +1 -0
- package/dist/pool/result_pool.cjs +265 -0
- package/dist/pool/result_pool.cjs.map +1 -0
- package/dist/pool/result_pool.d.ts +0 -1
- package/dist/pool/result_pool.js +263 -0
- package/dist/pool/result_pool.js.map +1 -0
- package/dist/test/block_packs.d.ts +0 -1
- package/dist/test/explicit_templates.d.ts +0 -1
- package/dist/test/known_templates.d.ts +0 -1
- package/dist/test_env.d.ts +0 -1
- package/dist/worker/WorkerManager.cjs +53 -0
- package/dist/worker/WorkerManager.cjs.map +1 -0
- package/dist/worker/WorkerManager.d.ts +0 -1
- package/dist/worker/WorkerManager.js +51 -0
- package/dist/worker/WorkerManager.js.map +1 -0
- package/dist/worker/worker.cjs +16 -0
- package/dist/worker/worker.cjs.map +1 -0
- package/dist/worker/worker.d.ts +0 -1
- package/dist/worker/worker.js +14 -0
- package/dist/worker/worker.js.map +1 -0
- package/dist/worker/workerApi.cjs +20 -0
- package/dist/worker/workerApi.cjs.map +1 -0
- package/dist/worker/workerApi.d.ts +1 -3
- package/dist/worker/workerApi.js +18 -0
- package/dist/worker/workerApi.js.map +1 -0
- package/package.json +26 -34
- package/src/cfg_render/executor.test.ts +5 -4
- package/src/model/project_model.test.ts +3 -3
- package/src/model/project_model_util.test.ts +3 -2
- package/src/mutator/block-pack/block_pack.test.ts +5 -4
- package/src/mutator/project.test.ts +4 -4
- package/src/mutator/template/template_render.test.ts +7 -6
- package/src/network_check/network_check.test.ts +1 -0
- package/src/network_check/test_utils.ts +2 -0
- package/src/worker/WorkerManager.ts +6 -8
- package/dist/block_registry/index.d.ts.map +0 -1
- package/dist/block_registry/registry-v2-provider.d.ts.map +0 -1
- package/dist/block_registry/registry.d.ts.map +0 -1
- package/dist/block_registry/registry.test.d.ts.map +0 -1
- package/dist/block_registry/watcher.d.ts.map +0 -1
- package/dist/block_registry/well_known_registries.d.ts.map +0 -1
- package/dist/cfg_render/executor.d.ts.map +0 -1
- package/dist/cfg_render/executor.test.d.ts.map +0 -1
- package/dist/cfg_render/operation.d.ts.map +0 -1
- package/dist/cfg_render/renderer.d.ts.map +0 -1
- package/dist/cfg_render/traverse.d.ts.map +0 -1
- package/dist/cfg_render/util.d.ts.map +0 -1
- package/dist/debug/index.d.ts.map +0 -1
- package/dist/dev_env/index.d.ts.map +0 -1
- package/dist/dev_env/util.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs +0 -6742
- package/dist/index.mjs.map +0 -1
- package/dist/js_render/computable_context.d.ts.map +0 -1
- package/dist/js_render/context.d.ts.map +0 -1
- package/dist/js_render/index.d.ts.map +0 -1
- package/dist/middle_layer/active_cfg.d.ts.map +0 -1
- package/dist/middle_layer/block.d.ts.map +0 -1
- package/dist/middle_layer/block_ctx.d.ts.map +0 -1
- package/dist/middle_layer/block_ctx_unsafe.d.ts.map +0 -1
- package/dist/middle_layer/driver_kit.d.ts.map +0 -1
- package/dist/middle_layer/frontend_path.d.ts.map +0 -1
- package/dist/middle_layer/index.d.ts.map +0 -1
- package/dist/middle_layer/middle_layer.d.ts.map +0 -1
- package/dist/middle_layer/navigation_states.d.ts.map +0 -1
- package/dist/middle_layer/ops.d.ts.map +0 -1
- package/dist/middle_layer/project.d.ts.map +0 -1
- package/dist/middle_layer/project_list.d.ts.map +0 -1
- package/dist/middle_layer/project_overview.d.ts.map +0 -1
- package/dist/middle_layer/project_overview_light.d.ts.map +0 -1
- package/dist/middle_layer/render.d.ts.map +0 -1
- package/dist/middle_layer/render.test.d.ts.map +0 -1
- package/dist/middle_layer/types.d.ts.map +0 -1
- package/dist/middle_layer/util.d.ts.map +0 -1
- package/dist/model/args.d.ts.map +0 -1
- package/dist/model/block_pack.d.ts.map +0 -1
- package/dist/model/block_pack_spec.d.ts.map +0 -1
- package/dist/model/frontend.d.ts.map +0 -1
- package/dist/model/index.d.ts.map +0 -1
- package/dist/model/project_helper.d.ts.map +0 -1
- package/dist/model/project_model.d.ts.map +0 -1
- package/dist/model/project_model.test.d.ts.map +0 -1
- package/dist/model/project_model_util.d.ts.map +0 -1
- package/dist/model/project_model_util.test.d.ts.map +0 -1
- package/dist/model/project_model_v1.d.ts.map +0 -1
- package/dist/model/template_spec.d.ts.map +0 -1
- package/dist/mutator/block-pack/block_pack.d.ts.map +0 -1
- package/dist/mutator/block-pack/block_pack.test.d.ts.map +0 -1
- package/dist/mutator/block-pack/frontend.d.ts.map +0 -1
- package/dist/mutator/context_export.d.ts.map +0 -1
- package/dist/mutator/migration.d.ts.map +0 -1
- package/dist/mutator/project.d.ts.map +0 -1
- package/dist/mutator/project.test.d.ts.map +0 -1
- package/dist/mutator/template/direct_template_loader.d.ts.map +0 -1
- package/dist/mutator/template/direct_template_loader_v3.d.ts.map +0 -1
- package/dist/mutator/template/render_block.d.ts.map +0 -1
- package/dist/mutator/template/render_template.d.ts.map +0 -1
- package/dist/mutator/template/template_loading.d.ts.map +0 -1
- package/dist/mutator/template/template_render.test.d.ts.map +0 -1
- package/dist/network_check/network_check.d.ts.map +0 -1
- package/dist/network_check/network_check.test.d.ts.map +0 -1
- package/dist/network_check/pings.d.ts.map +0 -1
- package/dist/network_check/template.d.ts.map +0 -1
- package/dist/network_check/template.test.d.ts.map +0 -1
- package/dist/network_check/test_utils.d.ts.map +0 -1
- package/dist/pool/data.d.ts.map +0 -1
- package/dist/pool/driver.d.ts.map +0 -1
- package/dist/pool/index.d.ts.map +0 -1
- package/dist/pool/p_object_collection.d.ts.map +0 -1
- package/dist/pool/ref_count_pool.d.ts.map +0 -1
- package/dist/pool/result_pool.d.ts.map +0 -1
- package/dist/test/block_packs.d.ts.map +0 -1
- package/dist/test/explicit_templates.d.ts.map +0 -1
- package/dist/test/known_templates.d.ts.map +0 -1
- package/dist/test_env.d.ts.map +0 -1
- package/dist/worker/WorkerManager.d.ts.map +0 -1
- package/dist/worker/worker.d.ts.map +0 -1
- package/dist/worker/workerApi.d.ts.map +0 -1
- package/dist/worker.js +0 -2
- package/dist/worker.js.map +0 -1
- package/dist/worker.mjs +0 -20
- 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
|