@milaboratories/pl-middle-layer 1.48.11 → 1.48.13
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/_virtual/_@oxc-project_runtime@0.114.0/helpers/usingCtx.cjs +59 -0
- package/dist/_virtual/_@oxc-project_runtime@0.114.0/helpers/usingCtx.js +58 -0
- package/dist/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/block_registry/index.cjs +3 -0
- package/dist/block_registry/index.d.ts +3 -4
- package/dist/block_registry/index.js +3 -0
- package/dist/block_registry/registry-v2-provider.cjs +18 -19
- package/dist/block_registry/registry-v2-provider.cjs.map +1 -1
- package/dist/block_registry/registry-v2-provider.d.ts +10 -6
- package/dist/block_registry/registry-v2-provider.js +17 -17
- package/dist/block_registry/registry-v2-provider.js.map +1 -1
- package/dist/block_registry/registry.cjs +188 -219
- package/dist/block_registry/registry.cjs.map +1 -1
- package/dist/block_registry/registry.d.ts +18 -14
- package/dist/block_registry/registry.js +184 -217
- package/dist/block_registry/registry.js.map +1 -1
- package/dist/block_registry/watcher.cjs +141 -170
- package/dist/block_registry/watcher.cjs.map +1 -1
- package/dist/block_registry/watcher.d.ts +26 -24
- package/dist/block_registry/watcher.js +139 -168
- package/dist/block_registry/watcher.js.map +1 -1
- package/dist/block_registry/well_known_registries.cjs +9 -8
- package/dist/block_registry/well_known_registries.cjs.map +1 -1
- package/dist/block_registry/well_known_registries.d.ts +8 -4
- package/dist/block_registry/well_known_registries.js +9 -7
- package/dist/block_registry/well_known_registries.js.map +1 -1
- package/dist/cfg_render/executor.cjs +136 -137
- package/dist/cfg_render/executor.cjs.map +1 -1
- package/dist/cfg_render/executor.js +133 -135
- package/dist/cfg_render/executor.js.map +1 -1
- package/dist/cfg_render/renderer.cjs +354 -462
- package/dist/cfg_render/renderer.cjs.map +1 -1
- package/dist/cfg_render/renderer.js +353 -460
- package/dist/cfg_render/renderer.js.map +1 -1
- package/dist/cfg_render/traverse.cjs +58 -60
- package/dist/cfg_render/traverse.cjs.map +1 -1
- package/dist/cfg_render/traverse.js +57 -58
- package/dist/cfg_render/traverse.js.map +1 -1
- package/dist/cfg_render/util.cjs +14 -19
- package/dist/cfg_render/util.cjs.map +1 -1
- package/dist/cfg_render/util.js +14 -17
- package/dist/cfg_render/util.js.map +1 -1
- package/dist/debug/index.cjs +13 -17
- package/dist/debug/index.cjs.map +1 -1
- package/dist/debug/index.js +13 -16
- package/dist/debug/index.js.map +1 -1
- package/dist/dev_env/index.cjs +60 -44
- package/dist/dev_env/index.cjs.map +1 -1
- package/dist/dev_env/index.js +57 -33
- package/dist/dev_env/index.js.map +1 -1
- package/dist/dev_env/util.cjs +12 -32
- package/dist/dev_env/util.cjs.map +1 -1
- package/dist/dev_env/util.js +10 -11
- package/dist/dev_env/util.js.map +1 -1
- package/dist/index.cjs +75 -74
- package/dist/index.d.ts +21 -13
- package/dist/index.js +25 -18
- package/dist/js_render/computable_context.cjs +432 -568
- package/dist/js_render/computable_context.cjs.map +1 -1
- package/dist/js_render/computable_context.js +431 -566
- package/dist/js_render/computable_context.js.map +1 -1
- package/dist/js_render/context.cjs +184 -237
- package/dist/js_render/context.cjs.map +1 -1
- package/dist/js_render/context.js +184 -235
- package/dist/js_render/context.js.map +1 -1
- package/dist/js_render/index.cjs +137 -156
- package/dist/js_render/index.cjs.map +1 -1
- package/dist/js_render/index.js +136 -154
- package/dist/js_render/index.js.map +1 -1
- package/dist/middle_layer/active_cfg.cjs +28 -35
- package/dist/middle_layer/active_cfg.cjs.map +1 -1
- package/dist/middle_layer/active_cfg.js +27 -33
- package/dist/middle_layer/active_cfg.js.map +1 -1
- package/dist/middle_layer/block.cjs +36 -42
- package/dist/middle_layer/block.cjs.map +1 -1
- package/dist/middle_layer/block.js +35 -40
- package/dist/middle_layer/block.js.map +1 -1
- package/dist/middle_layer/block_ctx.cjs +91 -133
- package/dist/middle_layer/block_ctx.cjs.map +1 -1
- package/dist/middle_layer/block_ctx.js +90 -131
- package/dist/middle_layer/block_ctx.js.map +1 -1
- package/dist/middle_layer/block_ctx_unsafe.cjs +20 -19
- package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -1
- package/dist/middle_layer/block_ctx_unsafe.js +20 -18
- package/dist/middle_layer/block_ctx_unsafe.js.map +1 -1
- package/dist/middle_layer/driver_kit.cjs +47 -51
- package/dist/middle_layer/driver_kit.cjs.map +1 -1
- package/dist/middle_layer/driver_kit.d.ts +31 -27
- package/dist/middle_layer/driver_kit.js +46 -49
- package/dist/middle_layer/driver_kit.js.map +1 -1
- package/dist/middle_layer/frontend_path.cjs +49 -55
- package/dist/middle_layer/frontend_path.cjs.map +1 -1
- package/dist/middle_layer/frontend_path.js +48 -53
- package/dist/middle_layer/frontend_path.js.map +1 -1
- package/dist/middle_layer/index.cjs +4 -0
- package/dist/middle_layer/index.d.ts +4 -5
- package/dist/middle_layer/index.js +4 -0
- package/dist/middle_layer/middle_layer.cjs +216 -245
- package/dist/middle_layer/middle_layer.cjs.map +1 -1
- package/dist/middle_layer/middle_layer.d.ts +95 -91
- package/dist/middle_layer/middle_layer.js +215 -243
- package/dist/middle_layer/middle_layer.js.map +1 -1
- package/dist/middle_layer/navigation_states.cjs +45 -38
- package/dist/middle_layer/navigation_states.cjs.map +1 -1
- package/dist/middle_layer/navigation_states.js +44 -36
- package/dist/middle_layer/navigation_states.js.map +1 -1
- package/dist/middle_layer/ops.cjs +56 -57
- package/dist/middle_layer/ops.cjs.map +1 -1
- package/dist/middle_layer/ops.d.ts +86 -96
- package/dist/middle_layer/ops.js +54 -55
- package/dist/middle_layer/ops.js.map +1 -1
- package/dist/middle_layer/project.cjs +497 -527
- package/dist/middle_layer/project.cjs.map +1 -1
- package/dist/middle_layer/project.d.ts +155 -152
- package/dist/middle_layer/project.js +494 -525
- package/dist/middle_layer/project.js.map +1 -1
- package/dist/middle_layer/project_list.cjs +45 -43
- package/dist/middle_layer/project_list.cjs.map +1 -1
- package/dist/middle_layer/project_list.js +45 -41
- package/dist/middle_layer/project_list.js.map +1 -1
- package/dist/middle_layer/project_overview.cjs +202 -240
- package/dist/middle_layer/project_overview.cjs.map +1 -1
- package/dist/middle_layer/project_overview.js +201 -238
- package/dist/middle_layer/project_overview.js.map +1 -1
- package/dist/middle_layer/project_overview_light.cjs +11 -14
- package/dist/middle_layer/project_overview_light.cjs.map +1 -1
- package/dist/middle_layer/project_overview_light.js +10 -12
- package/dist/middle_layer/project_overview_light.js.map +1 -1
- package/dist/middle_layer/render.cjs +14 -18
- package/dist/middle_layer/render.cjs.map +1 -1
- package/dist/middle_layer/render.js +13 -16
- package/dist/middle_layer/render.js.map +1 -1
- package/dist/middle_layer/types.d.ts +7 -10
- package/dist/middle_layer/util.cjs +26 -21
- package/dist/middle_layer/util.cjs.map +1 -1
- package/dist/middle_layer/util.js +25 -19
- package/dist/middle_layer/util.js.map +1 -1
- package/dist/model/args.cjs +44 -53
- package/dist/model/args.cjs.map +1 -1
- package/dist/model/args.js +44 -51
- package/dist/model/args.js.map +1 -1
- package/dist/model/block_pack_spec.cjs +9 -5
- package/dist/model/block_pack_spec.cjs.map +1 -1
- package/dist/model/block_pack_spec.d.ts +34 -30
- package/dist/model/block_pack_spec.js +9 -4
- package/dist/model/block_pack_spec.js.map +1 -1
- package/dist/model/frontend.d.ts +8 -5
- package/dist/model/index.d.ts +2 -3
- package/dist/model/project_helper.cjs +154 -193
- package/dist/model/project_helper.cjs.map +1 -1
- package/dist/model/project_helper.d.ts +96 -92
- package/dist/model/project_helper.js +153 -191
- package/dist/model/project_helper.js.map +1 -1
- package/dist/model/project_model.cjs +33 -32
- package/dist/model/project_model.cjs.map +1 -1
- package/dist/model/project_model.d.ts +13 -64
- package/dist/model/project_model.js +34 -30
- package/dist/model/project_model.js.map +1 -1
- package/dist/model/project_model_util.cjs +119 -158
- package/dist/model/project_model_util.cjs.map +1 -1
- package/dist/model/project_model_util.js +120 -156
- package/dist/model/project_model_util.js.map +1 -1
- package/dist/model/project_model_v1.cjs +3 -2
- package/dist/model/project_model_v1.cjs.map +1 -1
- package/dist/model/project_model_v1.js +3 -1
- package/dist/model/project_model_v1.js.map +1 -1
- package/dist/model/template_spec.d.ts +20 -16
- package/dist/mutator/block-pack/block_pack.cjs +200 -223
- package/dist/mutator/block-pack/block_pack.cjs.map +1 -1
- package/dist/mutator/block-pack/block_pack.d.ts +20 -19
- package/dist/mutator/block-pack/block_pack.js +199 -221
- package/dist/mutator/block-pack/block_pack.js.map +1 -1
- package/dist/mutator/block-pack/frontend.cjs +14 -16
- package/dist/mutator/block-pack/frontend.cjs.map +1 -1
- package/dist/mutator/block-pack/frontend.js +13 -14
- package/dist/mutator/block-pack/frontend.js.map +1 -1
- package/dist/mutator/context_export.cjs +18 -17
- package/dist/mutator/context_export.cjs.map +1 -1
- package/dist/mutator/context_export.js +17 -15
- package/dist/mutator/context_export.js.map +1 -1
- package/dist/mutator/migration.cjs +86 -112
- package/dist/mutator/migration.cjs.map +1 -1
- package/dist/mutator/migration.js +85 -110
- package/dist/mutator/migration.js.map +1 -1
- package/dist/mutator/project.cjs +903 -1240
- package/dist/mutator/project.cjs.map +1 -1
- package/dist/mutator/project.js +901 -1237
- package/dist/mutator/project.js.map +1 -1
- package/dist/mutator/template/direct_template_loader.cjs +104 -130
- package/dist/mutator/template/direct_template_loader.cjs.map +1 -1
- package/dist/mutator/template/direct_template_loader.js +103 -128
- package/dist/mutator/template/direct_template_loader.js.map +1 -1
- package/dist/mutator/template/direct_template_loader_v3.cjs +104 -124
- package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -1
- package/dist/mutator/template/direct_template_loader_v3.js +103 -122
- package/dist/mutator/template/direct_template_loader_v3.js.map +1 -1
- package/dist/mutator/template/render_block.cjs +26 -30
- package/dist/mutator/template/render_block.cjs.map +1 -1
- package/dist/mutator/template/render_block.js +26 -23
- package/dist/mutator/template/render_block.js.map +1 -1
- package/dist/mutator/template/render_template.cjs +25 -25
- package/dist/mutator/template/render_template.cjs.map +1 -1
- package/dist/mutator/template/render_template.d.ts +6 -3
- package/dist/mutator/template/render_template.js +24 -23
- package/dist/mutator/template/render_template.js.map +1 -1
- package/dist/mutator/template/template_loading.cjs +42 -46
- package/dist/mutator/template/template_loading.cjs.map +1 -1
- package/dist/mutator/template/template_loading.d.ts +16 -12
- package/dist/mutator/template/template_loading.js +40 -44
- package/dist/mutator/template/template_loading.js.map +1 -1
- package/dist/network_check/network_check.cjs +149 -194
- package/dist/network_check/network_check.cjs.map +1 -1
- package/dist/network_check/network_check.d.ts +50 -66
- package/dist/network_check/network_check.js +146 -190
- package/dist/network_check/network_check.js.map +1 -1
- package/dist/network_check/pings.cjs +71 -69
- package/dist/network_check/pings.cjs.map +1 -1
- package/dist/network_check/pings.js +71 -65
- package/dist/network_check/pings.js.map +1 -1
- package/dist/network_check/template.cjs +256 -273
- package/dist/network_check/template.cjs.map +1 -1
- package/dist/network_check/template.js +253 -265
- package/dist/network_check/template.js.map +1 -1
- package/dist/pool/data.cjs +205 -226
- package/dist/pool/data.cjs.map +1 -1
- package/dist/pool/data.d.ts +10 -27
- package/dist/pool/data.js +196 -209
- package/dist/pool/data.js.map +1 -1
- package/dist/pool/driver.cjs +180 -207
- package/dist/pool/driver.cjs.map +1 -1
- package/dist/pool/driver.d.ts +12 -17
- package/dist/pool/driver.js +178 -205
- package/dist/pool/driver.js.map +1 -1
- package/dist/pool/index.cjs +2 -0
- package/dist/pool/index.d.ts +2 -3
- package/dist/pool/index.js +2 -0
- package/dist/pool/p_object_collection.cjs +67 -79
- package/dist/pool/p_object_collection.cjs.map +1 -1
- package/dist/pool/p_object_collection.d.ts +7 -28
- package/dist/pool/p_object_collection.js +65 -77
- package/dist/pool/p_object_collection.js.map +1 -1
- package/dist/pool/result_pool.cjs +217 -262
- package/dist/pool/result_pool.cjs.map +1 -1
- package/dist/pool/result_pool.d.ts +4 -27
- package/dist/pool/result_pool.js +216 -260
- package/dist/pool/result_pool.js.map +1 -1
- package/dist/worker/WorkerManager.cjs +51 -49
- package/dist/worker/WorkerManager.cjs.map +1 -1
- package/dist/worker/WorkerManager.js +49 -47
- package/dist/worker/WorkerManager.js.map +1 -1
- package/dist/worker/worker.cjs +19 -15
- package/dist/worker/worker.cjs.map +1 -1
- package/dist/worker/worker.d.ts +1 -2
- package/dist/worker/worker.js +18 -13
- package/dist/worker/worker.js.map +1 -1
- package/dist/worker/workerApi.cjs +14 -18
- package/dist/worker/workerApi.cjs.map +1 -1
- package/dist/worker/workerApi.js +13 -16
- package/dist/worker/workerApi.js.map +1 -1
- package/package.json +24 -24
- package/src/mutator/template/template_render.test.ts +22 -18
- package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.cjs +0 -77
- package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.cjs.map +0 -1
- package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.js +0 -74
- package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.cjs +0 -162
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.js +0 -160
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.cjs +0 -576
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.js +0 -574
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.cjs +0 -337
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.js +0 -335
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.cjs +0 -22
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.js +0 -20
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.cjs +0 -73
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.js +0 -71
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.cjs +0 -78
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.js +0 -76
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.cjs +0 -23
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.js +0 -21
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.cjs +0 -21
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.js +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.cjs +0 -74
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.js +0 -72
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.cjs +0 -35
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.js +0 -33
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.cjs +0 -32
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.js +0 -30
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.cjs +0 -22
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.js +0 -20
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.cjs +0 -26
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.js +0 -24
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.cjs +0 -19
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.js +0 -17
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.cjs +0 -22
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.js +0 -20
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.cjs +0 -145
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.js +0 -143
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.cjs +0 -49
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.js +0 -47
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.cjs +0 -23
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.js +0 -21
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.cjs +0 -37
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.js +0 -35
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.cjs +0 -54
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.js +0 -52
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.cjs +0 -29
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.js +0 -27
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.cjs +0 -240
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.js +0 -238
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.cjs +0 -20
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.js +0 -18
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.cjs +0 -23
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.js +0 -21
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.cjs +0 -20
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.js +0 -18
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.cjs +0 -42
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.js +0 -40
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.cjs +0 -41
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.js +0 -39
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.cjs +0 -79
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.js +0 -77
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.cjs +0 -103
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.js +0 -101
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.cjs +0 -64
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.js +0 -62
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.cjs +0 -266
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.js +0 -264
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.cjs +0 -24
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.js +0 -22
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.js.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.cjs +0 -27
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.cjs.map +0 -1
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.js +0 -25
- package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.js.map +0 -1
- package/dist/_virtual/index.cjs +0 -8
- package/dist/_virtual/index.cjs.map +0 -1
- package/dist/_virtual/index.js +0 -6
- package/dist/_virtual/index.js.map +0 -1
- package/dist/_virtual/re.cjs +0 -6
- package/dist/_virtual/re.cjs.map +0 -1
- package/dist/_virtual/re.js +0 -4
- package/dist/_virtual/re.js.map +0 -1
- 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 +0 -2
- 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 +0 -9
- package/dist/cfg_render/executor.d.ts.map +0 -1
- package/dist/cfg_render/executor.test.d.ts +0 -2
- package/dist/cfg_render/executor.test.d.ts.map +0 -1
- package/dist/cfg_render/operation.d.ts +0 -29
- package/dist/cfg_render/operation.d.ts.map +0 -1
- package/dist/cfg_render/renderer.d.ts +0 -6
- package/dist/cfg_render/renderer.d.ts.map +0 -1
- package/dist/cfg_render/traverse.d.ts +0 -3
- package/dist/cfg_render/traverse.d.ts.map +0 -1
- package/dist/cfg_render/util.d.ts +0 -5
- package/dist/cfg_render/util.d.ts.map +0 -1
- package/dist/debug/index.d.ts +0 -9
- package/dist/debug/index.d.ts.map +0 -1
- package/dist/dev_env/index.d.ts +0 -21
- package/dist/dev_env/index.d.ts.map +0 -1
- package/dist/dev_env/util.d.ts +0 -3
- package/dist/dev_env/util.d.ts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/js_render/computable_context.d.ts +0 -74
- package/dist/js_render/computable_context.d.ts.map +0 -1
- package/dist/js_render/context.d.ts +0 -73
- package/dist/js_render/context.d.ts.map +0 -1
- package/dist/js_render/index.d.ts +0 -57
- package/dist/js_render/index.d.ts.map +0 -1
- package/dist/middle_layer/active_cfg.d.ts +0 -6
- package/dist/middle_layer/active_cfg.d.ts.map +0 -1
- package/dist/middle_layer/block.d.ts +0 -10
- package/dist/middle_layer/block.d.ts.map +0 -1
- package/dist/middle_layer/block_ctx.d.ts +0 -23
- package/dist/middle_layer/block_ctx.d.ts.map +0 -1
- package/dist/middle_layer/block_ctx_unsafe.d.ts +0 -16
- 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 +0 -6
- 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 +0 -10
- 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 +0 -11
- package/dist/middle_layer/project_list.d.ts.map +0 -1
- package/dist/middle_layer/project_overview.d.ts +0 -8
- package/dist/middle_layer/project_overview.d.ts.map +0 -1
- package/dist/middle_layer/project_overview_light.d.ts +0 -8
- package/dist/middle_layer/project_overview_light.d.ts.map +0 -1
- package/dist/middle_layer/render.d.ts +0 -7
- package/dist/middle_layer/render.d.ts.map +0 -1
- package/dist/middle_layer/render.test.d.ts +0 -5
- 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 +0 -16
- package/dist/middle_layer/util.d.ts.map +0 -1
- package/dist/model/args.d.ts +0 -14
- package/dist/model/args.d.ts.map +0 -1
- package/dist/model/block_pack.d.ts +0 -8
- 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 +0 -2
- package/dist/model/project_model.test.d.ts.map +0 -1
- package/dist/model/project_model_util.d.ts +0 -43
- package/dist/model/project_model_util.d.ts.map +0 -1
- package/dist/model/project_model_util.test.d.ts +0 -2
- package/dist/model/project_model_util.test.d.ts.map +0 -1
- package/dist/model/project_model_v1.d.ts +0 -8
- 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 +0 -2
- package/dist/mutator/block-pack/block_pack.test.d.ts.map +0 -1
- package/dist/mutator/block-pack/frontend.d.ts +0 -4
- package/dist/mutator/block-pack/frontend.d.ts.map +0 -1
- package/dist/mutator/context_export.d.ts +0 -9
- package/dist/mutator/context_export.d.ts.map +0 -1
- package/dist/mutator/migration.d.ts +0 -9
- package/dist/mutator/migration.d.ts.map +0 -1
- package/dist/mutator/project-v3.test.d.ts +0 -2
- package/dist/mutator/project-v3.test.d.ts.map +0 -1
- package/dist/mutator/project.d.ts +0 -211
- package/dist/mutator/project.d.ts.map +0 -1
- package/dist/mutator/project.test.d.ts +0 -2
- package/dist/mutator/project.test.d.ts.map +0 -1
- package/dist/mutator/template/direct_template_loader.d.ts +0 -5
- package/dist/mutator/template/direct_template_loader.d.ts.map +0 -1
- package/dist/mutator/template/direct_template_loader_v3.d.ts +0 -15
- package/dist/mutator/template/direct_template_loader_v3.d.ts.map +0 -1
- package/dist/mutator/template/render_block.d.ts +0 -32
- 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 +0 -2
- 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 +0 -2
- package/dist/network_check/network_check.test.d.ts.map +0 -1
- package/dist/network_check/pings.d.ts +0 -32
- package/dist/network_check/pings.d.ts.map +0 -1
- package/dist/network_check/template.d.ts +0 -57
- package/dist/network_check/template.d.ts.map +0 -1
- package/dist/network_check/template.test.d.ts +0 -2
- package/dist/network_check/template.test.d.ts.map +0 -1
- package/dist/network_check/test_utils.d.ts +0 -6
- 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/result_pool.d.ts.map +0 -1
- package/dist/test/block_packs.d.ts +0 -6
- package/dist/test/block_packs.d.ts.map +0 -1
- package/dist/test/explicit_templates.d.ts +0 -3
- package/dist/test/explicit_templates.d.ts.map +0 -1
- package/dist/test/known_templates.d.ts +0 -6
- package/dist/test/known_templates.d.ts.map +0 -1
- package/dist/test_env.d.ts +0 -6
- package/dist/test_env.d.ts.map +0 -1
- package/dist/worker/WorkerManager.d.ts +0 -12
- package/dist/worker/WorkerManager.d.ts.map +0 -1
- package/dist/worker/worker.d.ts.map +0 -1
- package/dist/worker/workerApi.d.ts +0 -15
- package/dist/worker/workerApi.d.ts.map +0 -1
|
@@ -1,542 +1,511 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { projectOverview } from
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { cachedDeserialize, notEmpty } from
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
1
|
+
import { projectFieldName } from "../model/project_model.js";
|
|
2
|
+
import { withProject, withProjectAuthored } from "../mutator/project.js";
|
|
3
|
+
import { projectOverview } from "./project_overview.js";
|
|
4
|
+
import { frontendData } from "./frontend_path.js";
|
|
5
|
+
import { blockOutputs, getBlockParameters } from "./block.js";
|
|
6
|
+
import { activeConfigs } from "./active_cfg.js";
|
|
7
|
+
import { NavigationStates } from "./navigation_states.js";
|
|
8
|
+
import { projectOverviewLight } from "./project_overview_light.js";
|
|
9
|
+
import { applyProjectMigrations } from "../mutator/migration.js";
|
|
10
|
+
import { BLOCK_STORAGE_FACADE_VERSION, extractConfig } from "@platforma-sdk/model";
|
|
11
|
+
import { cachedDeserialize, notEmpty } from "@milaboratories/ts-helpers";
|
|
12
|
+
import fs from "node:fs/promises";
|
|
13
|
+
import { DefaultRetryOptions, Pl, ensureResourceIdNotNull, field, isNotFoundError, isTimeoutOrCancelError, resourceIdToString } from "@milaboratories/pl-client";
|
|
14
|
+
import { SynchronizedTreeState, treeDumpStats } from "@milaboratories/pl-tree";
|
|
15
|
+
import { Computable } from "@milaboratories/computable";
|
|
16
|
+
import { randomUUID } from "node:crypto";
|
|
17
|
+
import canonicalize from "canonicalize";
|
|
18
|
+
import { setTimeout } from "node:timers/promises";
|
|
19
19
|
|
|
20
|
+
//#region src/middle_layer/project.ts
|
|
20
21
|
function stringifyForDump(object) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
value instanceof Uint8ClampedArray ||
|
|
28
|
-
value instanceof Int16Array ||
|
|
29
|
-
value instanceof Uint16Array ||
|
|
30
|
-
value instanceof Int32Array ||
|
|
31
|
-
value instanceof Uint32Array ||
|
|
32
|
-
value instanceof Float32Array ||
|
|
33
|
-
value instanceof Float64Array ||
|
|
34
|
-
value instanceof BigInt64Array ||
|
|
35
|
-
value instanceof BigUint64Array)
|
|
36
|
-
return Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString("base64");
|
|
37
|
-
else if (Buffer.isBuffer(value))
|
|
38
|
-
return value.toString("base64");
|
|
39
|
-
return value;
|
|
40
|
-
});
|
|
22
|
+
return JSON.stringify(object, (key, value) => {
|
|
23
|
+
if (typeof value === "bigint") return resourceIdToString(value);
|
|
24
|
+
else if (ArrayBuffer.isView(value) || value instanceof Int8Array || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int16Array || value instanceof Uint16Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Float32Array || value instanceof Float64Array || value instanceof BigInt64Array || value instanceof BigUint64Array) return Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString("base64");
|
|
25
|
+
else if (Buffer.isBuffer(value)) return value.toString("base64");
|
|
26
|
+
return value;
|
|
27
|
+
});
|
|
41
28
|
}
|
|
42
29
|
/** Data access object, to manipulate and read single opened (!) project data. */
|
|
43
|
-
class Project {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
return new Project(env, rid, projectTree);
|
|
478
|
-
}
|
|
479
|
-
}
|
|
30
|
+
var Project = class Project {
|
|
31
|
+
/** Underlying pl resource id */
|
|
32
|
+
rid;
|
|
33
|
+
/** Data for the left panel, contain basic information about block status. */
|
|
34
|
+
overview;
|
|
35
|
+
overviewLight;
|
|
36
|
+
navigationStates = new NavigationStates();
|
|
37
|
+
blockComputables = /* @__PURE__ */ new Map();
|
|
38
|
+
blockFrontends = /* @__PURE__ */ new Map();
|
|
39
|
+
activeConfigs;
|
|
40
|
+
refreshLoopResult;
|
|
41
|
+
abortController = new AbortController();
|
|
42
|
+
get destroyed() {
|
|
43
|
+
return this.abortController.signal.aborted;
|
|
44
|
+
}
|
|
45
|
+
constructor(env, rid, projectTree) {
|
|
46
|
+
this.env = env;
|
|
47
|
+
this.projectTree = projectTree;
|
|
48
|
+
this.overview = projectOverview(projectTree.entry(), this.navigationStates, env).withPreCalculatedValueTree();
|
|
49
|
+
this.overviewLight = projectOverviewLight(projectTree.entry()).withPreCalculatedValueTree();
|
|
50
|
+
this.rid = rid;
|
|
51
|
+
this.refreshLoopResult = this.refreshLoop();
|
|
52
|
+
this.refreshLoopResult.catch((err) => {
|
|
53
|
+
env.logger.warn(new Error("Error during refresh loop", { cause: err }));
|
|
54
|
+
});
|
|
55
|
+
this.activeConfigs = activeConfigs(projectTree.entry(), env);
|
|
56
|
+
}
|
|
57
|
+
get projectLockId() {
|
|
58
|
+
return "project:" + this.rid.toString();
|
|
59
|
+
}
|
|
60
|
+
async refreshLoop() {
|
|
61
|
+
while (!this.destroyed) try {
|
|
62
|
+
await withProject(this.env.projectHelper, this.env.pl, this.rid, (prj) => {
|
|
63
|
+
prj.doRefresh(this.env.ops.stagingRenderingRate);
|
|
64
|
+
}, {
|
|
65
|
+
name: "doRefresh",
|
|
66
|
+
lockId: this.projectLockId
|
|
67
|
+
});
|
|
68
|
+
await this.activeConfigs.getValue();
|
|
69
|
+
await setTimeout(this.env.ops.projectRefreshInterval, this.abortController.signal);
|
|
70
|
+
const overviewLight = await this.overviewLight.getValue();
|
|
71
|
+
const existingBlocks = new Set(overviewLight.listOfBlocks);
|
|
72
|
+
for (const blockId of this.blockComputables.keys()) if (!existingBlocks.has(blockId)) {
|
|
73
|
+
const computable = this.blockComputables.get(blockId);
|
|
74
|
+
if (computable !== void 0 && computable !== null) computable.fullState.resetState();
|
|
75
|
+
this.blockComputables.set(blockId, null);
|
|
76
|
+
}
|
|
77
|
+
} catch (e) {
|
|
78
|
+
if (this.destroyed) {
|
|
79
|
+
this.env.logger.warn(new Error("Error during refresh loop shutdown", { cause: e }));
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
if (isNotFoundError(e)) {
|
|
83
|
+
console.warn("project refresh routine terminated, because project was externally deleted");
|
|
84
|
+
break;
|
|
85
|
+
} else if (isTimeoutOrCancelError(e)) {} else throw new Error("Unexpected exception", { cause: e });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Adds new block to the project.
|
|
90
|
+
*
|
|
91
|
+
* @param blockLabel block label / title visible to the user
|
|
92
|
+
* @param blockPackSpec object describing the "block type", read more in the type docs
|
|
93
|
+
* @param before id of the block to insert new block before
|
|
94
|
+
* @param blockId internal id to be assigned for the block, this arg can be omitted
|
|
95
|
+
* then, randomly generated UUID will be assigned automatically
|
|
96
|
+
*
|
|
97
|
+
* @return returns newly created block id
|
|
98
|
+
* */
|
|
99
|
+
async addBlock(blockLabel, blockPackSpec, before, author = void 0, blockId = randomUUID()) {
|
|
100
|
+
const preparedBp = await this.env.bpPreparer.prepare(blockPackSpec);
|
|
101
|
+
const blockCfg = extractConfig(await this.env.bpPreparer.getBlockConfigContainer(blockPackSpec));
|
|
102
|
+
this.env.runtimeCapabilities.throwIfIncompatible(blockCfg.featureFlags);
|
|
103
|
+
const newBlockSpec = blockCfg.modelAPIVersion === BLOCK_STORAGE_FACADE_VERSION ? {
|
|
104
|
+
storageMode: "fromModel",
|
|
105
|
+
blockPack: preparedBp
|
|
106
|
+
} : {
|
|
107
|
+
storageMode: "legacy",
|
|
108
|
+
blockPack: preparedBp,
|
|
109
|
+
legacyState: canonicalize({
|
|
110
|
+
args: blockCfg.initialArgs,
|
|
111
|
+
uiState: blockCfg.initialUiState
|
|
112
|
+
})
|
|
113
|
+
};
|
|
114
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, author, (mut) => {
|
|
115
|
+
return mut.addBlock({
|
|
116
|
+
id: blockId,
|
|
117
|
+
label: blockLabel,
|
|
118
|
+
renderingMode: blockCfg.renderingMode
|
|
119
|
+
}, newBlockSpec, before);
|
|
120
|
+
}, {
|
|
121
|
+
retryOptions: {
|
|
122
|
+
...DefaultRetryOptions,
|
|
123
|
+
backoffMultiplier: DefaultRetryOptions.backoffMultiplier * 1.1
|
|
124
|
+
},
|
|
125
|
+
name: "addBlock",
|
|
126
|
+
lockId: this.projectLockId
|
|
127
|
+
});
|
|
128
|
+
await this.projectTree.refreshState();
|
|
129
|
+
return blockId;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Duplicates an existing block by copying all its fields and state.
|
|
133
|
+
* This method works at the mutator level for efficient block copying.
|
|
134
|
+
*
|
|
135
|
+
* @param originalBlockId id of the block to duplicate
|
|
136
|
+
* @param before id of the block to insert new block before
|
|
137
|
+
* @param author author marker for the duplication operation
|
|
138
|
+
* @param newBlockId internal id to be assigned for the duplicated block,
|
|
139
|
+
* if omitted, a randomly generated UUID will be assigned
|
|
140
|
+
*
|
|
141
|
+
* @return returns newly created block id
|
|
142
|
+
* */
|
|
143
|
+
async duplicateBlock(originalBlockId, before, author = void 0, newBlockId = randomUUID()) {
|
|
144
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, author, (mut) => mut.duplicateBlock(originalBlockId, newBlockId, before), {
|
|
145
|
+
name: "duplicateBlock",
|
|
146
|
+
lockId: this.projectLockId
|
|
147
|
+
});
|
|
148
|
+
await this.projectTree.refreshState();
|
|
149
|
+
return newBlockId;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Update block to new block pack, optionally resetting args and ui state to
|
|
153
|
+
* initial values
|
|
154
|
+
* */
|
|
155
|
+
async updateBlockPack(blockId, blockPackSpec, resetArgs = false, author) {
|
|
156
|
+
const preparedBp = await this.env.bpPreparer.prepare(blockPackSpec);
|
|
157
|
+
const blockCfg = extractConfig(await this.env.bpPreparer.getBlockConfigContainer(blockPackSpec));
|
|
158
|
+
this.env.runtimeCapabilities.throwIfIncompatible(blockCfg.featureFlags);
|
|
159
|
+
const resetState = resetArgs ? { state: blockCfg.modelAPIVersion === 1 ? {
|
|
160
|
+
args: blockCfg.initialArgs,
|
|
161
|
+
uiState: blockCfg.initialUiState
|
|
162
|
+
} : {} } : void 0;
|
|
163
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, author, (mut) => mut.migrateBlockPack(blockId, preparedBp, resetState), {
|
|
164
|
+
name: "updateBlockPack",
|
|
165
|
+
lockId: this.projectLockId
|
|
166
|
+
});
|
|
167
|
+
await this.projectTree.refreshState();
|
|
168
|
+
}
|
|
169
|
+
/** Deletes a block with all associated data. */
|
|
170
|
+
async deleteBlock(blockId, author) {
|
|
171
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, author, (mut) => mut.deleteBlock(blockId), {
|
|
172
|
+
name: "deleteBlock",
|
|
173
|
+
lockId: this.projectLockId
|
|
174
|
+
});
|
|
175
|
+
this.navigationStates.deleteBlock(blockId);
|
|
176
|
+
await this.projectTree.refreshState();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Updates block order according to the given array of block ids.
|
|
180
|
+
*
|
|
181
|
+
* Provided array must contain exactly the same set of ids current project cosists of,
|
|
182
|
+
* an error will be thrown instead.
|
|
183
|
+
*/
|
|
184
|
+
async reorderBlocks(blocks, author) {
|
|
185
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, author, (mut) => {
|
|
186
|
+
const currentStructure = mut.structure;
|
|
187
|
+
if (currentStructure.groups.length !== 1) throw new Error("Unexpected project structure, non-singular block group");
|
|
188
|
+
const currentGroup = currentStructure.groups[0];
|
|
189
|
+
if (currentGroup.blocks.length !== blocks.length) throw new Error(`Length mismatch: ${currentGroup.blocks.length} !== ${blocks.length}`);
|
|
190
|
+
if (new Set(blocks).size !== blocks.length) throw new Error(`Repeated block ids`);
|
|
191
|
+
const newStructure = { groups: [{
|
|
192
|
+
id: currentGroup.id,
|
|
193
|
+
label: currentGroup.label,
|
|
194
|
+
blocks: blocks.map((blockId) => {
|
|
195
|
+
const block = currentGroup.blocks.find((b) => b.id === blockId);
|
|
196
|
+
if (block === void 0) throw new Error(`Can't find block: ${blockId}`);
|
|
197
|
+
return block;
|
|
198
|
+
})
|
|
199
|
+
}] };
|
|
200
|
+
mut.updateStructure(newStructure);
|
|
201
|
+
}, {
|
|
202
|
+
name: "reorderBlocks",
|
|
203
|
+
lockId: this.projectLockId
|
|
204
|
+
});
|
|
205
|
+
await this.projectTree.refreshState();
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Renders production part of the block starting all connected heavy computations.
|
|
209
|
+
* Upstream blocks of the specified block will be started automatically if in
|
|
210
|
+
* stale state.
|
|
211
|
+
* */
|
|
212
|
+
async runBlock(blockId) {
|
|
213
|
+
await withProject(this.env.projectHelper, this.env.pl, this.rid, (mut) => mut.renderProduction([blockId], true), {
|
|
214
|
+
name: "runBlock",
|
|
215
|
+
lockId: this.projectLockId
|
|
216
|
+
});
|
|
217
|
+
await this.projectTree.refreshState();
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Stops the block if it is running by destroying its production state. All
|
|
221
|
+
* its downstreams will also be destroyed or moved to limbo if already
|
|
222
|
+
* calculated.
|
|
223
|
+
* */
|
|
224
|
+
async stopBlock(blockId) {
|
|
225
|
+
await withProject(this.env.projectHelper, this.env.pl, this.rid, (mut) => mut.stopProduction(blockId), {
|
|
226
|
+
name: "stopBlock",
|
|
227
|
+
lockId: this.projectLockId
|
|
228
|
+
});
|
|
229
|
+
await this.projectTree.refreshState();
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* @deprecated Use mutateBlockStorage() for V3 blocks.
|
|
233
|
+
* Sets block args, and changes whole project state accordingly.
|
|
234
|
+
* Along with setting arguments one can specify author marker, that will be
|
|
235
|
+
* transactionally associated with the block, to facilitate conflict resolution
|
|
236
|
+
* in collaborative editing scenario.
|
|
237
|
+
* */
|
|
238
|
+
async setBlockArgs(blockId, args, author) {
|
|
239
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, author, (mut) => {
|
|
240
|
+
const state = mut.mergeBlockState(blockId, { args });
|
|
241
|
+
mut.setStates([{
|
|
242
|
+
modelAPIVersion: 1,
|
|
243
|
+
blockId,
|
|
244
|
+
state
|
|
245
|
+
}]);
|
|
246
|
+
}, {
|
|
247
|
+
name: "setBlockArgs",
|
|
248
|
+
lockId: this.projectLockId
|
|
249
|
+
});
|
|
250
|
+
await this.projectTree.refreshState();
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* @deprecated Use mutateBlockStorage() for V3 blocks.
|
|
254
|
+
* Sets ui block state associated with the block.
|
|
255
|
+
* Along with setting arguments one can specify author marker, that will be
|
|
256
|
+
* transactionally associated with the block, to facilitate conflict resolution
|
|
257
|
+
* in collaborative editing scenario.
|
|
258
|
+
* */
|
|
259
|
+
async setUiState(blockId, uiState, author) {
|
|
260
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, author, (mut) => {
|
|
261
|
+
const state = mut.mergeBlockState(blockId, { uiState });
|
|
262
|
+
mut.setStates([{
|
|
263
|
+
modelAPIVersion: 1,
|
|
264
|
+
blockId,
|
|
265
|
+
state
|
|
266
|
+
}]);
|
|
267
|
+
}, {
|
|
268
|
+
name: "setUiState",
|
|
269
|
+
lockId: this.projectLockId
|
|
270
|
+
});
|
|
271
|
+
await this.projectTree.refreshState();
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* @deprecated Use mutateBlockStorage() for V3 blocks.
|
|
275
|
+
* Sets block args and ui state, and changes the whole project state accordingly.
|
|
276
|
+
* Along with setting arguments one can specify author marker, that will be
|
|
277
|
+
* transactionally associated with the block, to facilitate conflict resolution
|
|
278
|
+
* in collaborative editing scenario.
|
|
279
|
+
* */
|
|
280
|
+
async setBlockArgsAndUiState(blockId, args, uiState, author) {
|
|
281
|
+
const state = {
|
|
282
|
+
args,
|
|
283
|
+
uiState
|
|
284
|
+
};
|
|
285
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, author, (mut) => {
|
|
286
|
+
mut.setStates([{
|
|
287
|
+
modelAPIVersion: 1,
|
|
288
|
+
blockId,
|
|
289
|
+
state
|
|
290
|
+
}]);
|
|
291
|
+
}, {
|
|
292
|
+
name: "setBlockArgsAndUiState",
|
|
293
|
+
lockId: this.projectLockId
|
|
294
|
+
});
|
|
295
|
+
await this.projectTree.refreshState();
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Sets navigation state.
|
|
299
|
+
* */
|
|
300
|
+
async setNavigationState(blockId, state) {
|
|
301
|
+
this.navigationStates.setState(blockId, state);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Mutates block storage for Model API v3 blocks.
|
|
305
|
+
* Applies a storage operation (e.g., 'update-data') which triggers
|
|
306
|
+
* args derivation (args(data) and prerunArgs(data)).
|
|
307
|
+
* The derived args are stored atomically with the data.
|
|
308
|
+
*
|
|
309
|
+
* @param blockId - The block ID
|
|
310
|
+
* @param payload - Storage mutation payload with operation and value
|
|
311
|
+
* @param author - Optional author marker for collaborative editing
|
|
312
|
+
*/
|
|
313
|
+
async mutateBlockStorage(blockId, payload, author) {
|
|
314
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, author, (mut) => mut.setStates([{
|
|
315
|
+
modelAPIVersion: 2,
|
|
316
|
+
blockId,
|
|
317
|
+
payload
|
|
318
|
+
}]), {
|
|
319
|
+
name: "mutateBlockStorage",
|
|
320
|
+
lockId: this.projectLockId
|
|
321
|
+
});
|
|
322
|
+
await this.projectTree.refreshState();
|
|
323
|
+
}
|
|
324
|
+
/** Update block settings */
|
|
325
|
+
async setBlockSettings(blockId, newValue) {
|
|
326
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, void 0, (mut) => {
|
|
327
|
+
mut.setBlockSettings(blockId, newValue);
|
|
328
|
+
}, { name: "setBlockSettings" });
|
|
329
|
+
await this.projectTree.refreshState();
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Sets raw block storage content directly.
|
|
333
|
+
* This bypasses all normalization and VM transformations.
|
|
334
|
+
*
|
|
335
|
+
* @param blockId The block to set storage for
|
|
336
|
+
* @param rawStorageJson Raw storage as JSON string
|
|
337
|
+
*/
|
|
338
|
+
async setBlockStorageRaw(blockId, rawStorageJson) {
|
|
339
|
+
await withProjectAuthored(this.env.projectHelper, this.env.pl, this.rid, void 0, (mut) => {
|
|
340
|
+
mut.setBlockStorageRaw(blockId, rawStorageJson);
|
|
341
|
+
}, { name: "setBlockStorageRaw" });
|
|
342
|
+
await this.projectTree.refreshState();
|
|
343
|
+
}
|
|
344
|
+
/** Resets arguments and ui state of the block to initial state */
|
|
345
|
+
async resetBlockArgsAndUiState(blockId, author) {
|
|
346
|
+
await this.env.pl.withWriteTx("BlockInputsReset", async (tx) => {
|
|
347
|
+
const bpHolderRid = ensureResourceIdNotNull((await tx.getField(field(this.rid, projectFieldName(blockId, "blockPack")))).value);
|
|
348
|
+
const bpRid = ensureResourceIdNotNull((await tx.getField(field(bpHolderRid, Pl.HolderRefField))).value);
|
|
349
|
+
const config = extractConfig(cachedDeserialize(notEmpty((await tx.getResourceData(bpRid, false)).data)).config);
|
|
350
|
+
await withProjectAuthored(this.env.projectHelper, tx, this.rid, author, (prj) => {
|
|
351
|
+
if (config.modelAPIVersion === BLOCK_STORAGE_FACADE_VERSION) prj.resetToInitialStorage(blockId);
|
|
352
|
+
else {
|
|
353
|
+
const initialState = {
|
|
354
|
+
args: config.initialArgs,
|
|
355
|
+
uiState: config.initialUiState
|
|
356
|
+
};
|
|
357
|
+
prj.setStates([{
|
|
358
|
+
modelAPIVersion: 1,
|
|
359
|
+
blockId,
|
|
360
|
+
state: initialState
|
|
361
|
+
}]);
|
|
362
|
+
}
|
|
363
|
+
}, {
|
|
364
|
+
name: "resetBlockArgsAndUiState",
|
|
365
|
+
lockId: this.projectLockId
|
|
366
|
+
});
|
|
367
|
+
await tx.commit();
|
|
368
|
+
});
|
|
369
|
+
await this.projectTree.refreshState();
|
|
370
|
+
}
|
|
371
|
+
getBlockComputables(blockId) {
|
|
372
|
+
const cached = this.blockComputables.get(blockId);
|
|
373
|
+
if (cached === null) throw new Error(`Block ${blockId} is deleted`);
|
|
374
|
+
if (cached === void 0) {
|
|
375
|
+
const outputs = blockOutputs(this.projectTree.entry(), blockId, this.env);
|
|
376
|
+
const computables = { fullState: Computable.make((ctx) => {
|
|
377
|
+
return {
|
|
378
|
+
parameters: getBlockParameters(this.projectTree.entry(), blockId, ctx),
|
|
379
|
+
outputs,
|
|
380
|
+
navigationState: this.navigationStates.getState(blockId),
|
|
381
|
+
overview: this.overview
|
|
382
|
+
};
|
|
383
|
+
}, { postprocessValue: (v) => {
|
|
384
|
+
const blockOverview = v.overview?.blocks?.find((b) => b.id == blockId);
|
|
385
|
+
const sdkVersion = blockOverview?.sdkVersion;
|
|
386
|
+
const storageDebugView = blockOverview?.storageDebugView;
|
|
387
|
+
const newOutputs = sdkVersion && shouldStillUseStringErrors(sdkVersion) && v.outputs !== void 0 ? convertErrorsToStrings(v.outputs) : v.outputs;
|
|
388
|
+
return {
|
|
389
|
+
...v.parameters,
|
|
390
|
+
outputs: newOutputs,
|
|
391
|
+
navigationState: v.navigationState,
|
|
392
|
+
storageDebugView
|
|
393
|
+
};
|
|
394
|
+
} }).withPreCalculatedValueTree() };
|
|
395
|
+
this.blockComputables.set(blockId, computables);
|
|
396
|
+
return computables;
|
|
397
|
+
}
|
|
398
|
+
return cached;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Returns a computable, that can be used to retrieve and watch full block state,
|
|
402
|
+
* including outputs, arguments, ui state.
|
|
403
|
+
* */
|
|
404
|
+
getBlockState(blockId) {
|
|
405
|
+
return this.getBlockComputables(blockId).fullState;
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Returns a computable, that can be used to retrieve and watch path of the
|
|
409
|
+
* folder containing frontend code.
|
|
410
|
+
* */
|
|
411
|
+
getBlockFrontend(blockId) {
|
|
412
|
+
const cached = this.blockFrontends.get(blockId);
|
|
413
|
+
if (cached === void 0) {
|
|
414
|
+
const fd = frontendData(this.projectTree.entry(), blockId, this.env).withPreCalculatedValueTree();
|
|
415
|
+
this.blockFrontends.set(blockId, fd);
|
|
416
|
+
return fd;
|
|
417
|
+
}
|
|
418
|
+
return cached;
|
|
419
|
+
}
|
|
420
|
+
/** Called by middle layer on close */
|
|
421
|
+
async destroy() {
|
|
422
|
+
this.abortController.abort();
|
|
423
|
+
try {
|
|
424
|
+
await this.refreshLoopResult;
|
|
425
|
+
} catch (e) {
|
|
426
|
+
this.env.logger.warn(new Error("Refresh loop had terminated with error before destroy", { cause: e }));
|
|
427
|
+
}
|
|
428
|
+
try {
|
|
429
|
+
await this.projectTree.terminate();
|
|
430
|
+
} catch (e) {
|
|
431
|
+
this.env.logger.warn(new Error("Project tree termination failed", { cause: e }));
|
|
432
|
+
}
|
|
433
|
+
this.overview.resetState();
|
|
434
|
+
this.blockFrontends.forEach((c) => c.resetState());
|
|
435
|
+
this.blockComputables.forEach((c) => {
|
|
436
|
+
if (c !== null) c.fullState.resetState();
|
|
437
|
+
});
|
|
438
|
+
this.activeConfigs.resetState();
|
|
439
|
+
}
|
|
440
|
+
/** @deprecated */
|
|
441
|
+
async destroyAndAwaitTermination() {
|
|
442
|
+
await this.destroy();
|
|
443
|
+
}
|
|
444
|
+
dumpState() {
|
|
445
|
+
return this.projectTree.dumpState();
|
|
446
|
+
}
|
|
447
|
+
static async init(env, rid) {
|
|
448
|
+
await applyProjectMigrations(env.pl, rid);
|
|
449
|
+
await withProject(env.projectHelper, env.pl, rid, (_) => {}, { name: "init" });
|
|
450
|
+
const projectTree = await SynchronizedTreeState.init(env.pl, rid, {
|
|
451
|
+
...env.ops.defaultTreeOptions,
|
|
452
|
+
pruning: projectTreePruning(env.logger)
|
|
453
|
+
}, env.logger);
|
|
454
|
+
if (env.ops.debugOps.dumpInitialTreeState) {
|
|
455
|
+
const state = projectTree.dumpState();
|
|
456
|
+
state.sort((a, b) => (b.data?.byteLength ?? 0) - (a.data?.byteLength ?? 0));
|
|
457
|
+
const stats = treeDumpStats(state);
|
|
458
|
+
await fs.writeFile(`${resourceIdToString(rid)}.json`, stringifyForDump(state));
|
|
459
|
+
await fs.writeFile(`${resourceIdToString(rid)}.stats.json`, stringifyForDump(stats));
|
|
460
|
+
}
|
|
461
|
+
return new Project(env, rid, projectTree);
|
|
462
|
+
}
|
|
463
|
+
};
|
|
480
464
|
function projectTreePruning(logger) {
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
case "BlockPackCustom":
|
|
492
|
-
return r.fields.filter((f) => f.name !== "template");
|
|
493
|
-
case "UserProject":
|
|
494
|
-
return r.fields.filter((f) => !f.name.startsWith("__serviceTemplate"));
|
|
495
|
-
case "Blob":
|
|
496
|
-
return [];
|
|
497
|
-
default:
|
|
498
|
-
return r.fields;
|
|
499
|
-
}
|
|
500
|
-
};
|
|
465
|
+
return (r) => {
|
|
466
|
+
if (r.fields.length > 1e3) logger.warn(`resource with excessive field count: type=${r.type.name} id=${r.id} fields=${r.fields.length} names=[${r.fields.slice(0, 10).map((f) => f.name).join(", ")}, ...]`);
|
|
467
|
+
if (r.type.name.startsWith("StreamWorkdir/")) return [];
|
|
468
|
+
switch (r.type.name) {
|
|
469
|
+
case "BlockPackCustom": return r.fields.filter((f) => f.name !== "template");
|
|
470
|
+
case "UserProject": return r.fields.filter((f) => !f.name.startsWith("__serviceTemplate"));
|
|
471
|
+
case "Blob": return [];
|
|
472
|
+
default: return r.fields;
|
|
473
|
+
}
|
|
474
|
+
};
|
|
501
475
|
}
|
|
502
476
|
/** Returns true if sdk version of the block is old and we need to convert
|
|
503
|
-
|
|
504
|
-
|
|
477
|
+
* ErrorLike errors to strings like it was.
|
|
478
|
+
* We need it for keeping old blocks and new UI compatibility. */
|
|
505
479
|
function shouldStillUseStringErrors(sdkVersion) {
|
|
506
|
-
|
|
480
|
+
return !isVersionGreater(sdkVersion, "1.26.0");
|
|
507
481
|
}
|
|
508
482
|
/** Checks if sdk version is greater that a target version. */
|
|
509
483
|
function isVersionGreater(sdkVersion, targetVersion) {
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
(version[0] === target[0] && version[1] > target[1]) ||
|
|
514
|
-
(version[0] === target[0] && version[1] === target[1] && version[2] > target[2]));
|
|
484
|
+
const version = sdkVersion.split(".").map(Number);
|
|
485
|
+
const target = targetVersion.split(".").map(Number);
|
|
486
|
+
return version[0] > target[0] || version[0] === target[0] && version[1] > target[1] || version[0] === target[0] && version[1] === target[1] && version[2] > target[2];
|
|
515
487
|
}
|
|
516
488
|
/** Converts ErrorLike errors to strings in the outputs like it was in old ML versions. */
|
|
517
489
|
function convertErrorsToStrings(outputs) {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
moreErrors: val.moreErrors,
|
|
536
|
-
};
|
|
537
|
-
}
|
|
538
|
-
return result;
|
|
490
|
+
const result = {};
|
|
491
|
+
for (const [key, val] of Object.entries(outputs)) {
|
|
492
|
+
if (val.ok) {
|
|
493
|
+
result[key] = val;
|
|
494
|
+
continue;
|
|
495
|
+
}
|
|
496
|
+
result[key] = {
|
|
497
|
+
ok: false,
|
|
498
|
+
errors: val.errors.map((e) => {
|
|
499
|
+
if (typeof e === "string") return e;
|
|
500
|
+
else if (e.type == "PlError" && e.fullMessage !== void 0) return e.fullMessage;
|
|
501
|
+
return e.message;
|
|
502
|
+
}),
|
|
503
|
+
moreErrors: val.moreErrors
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
return result;
|
|
539
507
|
}
|
|
540
508
|
|
|
509
|
+
//#endregion
|
|
541
510
|
export { Project };
|
|
542
|
-
//# sourceMappingURL=project.js.map
|
|
511
|
+
//# sourceMappingURL=project.js.map
|