@milaboratories/pl-middle-layer 1.46.20 → 1.46.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/block_registry/index.d.ts +3 -3
- package/dist/block_registry/registry-v2-provider.cjs.map +1 -1
- package/dist/block_registry/registry-v2-provider.d.ts +2 -2
- package/dist/block_registry/registry-v2-provider.js.map +1 -1
- package/dist/block_registry/registry.cjs +54 -53
- package/dist/block_registry/registry.cjs.map +1 -1
- package/dist/block_registry/registry.d.ts +4 -4
- package/dist/block_registry/registry.d.ts.map +1 -1
- package/dist/block_registry/registry.js +54 -53
- package/dist/block_registry/registry.js.map +1 -1
- package/dist/block_registry/watcher.cjs +12 -12
- package/dist/block_registry/watcher.cjs.map +1 -1
- package/dist/block_registry/watcher.d.ts +6 -6
- package/dist/block_registry/watcher.d.ts.map +1 -1
- package/dist/block_registry/watcher.js +12 -12
- package/dist/block_registry/watcher.js.map +1 -1
- package/dist/block_registry/well_known_registries.cjs +6 -6
- package/dist/block_registry/well_known_registries.cjs.map +1 -1
- package/dist/block_registry/well_known_registries.d.ts +1 -1
- package/dist/block_registry/well_known_registries.js +6 -6
- package/dist/block_registry/well_known_registries.js.map +1 -1
- package/dist/cfg_render/executor.cjs +11 -11
- package/dist/cfg_render/executor.cjs.map +1 -1
- package/dist/cfg_render/executor.d.ts +5 -5
- package/dist/cfg_render/executor.js +11 -11
- package/dist/cfg_render/executor.js.map +1 -1
- package/dist/cfg_render/operation.d.ts +5 -5
- package/dist/cfg_render/renderer.cjs +74 -75
- package/dist/cfg_render/renderer.cjs.map +1 -1
- package/dist/cfg_render/renderer.d.ts +2 -2
- package/dist/cfg_render/renderer.d.ts.map +1 -1
- package/dist/cfg_render/renderer.js +74 -75
- package/dist/cfg_render/renderer.js.map +1 -1
- package/dist/cfg_render/traverse.cjs +27 -27
- package/dist/cfg_render/traverse.cjs.map +1 -1
- package/dist/cfg_render/traverse.d.ts +1 -1
- package/dist/cfg_render/traverse.js +27 -27
- package/dist/cfg_render/traverse.js.map +1 -1
- package/dist/cfg_render/util.cjs +1 -1
- package/dist/cfg_render/util.cjs.map +1 -1
- package/dist/cfg_render/util.d.ts +1 -1
- package/dist/cfg_render/util.js +1 -1
- package/dist/cfg_render/util.js.map +1 -1
- package/dist/debug/index.cjs +4 -2
- package/dist/debug/index.cjs.map +1 -1
- package/dist/debug/index.d.ts +2 -2
- package/dist/debug/index.d.ts.map +1 -1
- package/dist/debug/index.js +4 -2
- package/dist/debug/index.js.map +1 -1
- package/dist/dev_env/index.cjs +8 -8
- package/dist/dev_env/index.cjs.map +1 -1
- package/dist/dev_env/index.js +8 -8
- package/dist/dev_env/index.js.map +1 -1
- package/dist/dev_env/util.cjs +1 -1
- package/dist/dev_env/util.cjs.map +1 -1
- package/dist/dev_env/util.d.ts +1 -1
- package/dist/dev_env/util.js +1 -1
- package/dist/dev_env/util.js.map +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/js_render/computable_context.cjs +78 -78
- package/dist/js_render/computable_context.cjs.map +1 -1
- package/dist/js_render/computable_context.d.ts +9 -9
- package/dist/js_render/computable_context.d.ts.map +1 -1
- package/dist/js_render/computable_context.js +78 -78
- package/dist/js_render/computable_context.js.map +1 -1
- package/dist/js_render/context.cjs +33 -27
- package/dist/js_render/context.cjs.map +1 -1
- package/dist/js_render/context.d.ts +7 -7
- package/dist/js_render/context.d.ts.map +1 -1
- package/dist/js_render/context.js +33 -27
- package/dist/js_render/context.js.map +1 -1
- package/dist/js_render/index.cjs +10 -6
- package/dist/js_render/index.cjs.map +1 -1
- package/dist/js_render/index.d.ts +6 -6
- package/dist/js_render/index.d.ts.map +1 -1
- package/dist/js_render/index.js +10 -6
- package/dist/js_render/index.js.map +1 -1
- package/dist/middle_layer/active_cfg.cjs.map +1 -1
- package/dist/middle_layer/active_cfg.d.ts +3 -3
- package/dist/middle_layer/active_cfg.d.ts.map +1 -1
- package/dist/middle_layer/active_cfg.js.map +1 -1
- package/dist/middle_layer/block.cjs +1 -1
- package/dist/middle_layer/block.cjs.map +1 -1
- package/dist/middle_layer/block.d.ts +6 -6
- package/dist/middle_layer/block.d.ts.map +1 -1
- package/dist/middle_layer/block.js +1 -1
- package/dist/middle_layer/block.js.map +1 -1
- package/dist/middle_layer/block_ctx.cjs +9 -9
- package/dist/middle_layer/block_ctx.cjs.map +1 -1
- package/dist/middle_layer/block_ctx.d.ts +6 -6
- package/dist/middle_layer/block_ctx.d.ts.map +1 -1
- package/dist/middle_layer/block_ctx.js +9 -9
- package/dist/middle_layer/block_ctx.js.map +1 -1
- package/dist/middle_layer/block_ctx_unsafe.cjs +1 -1
- package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -1
- package/dist/middle_layer/block_ctx_unsafe.d.ts +5 -5
- package/dist/middle_layer/block_ctx_unsafe.js +1 -1
- package/dist/middle_layer/block_ctx_unsafe.js.map +1 -1
- package/dist/middle_layer/driver_kit.cjs +1 -2
- package/dist/middle_layer/driver_kit.cjs.map +1 -1
- package/dist/middle_layer/driver_kit.d.ts +7 -7
- package/dist/middle_layer/driver_kit.d.ts.map +1 -1
- package/dist/middle_layer/driver_kit.js +1 -2
- package/dist/middle_layer/driver_kit.js.map +1 -1
- package/dist/middle_layer/frontend_path.cjs +5 -5
- package/dist/middle_layer/frontend_path.cjs.map +1 -1
- package/dist/middle_layer/frontend_path.d.ts +4 -4
- package/dist/middle_layer/frontend_path.d.ts.map +1 -1
- package/dist/middle_layer/frontend_path.js +5 -5
- package/dist/middle_layer/frontend_path.js.map +1 -1
- package/dist/middle_layer/index.d.ts +4 -4
- package/dist/middle_layer/middle_layer.cjs +11 -11
- package/dist/middle_layer/middle_layer.cjs.map +1 -1
- package/dist/middle_layer/middle_layer.d.ts +18 -18
- package/dist/middle_layer/middle_layer.d.ts.map +1 -1
- package/dist/middle_layer/middle_layer.js +11 -11
- package/dist/middle_layer/middle_layer.js.map +1 -1
- package/dist/middle_layer/navigation_states.cjs +2 -2
- package/dist/middle_layer/navigation_states.cjs.map +1 -1
- package/dist/middle_layer/navigation_states.d.ts +2 -2
- package/dist/middle_layer/navigation_states.js +2 -2
- package/dist/middle_layer/navigation_states.js.map +1 -1
- package/dist/middle_layer/ops.cjs +5 -5
- package/dist/middle_layer/ops.cjs.map +1 -1
- package/dist/middle_layer/ops.d.ts +11 -11
- package/dist/middle_layer/ops.d.ts.map +1 -1
- package/dist/middle_layer/ops.js +5 -5
- package/dist/middle_layer/ops.js.map +1 -1
- package/dist/middle_layer/project.cjs +71 -63
- package/dist/middle_layer/project.cjs.map +1 -1
- package/dist/middle_layer/project.d.ts +10 -10
- package/dist/middle_layer/project.d.ts.map +1 -1
- package/dist/middle_layer/project.js +71 -63
- package/dist/middle_layer/project.js.map +1 -1
- package/dist/middle_layer/project_list.cjs +2 -2
- package/dist/middle_layer/project_list.cjs.map +1 -1
- package/dist/middle_layer/project_list.d.ts +6 -6
- package/dist/middle_layer/project_list.d.ts.map +1 -1
- package/dist/middle_layer/project_list.js +2 -2
- package/dist/middle_layer/project_list.js.map +1 -1
- package/dist/middle_layer/project_overview.cjs +40 -40
- package/dist/middle_layer/project_overview.cjs.map +1 -1
- package/dist/middle_layer/project_overview.d.ts +5 -5
- package/dist/middle_layer/project_overview.d.ts.map +1 -1
- package/dist/middle_layer/project_overview.js +40 -40
- package/dist/middle_layer/project_overview.js.map +1 -1
- package/dist/middle_layer/project_overview_light.cjs.map +1 -1
- package/dist/middle_layer/project_overview_light.d.ts +2 -2
- package/dist/middle_layer/project_overview_light.d.ts.map +1 -1
- package/dist/middle_layer/project_overview_light.js.map +1 -1
- package/dist/middle_layer/render.cjs +1 -1
- package/dist/middle_layer/render.cjs.map +1 -1
- package/dist/middle_layer/render.d.ts +4 -4
- package/dist/middle_layer/render.js +1 -1
- package/dist/middle_layer/render.js.map +1 -1
- package/dist/middle_layer/render.test.d.ts +2 -2
- package/dist/middle_layer/types.d.ts +3 -3
- package/dist/middle_layer/util.cjs +9 -4
- package/dist/middle_layer/util.cjs.map +1 -1
- package/dist/middle_layer/util.d.ts +4 -4
- package/dist/middle_layer/util.d.ts.map +1 -1
- package/dist/middle_layer/util.js +9 -4
- package/dist/middle_layer/util.js.map +1 -1
- package/dist/model/args.cjs +19 -15
- package/dist/model/args.cjs.map +1 -1
- package/dist/model/args.d.ts +1 -1
- package/dist/model/args.d.ts.map +1 -1
- package/dist/model/args.js +19 -15
- package/dist/model/args.js.map +1 -1
- package/dist/model/block_pack.d.ts +2 -2
- package/dist/model/block_pack_spec.cjs +3 -3
- package/dist/model/block_pack_spec.cjs.map +1 -1
- package/dist/model/block_pack_spec.d.ts +8 -8
- package/dist/model/block_pack_spec.js +3 -3
- package/dist/model/block_pack_spec.js.map +1 -1
- package/dist/model/block_storage_helper.cjs +4 -4
- package/dist/model/block_storage_helper.cjs.map +1 -1
- package/dist/model/block_storage_helper.d.ts +2 -2
- package/dist/model/block_storage_helper.d.ts.map +1 -1
- package/dist/model/block_storage_helper.js +4 -4
- package/dist/model/block_storage_helper.js.map +1 -1
- package/dist/model/index.d.ts +3 -3
- package/dist/model/project_helper.cjs +30 -13
- package/dist/model/project_helper.cjs.map +1 -1
- package/dist/model/project_helper.d.ts +4 -4
- package/dist/model/project_helper.d.ts.map +1 -1
- package/dist/model/project_helper.js +30 -13
- package/dist/model/project_helper.js.map +1 -1
- package/dist/model/project_model.cjs +23 -23
- package/dist/model/project_model.cjs.map +1 -1
- package/dist/model/project_model.d.ts +6 -6
- package/dist/model/project_model.d.ts.map +1 -1
- package/dist/model/project_model.js +23 -23
- package/dist/model/project_model.js.map +1 -1
- package/dist/model/project_model_util.cjs +2 -2
- package/dist/model/project_model_util.cjs.map +1 -1
- package/dist/model/project_model_util.d.ts +3 -3
- package/dist/model/project_model_util.d.ts.map +1 -1
- package/dist/model/project_model_util.js +2 -2
- package/dist/model/project_model_util.js.map +1 -1
- package/dist/model/project_model_v1.cjs +2 -2
- package/dist/model/project_model_v1.cjs.map +1 -1
- package/dist/model/project_model_v1.js +2 -2
- package/dist/model/project_model_v1.js.map +1 -1
- package/dist/model/template_spec.d.ts +5 -5
- package/dist/mutator/block-pack/block_pack.cjs +43 -43
- package/dist/mutator/block-pack/block_pack.cjs.map +1 -1
- package/dist/mutator/block-pack/block_pack.d.ts +6 -6
- package/dist/mutator/block-pack/block_pack.d.ts.map +1 -1
- package/dist/mutator/block-pack/block_pack.js +43 -43
- package/dist/mutator/block-pack/block_pack.js.map +1 -1
- package/dist/mutator/block-pack/frontend.cjs +2 -2
- package/dist/mutator/block-pack/frontend.cjs.map +1 -1
- package/dist/mutator/block-pack/frontend.d.ts +2 -2
- package/dist/mutator/block-pack/frontend.d.ts.map +1 -1
- package/dist/mutator/block-pack/frontend.js +2 -2
- package/dist/mutator/block-pack/frontend.js.map +1 -1
- package/dist/mutator/context_export.cjs +5 -5
- package/dist/mutator/context_export.cjs.map +1 -1
- package/dist/mutator/context_export.d.ts +2 -2
- package/dist/mutator/context_export.d.ts.map +1 -1
- package/dist/mutator/context_export.js +5 -5
- package/dist/mutator/context_export.js.map +1 -1
- package/dist/mutator/migration.cjs +7 -7
- package/dist/mutator/migration.cjs.map +1 -1
- package/dist/mutator/migration.d.ts +1 -1
- package/dist/mutator/migration.d.ts.map +1 -1
- package/dist/mutator/migration.js +7 -7
- package/dist/mutator/migration.js.map +1 -1
- package/dist/mutator/project.cjs +147 -148
- package/dist/mutator/project.cjs.map +1 -1
- package/dist/mutator/project.d.ts +13 -13
- package/dist/mutator/project.d.ts.map +1 -1
- package/dist/mutator/project.js +147 -148
- package/dist/mutator/project.js.map +1 -1
- package/dist/mutator/template/direct_template_loader.cjs +16 -16
- package/dist/mutator/template/direct_template_loader.cjs.map +1 -1
- package/dist/mutator/template/direct_template_loader.d.ts +2 -2
- package/dist/mutator/template/direct_template_loader.d.ts.map +1 -1
- package/dist/mutator/template/direct_template_loader.js +16 -16
- package/dist/mutator/template/direct_template_loader.js.map +1 -1
- package/dist/mutator/template/direct_template_loader_v3.cjs +13 -13
- package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -1
- package/dist/mutator/template/direct_template_loader_v3.d.ts +3 -3
- package/dist/mutator/template/direct_template_loader_v3.d.ts.map +1 -1
- package/dist/mutator/template/direct_template_loader_v3.js +13 -13
- package/dist/mutator/template/direct_template_loader_v3.js.map +1 -1
- package/dist/mutator/template/render_block.cjs +7 -7
- package/dist/mutator/template/render_block.cjs.map +1 -1
- package/dist/mutator/template/render_block.d.ts +1 -1
- package/dist/mutator/template/render_block.d.ts.map +1 -1
- package/dist/mutator/template/render_block.js +7 -7
- package/dist/mutator/template/render_block.js.map +1 -1
- package/dist/mutator/template/render_template.cjs +10 -10
- package/dist/mutator/template/render_template.cjs.map +1 -1
- package/dist/mutator/template/render_template.d.ts +2 -2
- package/dist/mutator/template/render_template.js +10 -10
- package/dist/mutator/template/render_template.js.map +1 -1
- package/dist/mutator/template/template_loading.cjs +17 -17
- package/dist/mutator/template/template_loading.cjs.map +1 -1
- package/dist/mutator/template/template_loading.d.ts +2 -2
- package/dist/mutator/template/template_loading.js +17 -17
- package/dist/mutator/template/template_loading.js.map +1 -1
- package/dist/network_check/network_check.cjs +33 -32
- package/dist/network_check/network_check.cjs.map +1 -1
- package/dist/network_check/network_check.d.ts +6 -6
- package/dist/network_check/network_check.d.ts.map +1 -1
- package/dist/network_check/network_check.js +33 -32
- package/dist/network_check/network_check.js.map +1 -1
- package/dist/network_check/pings.cjs +3 -3
- package/dist/network_check/pings.cjs.map +1 -1
- package/dist/network_check/pings.d.ts +4 -4
- package/dist/network_check/pings.d.ts.map +1 -1
- package/dist/network_check/pings.js +3 -3
- package/dist/network_check/pings.js.map +1 -1
- package/dist/network_check/template.cjs +57 -44
- package/dist/network_check/template.cjs.map +1 -1
- package/dist/network_check/template.d.ts +8 -8
- package/dist/network_check/template.d.ts.map +1 -1
- package/dist/network_check/template.js +57 -44
- package/dist/network_check/template.js.map +1 -1
- package/dist/pool/data.cjs +45 -33
- package/dist/pool/data.cjs.map +1 -1
- package/dist/pool/data.d.ts +3 -3
- package/dist/pool/data.d.ts.map +1 -1
- package/dist/pool/data.js +45 -33
- package/dist/pool/data.js.map +1 -1
- package/dist/pool/driver.cjs +18 -16
- package/dist/pool/driver.cjs.map +1 -1
- package/dist/pool/driver.d.ts +5 -5
- package/dist/pool/driver.d.ts.map +1 -1
- package/dist/pool/driver.js +18 -16
- package/dist/pool/driver.js.map +1 -1
- package/dist/pool/index.d.ts +2 -2
- package/dist/pool/p_object_collection.cjs +5 -5
- package/dist/pool/p_object_collection.cjs.map +1 -1
- package/dist/pool/p_object_collection.d.ts +2 -2
- package/dist/pool/p_object_collection.d.ts.map +1 -1
- package/dist/pool/p_object_collection.js +5 -5
- package/dist/pool/p_object_collection.js.map +1 -1
- package/dist/pool/result_pool.cjs +6 -6
- package/dist/pool/result_pool.cjs.map +1 -1
- package/dist/pool/result_pool.d.ts +6 -6
- package/dist/pool/result_pool.d.ts.map +1 -1
- package/dist/pool/result_pool.js +6 -6
- package/dist/pool/result_pool.js.map +1 -1
- package/dist/test/block_packs.d.ts +2 -2
- package/dist/test/known_templates.d.ts +1 -1
- package/dist/worker/WorkerManager.cjs +7 -8
- package/dist/worker/WorkerManager.cjs.map +1 -1
- package/dist/worker/WorkerManager.d.ts +2 -2
- package/dist/worker/WorkerManager.d.ts.map +1 -1
- package/dist/worker/WorkerManager.js +7 -8
- package/dist/worker/WorkerManager.js.map +1 -1
- package/dist/worker/worker.cjs +6 -4
- package/dist/worker/worker.cjs.map +1 -1
- package/dist/worker/worker.js +6 -4
- package/dist/worker/worker.js.map +1 -1
- package/dist/worker/workerApi.cjs.map +1 -1
- package/dist/worker/workerApi.js.map +1 -1
- package/package.json +41 -41
- package/src/block_registry/index.ts +3 -3
- package/src/block_registry/registry-v2-provider.ts +2 -2
- package/src/block_registry/registry.test.ts +17 -17
- package/src/block_registry/registry.ts +55 -60
- package/src/block_registry/watcher.ts +24 -23
- package/src/block_registry/well_known_registries.ts +7 -7
- package/src/cfg_render/executor.test.ts +36 -36
- package/src/cfg_render/executor.ts +24 -24
- package/src/cfg_render/operation.ts +5 -5
- package/src/cfg_render/renderer.ts +96 -93
- package/src/cfg_render/traverse.ts +50 -50
- package/src/cfg_render/util.ts +3 -3
- package/src/debug/index.ts +6 -4
- package/src/dev_env/index.ts +16 -16
- package/src/dev_env/util.ts +3 -3
- package/src/index.ts +16 -16
- package/src/js_render/computable_context.ts +143 -126
- package/src/js_render/context.ts +72 -44
- package/src/js_render/index.ts +51 -24
- package/src/middle_layer/active_cfg.ts +14 -12
- package/src/middle_layer/block.ts +30 -23
- package/src/middle_layer/block_ctx.ts +27 -31
- package/src/middle_layer/block_ctx_unsafe.ts +9 -9
- package/src/middle_layer/driver_kit.ts +13 -19
- package/src/middle_layer/frontend_path.ts +18 -23
- package/src/middle_layer/index.ts +4 -4
- package/src/middle_layer/middle_layer.ts +57 -55
- package/src/middle_layer/navigation_states.ts +6 -6
- package/src/middle_layer/ops.ts +43 -42
- package/src/middle_layer/project.ts +274 -173
- package/src/middle_layer/project_list.ts +14 -15
- package/src/middle_layer/project_overview.ts +104 -113
- package/src/middle_layer/project_overview_light.ts +7 -9
- package/src/middle_layer/render.test.ts +49 -48
- package/src/middle_layer/render.ts +9 -9
- package/src/middle_layer/types.ts +3 -3
- package/src/middle_layer/util.ts +17 -12
- package/src/model/args.ts +22 -19
- package/src/model/block_pack.ts +2 -2
- package/src/model/block_pack_spec.ts +11 -11
- package/src/model/block_storage_helper.ts +11 -11
- package/src/model/index.ts +3 -3
- package/src/model/project_helper.ts +78 -32
- package/src/model/project_model.test.ts +5 -9
- package/src/model/project_model.ts +48 -49
- package/src/model/project_model_util.test.ts +86 -53
- package/src/model/project_model_util.ts +18 -14
- package/src/model/project_model_v1.ts +3 -3
- package/src/model/template_spec.ts +5 -5
- package/src/mutator/block-pack/block_pack.test.ts +25 -25
- package/src/mutator/block-pack/block_pack.ts +70 -68
- package/src/mutator/block-pack/frontend.ts +6 -13
- package/src/mutator/context_export.ts +12 -10
- package/src/mutator/migration.ts +20 -14
- package/src/mutator/project-v3.test.ts +123 -118
- package/src/mutator/project.test.ts +105 -94
- package/src/mutator/project.ts +357 -274
- package/src/mutator/template/direct_template_loader.ts +26 -32
- package/src/mutator/template/direct_template_loader_v3.ts +51 -25
- package/src/mutator/template/render_block.ts +14 -21
- package/src/mutator/template/render_template.ts +13 -13
- package/src/mutator/template/template_loading.ts +23 -23
- package/src/mutator/template/template_render.test.ts +87 -86
- package/src/network_check/network_check.test.ts +4 -4
- package/src/network_check/network_check.ts +102 -79
- package/src/network_check/pings.ts +35 -16
- package/src/network_check/template.test.ts +47 -44
- package/src/network_check/template.ts +151 -95
- package/src/network_check/test_utils.ts +1 -1
- package/src/pool/data.ts +81 -69
- package/src/pool/driver.ts +56 -51
- package/src/pool/index.ts +2 -2
- package/src/pool/p_object_collection.ts +16 -15
- package/src/pool/result_pool.ts +23 -34
- package/src/test/block_packs.ts +15 -15
- package/src/test/explicit_templates.ts +4 -4
- package/src/test/known_templates.ts +10 -10
- package/src/test_env.ts +1 -1
- package/src/worker/WorkerManager.ts +22 -18
- package/src/worker/worker.ts +11 -9
- package/src/worker/workerApi.ts +1 -1
|
@@ -1,64 +1,60 @@
|
|
|
1
|
-
import { field, poll, TestHelpers, toGlobalResourceId } from
|
|
2
|
-
import { getQuickJS } from
|
|
3
|
-
import { expect, test } from
|
|
4
|
-
import { outputRef } from
|
|
5
|
-
import { ProjectHelper } from
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import {
|
|
12
|
-
TestBPPreparer
|
|
13
|
-
} from '../test/block_packs';
|
|
14
|
-
import { createProject, ProjectMutator } from './project';
|
|
15
|
-
import type { BlockPackSpec } from '@milaboratories/pl-model-middle-layer';
|
|
16
|
-
import path from 'node:path';
|
|
1
|
+
import { field, poll, TestHelpers, toGlobalResourceId } from "@milaboratories/pl-client";
|
|
2
|
+
import { getQuickJS } from "quickjs-emscripten";
|
|
3
|
+
import { expect, test } from "vitest";
|
|
4
|
+
import { outputRef } from "../model/args";
|
|
5
|
+
import { ProjectHelper } from "../model/project_helper";
|
|
6
|
+
import { projectFieldName } from "../model/project_model";
|
|
7
|
+
import { TestBPPreparer } from "../test/block_packs";
|
|
8
|
+
import { createProject, ProjectMutator } from "./project";
|
|
9
|
+
import type { BlockPackSpec } from "@milaboratories/pl-model-middle-layer";
|
|
10
|
+
import path from "node:path";
|
|
17
11
|
|
|
18
12
|
// V3 block specs - using dev-v2 type with local folders
|
|
19
13
|
// These blocks use the new unified state format (state instead of args+uiState)
|
|
20
14
|
const BPSpecEnterV3: BlockPackSpec = {
|
|
21
|
-
type:
|
|
15
|
+
type: "dev-v2",
|
|
22
16
|
// Navigate from lib/node/pl-middle-layer/src/mutator to etc/blocks/enter-numbers-v3/block
|
|
23
|
-
folder: path.resolve(__dirname,
|
|
17
|
+
folder: path.resolve(__dirname, "../../../../../etc/blocks/enter-numbers-v3/block"),
|
|
24
18
|
};
|
|
25
19
|
|
|
26
20
|
const BPSpecSumV3: BlockPackSpec = {
|
|
27
|
-
type:
|
|
28
|
-
folder: path.resolve(__dirname,
|
|
21
|
+
type: "dev-v2",
|
|
22
|
+
folder: path.resolve(__dirname, "../../../../../etc/blocks/sum-numbers-v3/block"),
|
|
29
23
|
};
|
|
30
24
|
|
|
31
|
-
test(
|
|
25
|
+
test("v3 blocks: basic test with unified state", async () => {
|
|
32
26
|
const quickJs = await getQuickJS();
|
|
33
27
|
|
|
34
28
|
await TestHelpers.withTempRoot(async (pl) => {
|
|
35
|
-
const prj = await pl.withWriteTx(
|
|
29
|
+
const prj = await pl.withWriteTx("CreatingProject", async (tx) => {
|
|
36
30
|
const prjRef = await createProject(tx);
|
|
37
|
-
tx.createField(field(tx.clientRoot,
|
|
31
|
+
tx.createField(field(tx.clientRoot, "prj"), "Dynamic", prjRef);
|
|
38
32
|
await tx.commit();
|
|
39
33
|
return await toGlobalResourceId(prjRef);
|
|
40
34
|
});
|
|
41
35
|
|
|
42
36
|
// Add enter-numbers-v3 block with storageMode: 'fromModel'
|
|
43
37
|
// Initial storage comes from VM, then we set desired state via setStates
|
|
44
|
-
await pl.withWriteTx(
|
|
38
|
+
await pl.withWriteTx("AddEnterNumbersV3Block", async (tx) => {
|
|
45
39
|
const mut = await ProjectMutator.load(new ProjectHelper(quickJs), tx, prj);
|
|
46
40
|
mut.addBlock(
|
|
47
|
-
{ id:
|
|
41
|
+
{ id: "enter1", label: "Enter Numbers V3", renderingMode: "Heavy" },
|
|
48
42
|
{
|
|
49
|
-
storageMode:
|
|
50
|
-
blockPack: await TestBPPreparer.prepare(BPSpecEnterV3)
|
|
51
|
-
}
|
|
43
|
+
storageMode: "fromModel",
|
|
44
|
+
blockPack: await TestBPPreparer.prepare(BPSpecEnterV3),
|
|
45
|
+
},
|
|
52
46
|
);
|
|
53
47
|
// Set initial test data
|
|
54
|
-
mut.setStates([
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
48
|
+
mut.setStates([
|
|
49
|
+
{
|
|
50
|
+
modelAPIVersion: 2,
|
|
51
|
+
blockId: "enter1",
|
|
52
|
+
payload: {
|
|
53
|
+
operation: "update-data",
|
|
54
|
+
value: { numbers: [1, 2, 3] },
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
]);
|
|
62
58
|
mut.save();
|
|
63
59
|
await tx.commit();
|
|
64
60
|
});
|
|
@@ -66,53 +62,57 @@ test('v3 blocks: basic test with unified state', async () => {
|
|
|
66
62
|
// Verify blockStorage was saved
|
|
67
63
|
await poll(pl, async (tx) => {
|
|
68
64
|
const prjR = await tx.get(prj);
|
|
69
|
-
const blockStorage = await prjR.get(projectFieldName(
|
|
65
|
+
const blockStorage = await prjR.get(projectFieldName("enter1", "blockStorage"));
|
|
70
66
|
const stateData = Buffer.from(blockStorage.data.data!).toString();
|
|
71
67
|
expect(JSON.parse(stateData).__data).toStrictEqual({ numbers: [1, 2, 3] });
|
|
72
68
|
});
|
|
73
69
|
|
|
74
70
|
// Add second enter-numbers-v3 block
|
|
75
|
-
await pl.withWriteTx(
|
|
71
|
+
await pl.withWriteTx("AddEnterNumbersV3Block2", async (tx) => {
|
|
76
72
|
const mut = await ProjectMutator.load(new ProjectHelper(quickJs), tx, prj);
|
|
77
73
|
mut.addBlock(
|
|
78
|
-
{ id:
|
|
74
|
+
{ id: "enter2", label: "Enter Numbers V3 #2", renderingMode: "Heavy" },
|
|
79
75
|
{
|
|
80
|
-
storageMode:
|
|
81
|
-
blockPack: await TestBPPreparer.prepare(BPSpecEnterV3)
|
|
82
|
-
}
|
|
76
|
+
storageMode: "fromModel",
|
|
77
|
+
blockPack: await TestBPPreparer.prepare(BPSpecEnterV3),
|
|
78
|
+
},
|
|
83
79
|
);
|
|
84
|
-
mut.setStates([
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
80
|
+
mut.setStates([
|
|
81
|
+
{
|
|
82
|
+
modelAPIVersion: 2,
|
|
83
|
+
blockId: "enter2",
|
|
84
|
+
payload: {
|
|
85
|
+
operation: "update-data",
|
|
86
|
+
value: { numbers: [4, 5, 6] },
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
]);
|
|
92
90
|
mut.doRefresh();
|
|
93
91
|
mut.save();
|
|
94
92
|
await tx.commit();
|
|
95
93
|
});
|
|
96
94
|
|
|
97
95
|
// Add sum-numbers-v3 block that references both enter blocks
|
|
98
|
-
await pl.withWriteTx(
|
|
96
|
+
await pl.withWriteTx("AddSumNumbersV3Block", async (tx) => {
|
|
99
97
|
const mut = await ProjectMutator.load(new ProjectHelper(quickJs), tx, prj);
|
|
100
98
|
mut.addBlock(
|
|
101
|
-
{ id:
|
|
99
|
+
{ id: "sum1", label: "Sum Numbers V3", renderingMode: "Heavy" },
|
|
102
100
|
{
|
|
103
|
-
storageMode:
|
|
104
|
-
blockPack: await TestBPPreparer.prepare(BPSpecSumV3)
|
|
105
|
-
}
|
|
101
|
+
storageMode: "fromModel",
|
|
102
|
+
blockPack: await TestBPPreparer.prepare(BPSpecSumV3),
|
|
103
|
+
},
|
|
106
104
|
);
|
|
107
105
|
// Set sources to reference upstream blocks
|
|
108
|
-
mut.setStates([
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
106
|
+
mut.setStates([
|
|
107
|
+
{
|
|
108
|
+
modelAPIVersion: 2,
|
|
109
|
+
blockId: "sum1",
|
|
110
|
+
payload: {
|
|
111
|
+
operation: "update-data",
|
|
112
|
+
value: { sources: [outputRef("enter1", "numbers"), outputRef("enter2", "numbers")] },
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
]);
|
|
116
116
|
mut.doRefresh();
|
|
117
117
|
mut.save();
|
|
118
118
|
await tx.commit();
|
|
@@ -122,17 +122,17 @@ test('v3 blocks: basic test with unified state', async () => {
|
|
|
122
122
|
await poll(pl, async (tx) => {
|
|
123
123
|
const prjR = await tx.get(prj);
|
|
124
124
|
const stagingOutput = await prjR
|
|
125
|
-
.get(projectFieldName(
|
|
125
|
+
.get(projectFieldName("enter1", "stagingOutput"))
|
|
126
126
|
.then((r) => r.final());
|
|
127
127
|
const all = await stagingOutput.getAllFinal();
|
|
128
128
|
// V3 enter-numbers-v3 block has prerun with numbersCount output
|
|
129
|
-
expect(Object.keys(all)).toContain(
|
|
129
|
+
expect(Object.keys(all)).toContain("numbersCount");
|
|
130
130
|
});
|
|
131
131
|
|
|
132
132
|
// Render production for all blocks
|
|
133
|
-
await pl.withWriteTx(
|
|
133
|
+
await pl.withWriteTx("RenderProduction", async (tx) => {
|
|
134
134
|
const mut = await ProjectMutator.load(new ProjectHelper(quickJs), tx, prj);
|
|
135
|
-
mut.renderProduction([
|
|
135
|
+
mut.renderProduction(["enter1", "enter2", "sum1"]);
|
|
136
136
|
mut.doRefresh();
|
|
137
137
|
mut.save();
|
|
138
138
|
await tx.commit();
|
|
@@ -142,12 +142,12 @@ test('v3 blocks: basic test with unified state', async () => {
|
|
|
142
142
|
await poll(pl, async (tx) => {
|
|
143
143
|
const prjR = await tx.get(prj);
|
|
144
144
|
const prodOutput = await prjR
|
|
145
|
-
.get(projectFieldName(
|
|
145
|
+
.get(projectFieldName("sum1", "prodOutput"))
|
|
146
146
|
.then((r) => r.final());
|
|
147
147
|
const all = await prodOutput.getAllFinal();
|
|
148
|
-
expect(Object.keys(all)).toContain(
|
|
148
|
+
expect(Object.keys(all)).toContain("sum");
|
|
149
149
|
|
|
150
|
-
const sumValue = await prodOutput.get(
|
|
150
|
+
const sumValue = await prodOutput.get("sum");
|
|
151
151
|
const sum = JSON.parse(Buffer.from(sumValue.data.data!).toString());
|
|
152
152
|
// [1,2,3] + [4,5,6] = 21
|
|
153
153
|
expect(sum).toBe(21);
|
|
@@ -155,36 +155,38 @@ test('v3 blocks: basic test with unified state', async () => {
|
|
|
155
155
|
});
|
|
156
156
|
});
|
|
157
157
|
|
|
158
|
-
test(
|
|
158
|
+
test("v3 blocks: prerunArgs skip test", async () => {
|
|
159
159
|
const quickJs = await getQuickJS();
|
|
160
160
|
|
|
161
161
|
await TestHelpers.withTempRoot(async (pl) => {
|
|
162
|
-
const prj = await pl.withWriteTx(
|
|
162
|
+
const prj = await pl.withWriteTx("CreatingProject", async (tx) => {
|
|
163
163
|
const prjRef = await createProject(tx);
|
|
164
|
-
tx.createField(field(tx.clientRoot,
|
|
164
|
+
tx.createField(field(tx.clientRoot, "prj"), "Dynamic", prjRef);
|
|
165
165
|
await tx.commit();
|
|
166
166
|
return await toGlobalResourceId(prjRef);
|
|
167
167
|
});
|
|
168
168
|
|
|
169
169
|
// Add enter-numbers-v3 block
|
|
170
|
-
await pl.withWriteTx(
|
|
170
|
+
await pl.withWriteTx("AddEnterNumbersV3Block", async (tx) => {
|
|
171
171
|
const mut = await ProjectMutator.load(new ProjectHelper(quickJs), tx, prj);
|
|
172
172
|
mut.addBlock(
|
|
173
|
-
{ id:
|
|
173
|
+
{ id: "enter1", label: "Enter Numbers V3", renderingMode: "Heavy" },
|
|
174
174
|
{
|
|
175
|
-
storageMode:
|
|
176
|
-
blockPack: await TestBPPreparer.prepare(BPSpecEnterV3)
|
|
177
|
-
}
|
|
175
|
+
storageMode: "fromModel",
|
|
176
|
+
blockPack: await TestBPPreparer.prepare(BPSpecEnterV3),
|
|
177
|
+
},
|
|
178
178
|
);
|
|
179
179
|
// Set initial state: [3, 1, 2] - has one even number (2)
|
|
180
|
-
mut.setStates([
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
180
|
+
mut.setStates([
|
|
181
|
+
{
|
|
182
|
+
modelAPIVersion: 2,
|
|
183
|
+
blockId: "enter1",
|
|
184
|
+
payload: {
|
|
185
|
+
operation: "update-data",
|
|
186
|
+
value: { numbers: [3, 1, 2] },
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
]);
|
|
188
190
|
mut.doRefresh();
|
|
189
191
|
mut.save();
|
|
190
192
|
await tx.commit();
|
|
@@ -194,28 +196,30 @@ test('v3 blocks: prerunArgs skip test', async () => {
|
|
|
194
196
|
await poll(pl, async (tx) => {
|
|
195
197
|
const prjR = await tx.get(prj);
|
|
196
198
|
const stagingOutput = await prjR
|
|
197
|
-
.get(projectFieldName(
|
|
199
|
+
.get(projectFieldName("enter1", "stagingOutput"))
|
|
198
200
|
.then((r) => r.final());
|
|
199
201
|
const all = await stagingOutput.getAllFinal();
|
|
200
|
-
expect(Object.keys(all)).toContain(
|
|
202
|
+
expect(Object.keys(all)).toContain("numbersCount");
|
|
201
203
|
// Should count even numbers: [2] -> count = 1
|
|
202
|
-
const countValue = await stagingOutput.get(
|
|
204
|
+
const countValue = await stagingOutput.get("numbersCount");
|
|
203
205
|
const count = JSON.parse(Buffer.from(countValue.data.data!).toString());
|
|
204
206
|
expect(count).toBe(1);
|
|
205
207
|
});
|
|
206
208
|
|
|
207
209
|
// Change state: [3, 1, 2] -> [5, 1, 2]
|
|
208
210
|
// prerunArgs (evenNumbers) stays [2], so staging should be SKIPPED
|
|
209
|
-
await pl.withWriteTx(
|
|
211
|
+
await pl.withWriteTx("ChangeState_SamePrerunArgs", async (tx) => {
|
|
210
212
|
const mut = await ProjectMutator.load(new ProjectHelper(quickJs), tx, prj);
|
|
211
|
-
mut.setStates([
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
213
|
+
mut.setStates([
|
|
214
|
+
{
|
|
215
|
+
modelAPIVersion: 2,
|
|
216
|
+
blockId: "enter1",
|
|
217
|
+
payload: {
|
|
218
|
+
operation: "update-data",
|
|
219
|
+
value: { numbers: [5, 1, 2] }, // Changed odd numbers only
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
]);
|
|
219
223
|
mut.doRefresh();
|
|
220
224
|
mut.save();
|
|
221
225
|
await tx.commit();
|
|
@@ -225,25 +229,27 @@ test('v3 blocks: prerunArgs skip test', async () => {
|
|
|
225
229
|
await poll(pl, async (tx) => {
|
|
226
230
|
const prjR = await tx.get(prj);
|
|
227
231
|
const stagingOutput = await prjR
|
|
228
|
-
.get(projectFieldName(
|
|
232
|
+
.get(projectFieldName("enter1", "stagingOutput"))
|
|
229
233
|
.then((r) => r.final());
|
|
230
|
-
const countValue = await stagingOutput.get(
|
|
234
|
+
const countValue = await stagingOutput.get("numbersCount");
|
|
231
235
|
const count = JSON.parse(Buffer.from(countValue.data.data!).toString());
|
|
232
|
-
expect(count).toBe(1);
|
|
236
|
+
expect(count).toBe(1); // Still 1 (only [2] is even)
|
|
233
237
|
});
|
|
234
238
|
|
|
235
239
|
// Change state: [5, 1, 2] -> [5, 1, 4]
|
|
236
240
|
// prerunArgs (evenNumbers) changes from [2] to [4], so staging should RUN
|
|
237
|
-
await pl.withWriteTx(
|
|
241
|
+
await pl.withWriteTx("ChangeState_DifferentPrerunArgs", async (tx) => {
|
|
238
242
|
const mut = await ProjectMutator.load(new ProjectHelper(quickJs), tx, prj);
|
|
239
|
-
mut.setStates([
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
243
|
+
mut.setStates([
|
|
244
|
+
{
|
|
245
|
+
modelAPIVersion: 2,
|
|
246
|
+
blockId: "enter1",
|
|
247
|
+
payload: {
|
|
248
|
+
operation: "update-data",
|
|
249
|
+
value: { numbers: [5, 1, 4] }, // Changed even number from 2 to 4
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
]);
|
|
247
253
|
mut.doRefresh();
|
|
248
254
|
mut.save();
|
|
249
255
|
await tx.commit();
|
|
@@ -253,28 +259,27 @@ test('v3 blocks: prerunArgs skip test', async () => {
|
|
|
253
259
|
await poll(pl, async (tx) => {
|
|
254
260
|
const prjR = await tx.get(prj);
|
|
255
261
|
const stagingOutput = await prjR
|
|
256
|
-
.get(projectFieldName(
|
|
262
|
+
.get(projectFieldName("enter1", "stagingOutput"))
|
|
257
263
|
.then((r) => r.final());
|
|
258
|
-
const countValue = await stagingOutput.get(
|
|
264
|
+
const countValue = await stagingOutput.get("numbersCount");
|
|
259
265
|
const count = JSON.parse(Buffer.from(countValue.data.data!).toString());
|
|
260
|
-
expect(count).toBe(1);
|
|
266
|
+
expect(count).toBe(1); // Still 1 (only [4] is even)
|
|
261
267
|
});
|
|
262
268
|
|
|
263
269
|
// Verify prerunArgsJson output contains evenNumbers, not numbers
|
|
264
270
|
await poll(pl, async (tx) => {
|
|
265
271
|
const prjR = await tx.get(prj);
|
|
266
272
|
const stagingOutput = await prjR
|
|
267
|
-
.get(projectFieldName(
|
|
273
|
+
.get(projectFieldName("enter1", "stagingOutput"))
|
|
268
274
|
.then((r) => r.final());
|
|
269
275
|
|
|
270
|
-
const prerunArgsValue = await stagingOutput.get(
|
|
276
|
+
const prerunArgsValue = await stagingOutput.get("prerunArgsJson");
|
|
271
277
|
const prerunArgs = JSON.parse(Buffer.from(prerunArgsValue.data.data!).toString());
|
|
272
278
|
|
|
273
279
|
// Should have evenNumbers, NOT numbers
|
|
274
|
-
expect(prerunArgs).toHaveProperty(
|
|
280
|
+
expect(prerunArgs).toHaveProperty("evenNumbers");
|
|
275
281
|
expect(prerunArgs.evenNumbers).toStrictEqual([4]);
|
|
276
|
-
expect(prerunArgs).not.toHaveProperty(
|
|
282
|
+
expect(prerunArgs).not.toHaveProperty("numbers");
|
|
277
283
|
});
|
|
278
284
|
});
|
|
279
285
|
});
|
|
280
|
-
|