@milaboratories/pl-middle-layer 1.42.2 → 1.42.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/block_registry/index.d.ts +0 -1
- package/dist/block_registry/registry-v2-provider.cjs +22 -0
- package/dist/block_registry/registry-v2-provider.cjs.map +1 -0
- package/dist/block_registry/registry-v2-provider.d.ts +0 -1
- package/dist/block_registry/registry-v2-provider.js +20 -0
- package/dist/block_registry/registry-v2-provider.js.map +1 -0
- package/dist/block_registry/registry.cjs +231 -0
- package/dist/block_registry/registry.cjs.map +1 -0
- package/dist/block_registry/registry.d.ts +0 -1
- package/dist/block_registry/registry.js +227 -0
- package/dist/block_registry/registry.js.map +1 -0
- package/dist/block_registry/registry.test.d.ts +0 -1
- package/dist/block_registry/watcher.cjs +174 -0
- package/dist/block_registry/watcher.cjs.map +1 -0
- package/dist/block_registry/watcher.d.ts +0 -1
- package/dist/block_registry/watcher.js +171 -0
- package/dist/block_registry/watcher.js.map +1 -0
- package/dist/block_registry/well_known_registries.cjs +19 -0
- package/dist/block_registry/well_known_registries.cjs.map +1 -0
- package/dist/block_registry/well_known_registries.d.ts +0 -1
- package/dist/block_registry/well_known_registries.js +15 -0
- package/dist/block_registry/well_known_registries.js.map +1 -0
- package/dist/cfg_render/executor.cjs +159 -0
- package/dist/cfg_render/executor.cjs.map +1 -0
- package/dist/cfg_render/executor.d.ts +0 -1
- package/dist/cfg_render/executor.js +156 -0
- package/dist/cfg_render/executor.js.map +1 -0
- package/dist/cfg_render/executor.test.d.ts +0 -1
- package/dist/cfg_render/operation.d.ts +0 -1
- package/dist/cfg_render/renderer.cjs +528 -0
- package/dist/cfg_render/renderer.cjs.map +1 -0
- package/dist/cfg_render/renderer.d.ts +0 -1
- package/dist/cfg_render/renderer.js +525 -0
- package/dist/cfg_render/renderer.js.map +1 -0
- package/dist/cfg_render/traverse.cjs +65 -0
- package/dist/cfg_render/traverse.cjs.map +1 -0
- package/dist/cfg_render/traverse.d.ts +0 -1
- package/dist/cfg_render/traverse.js +63 -0
- package/dist/cfg_render/traverse.js.map +1 -0
- package/dist/cfg_render/util.cjs +32 -0
- package/dist/cfg_render/util.cjs.map +1 -0
- package/dist/cfg_render/util.d.ts +0 -1
- package/dist/cfg_render/util.js +28 -0
- package/dist/cfg_render/util.js.map +1 -0
- package/dist/debug/index.cjs +21 -0
- package/dist/debug/index.cjs.map +1 -0
- package/dist/debug/index.d.ts +0 -1
- package/dist/debug/index.js +19 -0
- package/dist/debug/index.js.map +1 -0
- package/dist/dev_env/index.cjs +59 -0
- package/dist/dev_env/index.cjs.map +1 -0
- package/dist/dev_env/index.d.ts +0 -1
- package/dist/dev_env/index.js +48 -0
- package/dist/dev_env/index.js.map +1 -0
- package/dist/dev_env/util.cjs +37 -0
- package/dist/dev_env/util.cjs.map +1 -0
- package/dist/dev_env/util.d.ts +0 -1
- package/dist/dev_env/util.js +16 -0
- package/dist/dev_env/util.js.map +1 -0
- package/dist/index.cjs +74 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +15 -75
- package/dist/index.js.map +1 -1
- package/dist/js_render/computable_context.cjs +525 -0
- package/dist/js_render/computable_context.cjs.map +1 -0
- package/dist/js_render/computable_context.d.ts +0 -1
- package/dist/js_render/computable_context.js +523 -0
- package/dist/js_render/computable_context.js.map +1 -0
- package/dist/js_render/context.cjs +229 -0
- package/dist/js_render/context.cjs.map +1 -0
- package/dist/js_render/context.d.ts +0 -1
- package/dist/js_render/context.js +226 -0
- package/dist/js_render/context.js.map +1 -0
- package/dist/js_render/index.cjs +163 -0
- package/dist/js_render/index.cjs.map +1 -0
- package/dist/js_render/index.d.ts +0 -1
- package/dist/js_render/index.js +160 -0
- package/dist/js_render/index.js.map +1 -0
- package/dist/middle_layer/active_cfg.cjs +37 -0
- package/dist/middle_layer/active_cfg.cjs.map +1 -0
- package/dist/middle_layer/active_cfg.d.ts +0 -1
- package/dist/middle_layer/active_cfg.js +35 -0
- package/dist/middle_layer/active_cfg.js.map +1 -0
- package/dist/middle_layer/block.cjs +51 -0
- package/dist/middle_layer/block.cjs.map +1 -0
- package/dist/middle_layer/block.d.ts +0 -1
- package/dist/middle_layer/block.js +48 -0
- package/dist/middle_layer/block.js.map +1 -0
- package/dist/middle_layer/block_ctx.cjs +87 -0
- package/dist/middle_layer/block_ctx.cjs.map +1 -0
- package/dist/middle_layer/block_ctx.d.ts +0 -1
- package/dist/middle_layer/block_ctx.js +84 -0
- package/dist/middle_layer/block_ctx.js.map +1 -0
- package/dist/middle_layer/block_ctx_unsafe.cjs +19 -0
- package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -0
- package/dist/middle_layer/block_ctx_unsafe.d.ts +0 -1
- package/dist/middle_layer/block_ctx_unsafe.js +16 -0
- package/dist/middle_layer/block_ctx_unsafe.js.map +1 -0
- package/dist/middle_layer/driver_kit.cjs +42 -0
- package/dist/middle_layer/driver_kit.cjs.map +1 -0
- package/dist/middle_layer/driver_kit.d.ts +0 -1
- package/dist/middle_layer/driver_kit.js +40 -0
- package/dist/middle_layer/driver_kit.js.map +1 -0
- package/dist/middle_layer/frontend_path.cjs +64 -0
- package/dist/middle_layer/frontend_path.cjs.map +1 -0
- package/dist/middle_layer/frontend_path.d.ts +0 -1
- package/dist/middle_layer/frontend_path.js +62 -0
- package/dist/middle_layer/frontend_path.js.map +1 -0
- package/dist/middle_layer/index.d.ts +0 -1
- package/dist/middle_layer/middle_layer.cjs +226 -0
- package/dist/middle_layer/middle_layer.cjs.map +1 -0
- package/dist/middle_layer/middle_layer.d.ts +0 -1
- package/dist/middle_layer/middle_layer.js +224 -0
- package/dist/middle_layer/middle_layer.js.map +1 -0
- package/dist/middle_layer/navigation_states.cjs +41 -0
- package/dist/middle_layer/navigation_states.cjs.map +1 -0
- package/dist/middle_layer/navigation_states.d.ts +0 -1
- package/dist/middle_layer/navigation_states.js +39 -0
- package/dist/middle_layer/navigation_states.js.map +1 -0
- package/dist/middle_layer/ops.cjs +75 -0
- package/dist/middle_layer/ops.cjs.map +1 -0
- package/dist/middle_layer/ops.d.ts +0 -1
- package/dist/middle_layer/ops.js +70 -0
- package/dist/middle_layer/ops.js.map +1 -0
- package/dist/middle_layer/project.cjs +446 -0
- package/dist/middle_layer/project.cjs.map +1 -0
- package/dist/middle_layer/project.d.ts +0 -1
- package/dist/middle_layer/project.js +444 -0
- package/dist/middle_layer/project.js.map +1 -0
- package/dist/middle_layer/project_list.cjs +53 -0
- package/dist/middle_layer/project_list.cjs.map +1 -0
- package/dist/middle_layer/project_list.d.ts +0 -1
- package/dist/middle_layer/project_list.js +48 -0
- package/dist/middle_layer/project_list.js.map +1 -0
- package/dist/middle_layer/project_overview.cjs +225 -0
- package/dist/middle_layer/project_overview.cjs.map +1 -0
- package/dist/middle_layer/project_overview.d.ts +0 -1
- package/dist/middle_layer/project_overview.js +204 -0
- package/dist/middle_layer/project_overview.js.map +1 -0
- package/dist/middle_layer/project_overview_light.cjs +20 -0
- package/dist/middle_layer/project_overview_light.cjs.map +1 -0
- package/dist/middle_layer/project_overview_light.d.ts +0 -1
- package/dist/middle_layer/project_overview_light.js +18 -0
- package/dist/middle_layer/project_overview_light.js.map +1 -0
- package/dist/middle_layer/render.cjs +26 -0
- package/dist/middle_layer/render.cjs.map +1 -0
- package/dist/middle_layer/render.d.ts +0 -1
- package/dist/middle_layer/render.js +23 -0
- package/dist/middle_layer/render.js.map +1 -0
- package/dist/middle_layer/render.test.d.ts +0 -1
- package/dist/middle_layer/types.d.ts +0 -1
- package/dist/middle_layer/util.cjs +22 -0
- package/dist/middle_layer/util.cjs.map +1 -0
- package/dist/middle_layer/util.d.ts +0 -1
- package/dist/middle_layer/util.js +20 -0
- package/dist/middle_layer/util.js.map +1 -0
- package/dist/model/args.cjs +62 -0
- package/dist/model/args.cjs.map +1 -0
- package/dist/model/args.d.ts +0 -1
- package/dist/model/args.js +58 -0
- package/dist/model/args.js.map +1 -0
- package/dist/model/block_pack.d.ts +0 -1
- package/dist/model/block_pack_spec.cjs +11 -0
- package/dist/model/block_pack_spec.cjs.map +1 -0
- package/dist/model/block_pack_spec.d.ts +0 -1
- package/dist/model/block_pack_spec.js +8 -0
- package/dist/model/block_pack_spec.js.map +1 -0
- package/dist/model/frontend.d.ts +0 -1
- package/dist/model/index.d.ts +0 -1
- package/dist/model/project_helper.cjs +36 -0
- package/dist/model/project_helper.cjs.map +1 -0
- package/dist/model/project_helper.d.ts +0 -1
- package/dist/model/project_helper.js +34 -0
- package/dist/model/project_helper.js.map +1 -0
- package/dist/model/project_model.cjs +74 -0
- package/dist/model/project_model.cjs.map +1 -0
- package/dist/model/project_model.d.ts +0 -1
- package/dist/model/project_model.js +54 -0
- package/dist/model/project_model.js.map +1 -0
- package/dist/model/project_model.test.d.ts +0 -1
- package/dist/model/project_model_util.cjs +176 -0
- package/dist/model/project_model_util.cjs.map +1 -0
- package/dist/model/project_model_util.d.ts +0 -1
- package/dist/model/project_model_util.js +170 -0
- package/dist/model/project_model_util.js.map +1 -0
- package/dist/model/project_model_util.test.d.ts +0 -1
- package/dist/model/project_model_v1.cjs +9 -0
- package/dist/model/project_model_v1.cjs.map +1 -0
- package/dist/model/project_model_v1.d.ts +0 -1
- package/dist/model/project_model_v1.js +6 -0
- package/dist/model/project_model_v1.js.map +1 -0
- package/dist/model/template_spec.d.ts +0 -1
- package/dist/mutator/block-pack/block_pack.cjs +233 -0
- package/dist/mutator/block-pack/block_pack.cjs.map +1 -0
- package/dist/mutator/block-pack/block_pack.d.ts +0 -1
- package/dist/mutator/block-pack/block_pack.js +227 -0
- package/dist/mutator/block-pack/block_pack.js.map +1 -0
- package/dist/mutator/block-pack/block_pack.test.d.ts +0 -1
- package/dist/mutator/block-pack/frontend.cjs +21 -0
- package/dist/mutator/block-pack/frontend.cjs.map +1 -0
- package/dist/mutator/block-pack/frontend.d.ts +0 -1
- package/dist/mutator/block-pack/frontend.js +19 -0
- package/dist/mutator/block-pack/frontend.js.map +1 -0
- package/dist/mutator/context_export.cjs +26 -0
- package/dist/mutator/context_export.cjs.map +1 -0
- package/dist/mutator/context_export.d.ts +2 -3
- package/dist/mutator/context_export.js +23 -0
- package/dist/mutator/context_export.js.map +1 -0
- package/dist/mutator/migration.cjs +57 -0
- package/dist/mutator/migration.cjs.map +1 -0
- package/dist/mutator/migration.d.ts +0 -1
- package/dist/mutator/migration.js +55 -0
- package/dist/mutator/migration.js.map +1 -0
- package/dist/mutator/project.cjs +997 -0
- package/dist/mutator/project.cjs.map +1 -0
- package/dist/mutator/project.d.ts +0 -1
- package/dist/mutator/project.js +992 -0
- package/dist/mutator/project.js.map +1 -0
- package/dist/mutator/project.test.d.ts +0 -1
- package/dist/mutator/template/direct_template_loader.cjs +146 -0
- package/dist/mutator/template/direct_template_loader.cjs.map +1 -0
- package/dist/mutator/template/direct_template_loader.d.ts +0 -1
- package/dist/mutator/template/direct_template_loader.js +143 -0
- package/dist/mutator/template/direct_template_loader.js.map +1 -0
- package/dist/mutator/template/direct_template_loader_v3.cjs +139 -0
- package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -0
- package/dist/mutator/template/direct_template_loader_v3.d.ts +0 -1
- package/dist/mutator/template/direct_template_loader_v3.js +137 -0
- package/dist/mutator/template/direct_template_loader_v3.js.map +1 -0
- package/dist/mutator/template/render_block.cjs +43 -0
- package/dist/mutator/template/render_block.cjs.map +1 -0
- package/dist/mutator/template/render_block.d.ts +0 -1
- package/dist/mutator/template/render_block.js +34 -0
- package/dist/mutator/template/render_block.js.map +1 -0
- package/dist/mutator/template/render_template.cjs +35 -0
- package/dist/mutator/template/render_template.cjs.map +1 -0
- package/dist/mutator/template/render_template.d.ts +0 -1
- package/dist/mutator/template/render_template.js +33 -0
- package/dist/mutator/template/render_template.js.map +1 -0
- package/dist/mutator/template/template_loading.cjs +71 -0
- package/dist/mutator/template/template_loading.cjs.map +1 -0
- package/dist/mutator/template/template_loading.d.ts +0 -1
- package/dist/mutator/template/template_loading.js +60 -0
- package/dist/mutator/template/template_loading.js.map +1 -0
- package/dist/mutator/template/template_render.test.d.ts +0 -1
- package/dist/network_check/network_check.cjs +267 -0
- package/dist/network_check/network_check.cjs.map +1 -0
- package/dist/network_check/network_check.d.ts +0 -1
- package/dist/network_check/network_check.js +264 -0
- package/dist/network_check/network_check.js.map +1 -0
- package/dist/network_check/network_check.test.d.ts +0 -1
- package/dist/network_check/pings.cjs +107 -0
- package/dist/network_check/pings.cjs.map +1 -0
- package/dist/network_check/pings.d.ts +0 -1
- package/dist/network_check/pings.js +96 -0
- package/dist/network_check/pings.js.map +1 -0
- package/dist/network_check/template.cjs +318 -0
- package/dist/network_check/template.cjs.map +1 -0
- package/dist/network_check/template.d.ts +0 -1
- package/dist/network_check/template.js +302 -0
- package/dist/network_check/template.js.map +1 -0
- package/dist/network_check/template.test.d.ts +0 -1
- package/dist/network_check/test_utils.d.ts +0 -1
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.cjs +77 -0
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.cjs.map +1 -0
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.js +74 -0
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/pool/data.cjs +298 -0
- package/dist/pool/data.cjs.map +1 -0
- package/dist/pool/data.d.ts +7 -9
- package/dist/pool/data.js +282 -0
- package/dist/pool/data.js.map +1 -0
- package/dist/pool/driver.cjs +620 -0
- package/dist/pool/driver.cjs.map +1 -0
- package/dist/pool/driver.d.ts +0 -1
- package/dist/pool/driver.js +598 -0
- package/dist/pool/driver.js.map +1 -0
- package/dist/pool/index.d.ts +0 -1
- package/dist/pool/p_object_collection.cjs +87 -0
- package/dist/pool/p_object_collection.cjs.map +1 -0
- package/dist/pool/p_object_collection.d.ts +0 -1
- package/dist/pool/p_object_collection.js +84 -0
- package/dist/pool/p_object_collection.js.map +1 -0
- package/dist/pool/ref_count_pool.cjs +58 -0
- package/dist/pool/ref_count_pool.cjs.map +1 -0
- package/dist/pool/ref_count_pool.d.ts +0 -1
- package/dist/pool/ref_count_pool.js +56 -0
- package/dist/pool/ref_count_pool.js.map +1 -0
- package/dist/pool/result_pool.cjs +265 -0
- package/dist/pool/result_pool.cjs.map +1 -0
- package/dist/pool/result_pool.d.ts +0 -1
- package/dist/pool/result_pool.js +263 -0
- package/dist/pool/result_pool.js.map +1 -0
- package/dist/test/block_packs.d.ts +0 -1
- package/dist/test/explicit_templates.d.ts +0 -1
- package/dist/test/known_templates.d.ts +0 -1
- package/dist/test_env.d.ts +0 -1
- package/dist/worker/WorkerManager.cjs +53 -0
- package/dist/worker/WorkerManager.cjs.map +1 -0
- package/dist/worker/WorkerManager.d.ts +0 -1
- package/dist/worker/WorkerManager.js +51 -0
- package/dist/worker/WorkerManager.js.map +1 -0
- package/dist/worker/worker.cjs +16 -0
- package/dist/worker/worker.cjs.map +1 -0
- package/dist/worker/worker.d.ts +0 -1
- package/dist/worker/worker.js +14 -0
- package/dist/worker/worker.js.map +1 -0
- package/dist/worker/workerApi.cjs +20 -0
- package/dist/worker/workerApi.cjs.map +1 -0
- package/dist/worker/workerApi.d.ts +1 -3
- package/dist/worker/workerApi.js +18 -0
- package/dist/worker/workerApi.js.map +1 -0
- package/package.json +26 -34
- package/src/cfg_render/executor.test.ts +5 -4
- package/src/model/project_model.test.ts +3 -3
- package/src/model/project_model_util.test.ts +3 -2
- package/src/mutator/block-pack/block_pack.test.ts +5 -4
- package/src/mutator/project.test.ts +4 -4
- package/src/mutator/template/template_render.test.ts +7 -6
- package/src/network_check/network_check.test.ts +1 -0
- package/src/network_check/test_utils.ts +2 -0
- package/src/worker/WorkerManager.ts +6 -8
- package/dist/block_registry/index.d.ts.map +0 -1
- package/dist/block_registry/registry-v2-provider.d.ts.map +0 -1
- package/dist/block_registry/registry.d.ts.map +0 -1
- package/dist/block_registry/registry.test.d.ts.map +0 -1
- package/dist/block_registry/watcher.d.ts.map +0 -1
- package/dist/block_registry/well_known_registries.d.ts.map +0 -1
- package/dist/cfg_render/executor.d.ts.map +0 -1
- package/dist/cfg_render/executor.test.d.ts.map +0 -1
- package/dist/cfg_render/operation.d.ts.map +0 -1
- package/dist/cfg_render/renderer.d.ts.map +0 -1
- package/dist/cfg_render/traverse.d.ts.map +0 -1
- package/dist/cfg_render/util.d.ts.map +0 -1
- package/dist/debug/index.d.ts.map +0 -1
- package/dist/dev_env/index.d.ts.map +0 -1
- package/dist/dev_env/util.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs +0 -6742
- package/dist/index.mjs.map +0 -1
- package/dist/js_render/computable_context.d.ts.map +0 -1
- package/dist/js_render/context.d.ts.map +0 -1
- package/dist/js_render/index.d.ts.map +0 -1
- package/dist/middle_layer/active_cfg.d.ts.map +0 -1
- package/dist/middle_layer/block.d.ts.map +0 -1
- package/dist/middle_layer/block_ctx.d.ts.map +0 -1
- package/dist/middle_layer/block_ctx_unsafe.d.ts.map +0 -1
- package/dist/middle_layer/driver_kit.d.ts.map +0 -1
- package/dist/middle_layer/frontend_path.d.ts.map +0 -1
- package/dist/middle_layer/index.d.ts.map +0 -1
- package/dist/middle_layer/middle_layer.d.ts.map +0 -1
- package/dist/middle_layer/navigation_states.d.ts.map +0 -1
- package/dist/middle_layer/ops.d.ts.map +0 -1
- package/dist/middle_layer/project.d.ts.map +0 -1
- package/dist/middle_layer/project_list.d.ts.map +0 -1
- package/dist/middle_layer/project_overview.d.ts.map +0 -1
- package/dist/middle_layer/project_overview_light.d.ts.map +0 -1
- package/dist/middle_layer/render.d.ts.map +0 -1
- package/dist/middle_layer/render.test.d.ts.map +0 -1
- package/dist/middle_layer/types.d.ts.map +0 -1
- package/dist/middle_layer/util.d.ts.map +0 -1
- package/dist/model/args.d.ts.map +0 -1
- package/dist/model/block_pack.d.ts.map +0 -1
- package/dist/model/block_pack_spec.d.ts.map +0 -1
- package/dist/model/frontend.d.ts.map +0 -1
- package/dist/model/index.d.ts.map +0 -1
- package/dist/model/project_helper.d.ts.map +0 -1
- package/dist/model/project_model.d.ts.map +0 -1
- package/dist/model/project_model.test.d.ts.map +0 -1
- package/dist/model/project_model_util.d.ts.map +0 -1
- package/dist/model/project_model_util.test.d.ts.map +0 -1
- package/dist/model/project_model_v1.d.ts.map +0 -1
- package/dist/model/template_spec.d.ts.map +0 -1
- package/dist/mutator/block-pack/block_pack.d.ts.map +0 -1
- package/dist/mutator/block-pack/block_pack.test.d.ts.map +0 -1
- package/dist/mutator/block-pack/frontend.d.ts.map +0 -1
- package/dist/mutator/context_export.d.ts.map +0 -1
- package/dist/mutator/migration.d.ts.map +0 -1
- package/dist/mutator/project.d.ts.map +0 -1
- package/dist/mutator/project.test.d.ts.map +0 -1
- package/dist/mutator/template/direct_template_loader.d.ts.map +0 -1
- package/dist/mutator/template/direct_template_loader_v3.d.ts.map +0 -1
- package/dist/mutator/template/render_block.d.ts.map +0 -1
- package/dist/mutator/template/render_template.d.ts.map +0 -1
- package/dist/mutator/template/template_loading.d.ts.map +0 -1
- package/dist/mutator/template/template_render.test.d.ts.map +0 -1
- package/dist/network_check/network_check.d.ts.map +0 -1
- package/dist/network_check/network_check.test.d.ts.map +0 -1
- package/dist/network_check/pings.d.ts.map +0 -1
- package/dist/network_check/template.d.ts.map +0 -1
- package/dist/network_check/template.test.d.ts.map +0 -1
- package/dist/network_check/test_utils.d.ts.map +0 -1
- package/dist/pool/data.d.ts.map +0 -1
- package/dist/pool/driver.d.ts.map +0 -1
- package/dist/pool/index.d.ts.map +0 -1
- package/dist/pool/p_object_collection.d.ts.map +0 -1
- package/dist/pool/ref_count_pool.d.ts.map +0 -1
- package/dist/pool/result_pool.d.ts.map +0 -1
- package/dist/test/block_packs.d.ts.map +0 -1
- package/dist/test/explicit_templates.d.ts.map +0 -1
- package/dist/test/known_templates.d.ts.map +0 -1
- package/dist/test_env.d.ts.map +0 -1
- package/dist/worker/WorkerManager.d.ts.map +0 -1
- package/dist/worker/worker.d.ts.map +0 -1
- package/dist/worker/workerApi.d.ts.map +0 -1
- package/dist/worker.js +0 -2
- package/dist/worker.js.map +0 -1
- package/dist/worker.mjs +0 -20
- package/dist/worker.mjs.map +0 -1
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
import { mapRecord } from './util.js';
|
|
2
|
+
import { computableFromCfgUnsafe } from './executor.js';
|
|
3
|
+
import { assertNever } from '@milaboratories/ts-helpers';
|
|
4
|
+
import { Computable } from '@milaboratories/computable';
|
|
5
|
+
|
|
6
|
+
function res(result) {
|
|
7
|
+
return {
|
|
8
|
+
type: 'ReturnResult',
|
|
9
|
+
result: result,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function resOp(result) {
|
|
13
|
+
return () => res(result);
|
|
14
|
+
}
|
|
15
|
+
//
|
|
16
|
+
// Subroutines
|
|
17
|
+
//
|
|
18
|
+
const SRMakeObject = (args) => {
|
|
19
|
+
const result = {};
|
|
20
|
+
for (const [k, v] of Object.entries(args))
|
|
21
|
+
result[k] = v;
|
|
22
|
+
return resOp(result);
|
|
23
|
+
};
|
|
24
|
+
const SRFlatten = (args) => {
|
|
25
|
+
const source = args.source;
|
|
26
|
+
if (source === undefined)
|
|
27
|
+
return resOp(undefined);
|
|
28
|
+
const result = [];
|
|
29
|
+
for (const nested of source) {
|
|
30
|
+
if (nested instanceof Array)
|
|
31
|
+
result.push(...nested);
|
|
32
|
+
else
|
|
33
|
+
result.push(nested);
|
|
34
|
+
}
|
|
35
|
+
return resOp(result);
|
|
36
|
+
};
|
|
37
|
+
const SRGetResourceField = (args) => {
|
|
38
|
+
const source = args.source;
|
|
39
|
+
const field = args.field;
|
|
40
|
+
if (source === undefined || field === undefined)
|
|
41
|
+
return resOp(undefined);
|
|
42
|
+
return ({ cCtx }) => {
|
|
43
|
+
return res(cCtx.accessor(source).node().traverse(field)?.persist());
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
function mapArrayToRecord(elements, cb) {
|
|
47
|
+
const result = {};
|
|
48
|
+
const length = elements.length;
|
|
49
|
+
for (let i = 0; i < length; i++)
|
|
50
|
+
result[String(i)] = cb(elements[i]);
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
function SRMapArrayValues1(ctx, ops) {
|
|
54
|
+
return (args) => {
|
|
55
|
+
const source = args.source;
|
|
56
|
+
if (source === undefined)
|
|
57
|
+
return resOp(undefined);
|
|
58
|
+
return () => ({
|
|
59
|
+
type: 'ScheduleSubroutine',
|
|
60
|
+
subroutine: SRCollectArrayFromArgs(source.length),
|
|
61
|
+
args: mapArrayToRecord(source, (e) => renderCfg({ ...ctx, [ops.itVar]: e }, ops.mapping)),
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function SRCollectArrayFromArgs(length) {
|
|
66
|
+
return (args) => {
|
|
67
|
+
const result = [];
|
|
68
|
+
for (let i = 0; i < length; i++)
|
|
69
|
+
result.push(args[String(i)]);
|
|
70
|
+
return resOp(result);
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function SRMapRecordValues1(ctx, ops) {
|
|
74
|
+
return (args) => {
|
|
75
|
+
const source = args.source;
|
|
76
|
+
if (source === undefined)
|
|
77
|
+
return resOp(undefined);
|
|
78
|
+
const nextArgs = {};
|
|
79
|
+
for (const [k, v] of Object.entries(source)) {
|
|
80
|
+
const newCtx = { ...ctx, [ops.itVar]: v };
|
|
81
|
+
nextArgs[k] = renderCfg(newCtx, ops.mapping);
|
|
82
|
+
}
|
|
83
|
+
return () => ({
|
|
84
|
+
type: 'ScheduleSubroutine',
|
|
85
|
+
subroutine: SRMapRecordValues2,
|
|
86
|
+
args: nextArgs,
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const SRMapRecordValues2 = (args) => {
|
|
91
|
+
return resOp(args);
|
|
92
|
+
};
|
|
93
|
+
const SRIsEmpty = (args) => {
|
|
94
|
+
const arg = args.arg;
|
|
95
|
+
if (arg === undefined)
|
|
96
|
+
return resOp(undefined);
|
|
97
|
+
return resOp(arg.length === 0);
|
|
98
|
+
};
|
|
99
|
+
const SRNot = (args) => {
|
|
100
|
+
const operand = args.operand;
|
|
101
|
+
if (operand === undefined)
|
|
102
|
+
return resOp(undefined);
|
|
103
|
+
return resOp(!operand);
|
|
104
|
+
};
|
|
105
|
+
const SRAnd = (args) => {
|
|
106
|
+
const operand1 = args.operand1;
|
|
107
|
+
const operand2 = args.operand2;
|
|
108
|
+
if (operand1 === undefined || operand2 === undefined)
|
|
109
|
+
return resOp(undefined);
|
|
110
|
+
return resOp(operand1 && operand2);
|
|
111
|
+
};
|
|
112
|
+
const SROr = (args) => {
|
|
113
|
+
const operand1 = args.operand1;
|
|
114
|
+
const operand2 = args.operand2;
|
|
115
|
+
if (operand1 === undefined || operand2 === undefined)
|
|
116
|
+
return resOp(undefined);
|
|
117
|
+
return resOp(operand1 || operand2);
|
|
118
|
+
};
|
|
119
|
+
const SRResourceValueAsJson = (args) => {
|
|
120
|
+
const source = args.source;
|
|
121
|
+
if (source === undefined)
|
|
122
|
+
return resOp(undefined);
|
|
123
|
+
return ({ cCtx }) => res(cCtx.accessor(source).node()?.getDataAsJson());
|
|
124
|
+
};
|
|
125
|
+
const SRGetJsonField = (args) => {
|
|
126
|
+
const source = args.source;
|
|
127
|
+
const field = args.field;
|
|
128
|
+
if (source === undefined || field === undefined)
|
|
129
|
+
return resOp(undefined);
|
|
130
|
+
return resOp(source[field]);
|
|
131
|
+
};
|
|
132
|
+
function SRMapResourceFields1(ctx, ops) {
|
|
133
|
+
return (args) => {
|
|
134
|
+
const source = args.source;
|
|
135
|
+
if (source === undefined)
|
|
136
|
+
return resOp(undefined);
|
|
137
|
+
return ({ cCtx }) => {
|
|
138
|
+
const node = cCtx.accessor(source).node();
|
|
139
|
+
const nextArgs = {};
|
|
140
|
+
for (const fieldName of node.listInputFields()) {
|
|
141
|
+
const res = node.traverse(fieldName);
|
|
142
|
+
if (res === undefined)
|
|
143
|
+
nextArgs[fieldName] = resOp(undefined);
|
|
144
|
+
else {
|
|
145
|
+
const newCtx = { ...ctx, [ops.itVar]: res.persist() };
|
|
146
|
+
nextArgs[fieldName] = renderCfg(newCtx, ops.mapping);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
type: 'ScheduleSubroutine',
|
|
151
|
+
subroutine: SRMapResourceFields2,
|
|
152
|
+
args: nextArgs,
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
const SRMapResourceFields2 = (args) => {
|
|
158
|
+
return resOp(args);
|
|
159
|
+
};
|
|
160
|
+
const SRGetBlobContent = (range) => (args) => {
|
|
161
|
+
const source = args.source;
|
|
162
|
+
if (source === undefined)
|
|
163
|
+
return resOp(undefined);
|
|
164
|
+
return ({ drivers }) => {
|
|
165
|
+
return {
|
|
166
|
+
type: 'ScheduleComputable',
|
|
167
|
+
computable: Computable.make((ctx) => {
|
|
168
|
+
return drivers.blobDriver.getDownloadedBlob(ctx.accessor(source).node().resourceInfo);
|
|
169
|
+
}, {
|
|
170
|
+
postprocessValue: async (value) => {
|
|
171
|
+
if (value === undefined)
|
|
172
|
+
return undefined;
|
|
173
|
+
return await drivers.blobDriver.getContent(value.handle, range);
|
|
174
|
+
},
|
|
175
|
+
}),
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
const SRGetBlobContentAsString = (range) => (args) => {
|
|
180
|
+
const source = args.source;
|
|
181
|
+
if (source === undefined)
|
|
182
|
+
return resOp(undefined);
|
|
183
|
+
return ({ cCtx, drivers }) => {
|
|
184
|
+
// getting target resource id and type
|
|
185
|
+
const resourceInfo = cCtx.accessor(source).node().resourceInfo;
|
|
186
|
+
return {
|
|
187
|
+
type: 'ScheduleComputable',
|
|
188
|
+
computable: Computable.make((ctx) => drivers.blobDriver.getDownloadedBlob(resourceInfo, ctx), {
|
|
189
|
+
postprocessValue: async (value) => {
|
|
190
|
+
if (value === undefined)
|
|
191
|
+
return undefined;
|
|
192
|
+
const content = await drivers.blobDriver.getContent(value.handle, range);
|
|
193
|
+
return content.toString();
|
|
194
|
+
},
|
|
195
|
+
}),
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
const SRGetBlobContentAsJson = (range) => (args) => {
|
|
200
|
+
const source = args.source;
|
|
201
|
+
if (source === undefined)
|
|
202
|
+
return resOp(undefined);
|
|
203
|
+
return ({ drivers }) => {
|
|
204
|
+
return {
|
|
205
|
+
type: 'ScheduleComputable',
|
|
206
|
+
computable: Computable.make((c) => drivers.blobDriver.getDownloadedBlob(c.accessor(source).node().resourceInfo, c), {
|
|
207
|
+
postprocessValue: async (value) => {
|
|
208
|
+
if (value == undefined)
|
|
209
|
+
return undefined;
|
|
210
|
+
const content = await drivers.blobDriver.getContent(value.handle, range);
|
|
211
|
+
if (content == undefined)
|
|
212
|
+
return undefined;
|
|
213
|
+
return JSON.parse(Buffer.from(content).toString());
|
|
214
|
+
},
|
|
215
|
+
}),
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
const SRGetDownloadedBlobContent = (args) => {
|
|
220
|
+
const source = args.source;
|
|
221
|
+
if (source === undefined)
|
|
222
|
+
return resOp(undefined);
|
|
223
|
+
return (ctx) => {
|
|
224
|
+
return {
|
|
225
|
+
type: 'ScheduleComputable',
|
|
226
|
+
computable: ctx.drivers.blobDriver.getDownloadedBlob(source),
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
const SRGetOnDemandBlobContent = (args) => {
|
|
231
|
+
const source = args.source;
|
|
232
|
+
if (source === undefined)
|
|
233
|
+
return resOp(undefined);
|
|
234
|
+
return ({ drivers }) => {
|
|
235
|
+
return {
|
|
236
|
+
type: 'ScheduleComputable',
|
|
237
|
+
computable: drivers.blobDriver.getOnDemandBlob(source),
|
|
238
|
+
};
|
|
239
|
+
};
|
|
240
|
+
};
|
|
241
|
+
const SRExtractArchiveAndGetURL = (format) => (args) => {
|
|
242
|
+
const source = args.source;
|
|
243
|
+
if (source === undefined)
|
|
244
|
+
return resOp(undefined);
|
|
245
|
+
return ({ drivers }) => {
|
|
246
|
+
return {
|
|
247
|
+
type: 'ScheduleComputable',
|
|
248
|
+
computable: drivers.blobToURLDriver.extractArchiveAndGetURL(source, format),
|
|
249
|
+
};
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
const SRGetImportProgress = (args) => {
|
|
253
|
+
const source = args.source;
|
|
254
|
+
if (source === undefined)
|
|
255
|
+
return resOp(undefined);
|
|
256
|
+
return ({ drivers }) => {
|
|
257
|
+
return {
|
|
258
|
+
type: 'ScheduleComputable',
|
|
259
|
+
computable: drivers.uploadDriver.getProgressId(source),
|
|
260
|
+
};
|
|
261
|
+
};
|
|
262
|
+
};
|
|
263
|
+
const SRGetLastLogs = (lines) => (args) => {
|
|
264
|
+
const source = args.source;
|
|
265
|
+
if (source === undefined)
|
|
266
|
+
return resOp(undefined);
|
|
267
|
+
return ({ drivers }) => {
|
|
268
|
+
return {
|
|
269
|
+
type: 'ScheduleComputable',
|
|
270
|
+
computable: drivers.logDriver.getLastLogs(source, lines),
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
const SRGetProgressLog = (patternToSearch) => (args) => {
|
|
275
|
+
const source = args.source;
|
|
276
|
+
if (source === undefined)
|
|
277
|
+
return resOp(undefined);
|
|
278
|
+
return ({ drivers }) => {
|
|
279
|
+
return {
|
|
280
|
+
type: 'ScheduleComputable',
|
|
281
|
+
computable: drivers.logDriver.getProgressLog(source, patternToSearch),
|
|
282
|
+
};
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
const SRGetProgressLogWithInfo = (patternToSearch) => (args) => {
|
|
286
|
+
const source = args.source;
|
|
287
|
+
if (source === undefined)
|
|
288
|
+
return resOp(undefined);
|
|
289
|
+
return ({ drivers }) => {
|
|
290
|
+
return {
|
|
291
|
+
type: 'ScheduleComputable',
|
|
292
|
+
computable: drivers.logDriver.getProgressLogWithInfo(source, patternToSearch),
|
|
293
|
+
};
|
|
294
|
+
};
|
|
295
|
+
};
|
|
296
|
+
const SRGetLogHandle = (args) => {
|
|
297
|
+
const source = args.source;
|
|
298
|
+
if (source === undefined)
|
|
299
|
+
return resOp(undefined);
|
|
300
|
+
return ({ drivers }) => {
|
|
301
|
+
return {
|
|
302
|
+
type: 'ScheduleComputable',
|
|
303
|
+
computable: drivers.logDriver.getLogHandle(source),
|
|
304
|
+
};
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
/** Renders configuration into executor's Operation */
|
|
308
|
+
function renderCfg(ctx, cfg) {
|
|
309
|
+
switch (cfg.type) {
|
|
310
|
+
case 'GetFromCtx':
|
|
311
|
+
{
|
|
312
|
+
const ctxValue = ctx[cfg.variable];
|
|
313
|
+
if (typeof ctxValue === 'function') {
|
|
314
|
+
return (e) => res(ctxValue(e.cCtx));
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
return resOp(ctxValue);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
case 'Isolate':
|
|
321
|
+
return ({ drivers }) => ({
|
|
322
|
+
type: 'ScheduleComputable',
|
|
323
|
+
computable: computableFromCfgUnsafe(drivers, ctx, cfg.cfg),
|
|
324
|
+
});
|
|
325
|
+
case 'Immediate':
|
|
326
|
+
return resOp(cfg.value);
|
|
327
|
+
case 'GetJsonField':
|
|
328
|
+
return () => ({
|
|
329
|
+
type: 'ScheduleSubroutine',
|
|
330
|
+
subroutine: SRGetJsonField,
|
|
331
|
+
args: {
|
|
332
|
+
source: renderCfg(ctx, cfg.source),
|
|
333
|
+
field: renderCfg(ctx, cfg.field),
|
|
334
|
+
},
|
|
335
|
+
});
|
|
336
|
+
case 'MapArrayValues':
|
|
337
|
+
return () => ({
|
|
338
|
+
type: 'ScheduleSubroutine',
|
|
339
|
+
subroutine: SRMapArrayValues1(ctx, cfg),
|
|
340
|
+
args: {
|
|
341
|
+
source: renderCfg(ctx, cfg.source),
|
|
342
|
+
},
|
|
343
|
+
});
|
|
344
|
+
case 'MapRecordValues':
|
|
345
|
+
return () => ({
|
|
346
|
+
type: 'ScheduleSubroutine',
|
|
347
|
+
subroutine: SRMapRecordValues1(ctx, cfg),
|
|
348
|
+
args: {
|
|
349
|
+
source: renderCfg(ctx, cfg.source),
|
|
350
|
+
},
|
|
351
|
+
});
|
|
352
|
+
case 'MakeObject':
|
|
353
|
+
return () => ({
|
|
354
|
+
type: 'ScheduleSubroutine',
|
|
355
|
+
subroutine: SRMakeObject,
|
|
356
|
+
args: mapRecord(cfg.template, (c) => renderCfg(ctx, c)),
|
|
357
|
+
});
|
|
358
|
+
case 'MakeArray':
|
|
359
|
+
return () => ({
|
|
360
|
+
type: 'ScheduleSubroutine',
|
|
361
|
+
subroutine: SRCollectArrayFromArgs(cfg.template.length),
|
|
362
|
+
args: mapArrayToRecord(cfg.template, (e) => renderCfg(ctx, e)),
|
|
363
|
+
});
|
|
364
|
+
case 'Flatten':
|
|
365
|
+
return () => ({
|
|
366
|
+
type: 'ScheduleSubroutine',
|
|
367
|
+
subroutine: SRFlatten,
|
|
368
|
+
args: {
|
|
369
|
+
source: renderCfg(ctx, cfg.source),
|
|
370
|
+
},
|
|
371
|
+
});
|
|
372
|
+
case 'IsEmpty':
|
|
373
|
+
return () => ({
|
|
374
|
+
type: 'ScheduleSubroutine',
|
|
375
|
+
subroutine: SRIsEmpty,
|
|
376
|
+
args: {
|
|
377
|
+
arg: renderCfg(ctx, cfg.arg),
|
|
378
|
+
},
|
|
379
|
+
});
|
|
380
|
+
case 'Not':
|
|
381
|
+
return () => ({
|
|
382
|
+
type: 'ScheduleSubroutine',
|
|
383
|
+
subroutine: SRNot,
|
|
384
|
+
args: {
|
|
385
|
+
operand: renderCfg(ctx, cfg.operand),
|
|
386
|
+
},
|
|
387
|
+
});
|
|
388
|
+
case 'And':
|
|
389
|
+
return () => ({
|
|
390
|
+
type: 'ScheduleSubroutine',
|
|
391
|
+
subroutine: SRAnd,
|
|
392
|
+
args: {
|
|
393
|
+
operand1: renderCfg(ctx, cfg.operand1),
|
|
394
|
+
operand2: renderCfg(ctx, cfg.operand2),
|
|
395
|
+
},
|
|
396
|
+
});
|
|
397
|
+
case 'Or':
|
|
398
|
+
return () => ({
|
|
399
|
+
type: 'ScheduleSubroutine',
|
|
400
|
+
subroutine: SROr,
|
|
401
|
+
args: {
|
|
402
|
+
operand1: renderCfg(ctx, cfg.operand1),
|
|
403
|
+
operand2: renderCfg(ctx, cfg.operand2),
|
|
404
|
+
},
|
|
405
|
+
});
|
|
406
|
+
case 'MapResourceFields':
|
|
407
|
+
return () => ({
|
|
408
|
+
type: 'ScheduleSubroutine',
|
|
409
|
+
subroutine: SRMapResourceFields1(ctx, cfg),
|
|
410
|
+
args: {
|
|
411
|
+
source: renderCfg(ctx, cfg.source),
|
|
412
|
+
},
|
|
413
|
+
});
|
|
414
|
+
case 'GetResourceField':
|
|
415
|
+
return () => ({
|
|
416
|
+
type: 'ScheduleSubroutine',
|
|
417
|
+
subroutine: SRGetResourceField,
|
|
418
|
+
args: {
|
|
419
|
+
source: renderCfg(ctx, cfg.source),
|
|
420
|
+
field: renderCfg(ctx, cfg.field),
|
|
421
|
+
},
|
|
422
|
+
});
|
|
423
|
+
case 'GetResourceValueAsJson':
|
|
424
|
+
return () => ({
|
|
425
|
+
type: 'ScheduleSubroutine',
|
|
426
|
+
subroutine: SRResourceValueAsJson,
|
|
427
|
+
args: {
|
|
428
|
+
source: renderCfg(ctx, cfg.source),
|
|
429
|
+
},
|
|
430
|
+
});
|
|
431
|
+
case 'GetBlobContent':
|
|
432
|
+
return () => ({
|
|
433
|
+
type: 'ScheduleSubroutine',
|
|
434
|
+
subroutine: SRGetBlobContent(cfg.range),
|
|
435
|
+
args: {
|
|
436
|
+
source: renderCfg(ctx, cfg.source),
|
|
437
|
+
},
|
|
438
|
+
});
|
|
439
|
+
case 'GetBlobContentAsString':
|
|
440
|
+
return () => ({
|
|
441
|
+
type: 'ScheduleSubroutine',
|
|
442
|
+
subroutine: SRGetBlobContentAsString(cfg.range),
|
|
443
|
+
args: {
|
|
444
|
+
source: renderCfg(ctx, cfg.source),
|
|
445
|
+
},
|
|
446
|
+
});
|
|
447
|
+
case 'GetBlobContentAsJson':
|
|
448
|
+
return () => ({
|
|
449
|
+
type: 'ScheduleSubroutine',
|
|
450
|
+
subroutine: SRGetBlobContentAsJson(cfg.range),
|
|
451
|
+
args: {
|
|
452
|
+
source: renderCfg(ctx, cfg.source),
|
|
453
|
+
},
|
|
454
|
+
});
|
|
455
|
+
case 'GetDownloadedBlobContent':
|
|
456
|
+
return () => ({
|
|
457
|
+
type: 'ScheduleSubroutine',
|
|
458
|
+
subroutine: SRGetDownloadedBlobContent,
|
|
459
|
+
args: {
|
|
460
|
+
source: renderCfg(ctx, cfg.source),
|
|
461
|
+
},
|
|
462
|
+
});
|
|
463
|
+
case 'GetOnDemandBlobContent':
|
|
464
|
+
return () => ({
|
|
465
|
+
type: 'ScheduleSubroutine',
|
|
466
|
+
subroutine: SRGetOnDemandBlobContent,
|
|
467
|
+
args: {
|
|
468
|
+
source: renderCfg(ctx, cfg.source),
|
|
469
|
+
},
|
|
470
|
+
});
|
|
471
|
+
case 'ExtractArchiveAndGetURL':
|
|
472
|
+
return () => ({
|
|
473
|
+
type: 'ScheduleSubroutine',
|
|
474
|
+
subroutine: SRExtractArchiveAndGetURL(cfg.format),
|
|
475
|
+
args: {
|
|
476
|
+
source: renderCfg(ctx, cfg.source),
|
|
477
|
+
},
|
|
478
|
+
});
|
|
479
|
+
case 'GetImportProgress':
|
|
480
|
+
return () => ({
|
|
481
|
+
type: 'ScheduleSubroutine',
|
|
482
|
+
subroutine: SRGetImportProgress,
|
|
483
|
+
args: {
|
|
484
|
+
source: renderCfg(ctx, cfg.source),
|
|
485
|
+
},
|
|
486
|
+
});
|
|
487
|
+
case 'GetLastLogs':
|
|
488
|
+
return () => ({
|
|
489
|
+
type: 'ScheduleSubroutine',
|
|
490
|
+
subroutine: SRGetLastLogs(cfg.lines),
|
|
491
|
+
args: {
|
|
492
|
+
source: renderCfg(ctx, cfg.source),
|
|
493
|
+
},
|
|
494
|
+
});
|
|
495
|
+
case 'GetProgressLog':
|
|
496
|
+
return () => ({
|
|
497
|
+
type: 'ScheduleSubroutine',
|
|
498
|
+
subroutine: SRGetProgressLog(cfg.patternToSearch),
|
|
499
|
+
args: {
|
|
500
|
+
source: renderCfg(ctx, cfg.source),
|
|
501
|
+
},
|
|
502
|
+
});
|
|
503
|
+
case 'GetProgressLogWithInfo':
|
|
504
|
+
return () => ({
|
|
505
|
+
type: 'ScheduleSubroutine',
|
|
506
|
+
subroutine: SRGetProgressLogWithInfo(cfg.patternToSearch),
|
|
507
|
+
args: {
|
|
508
|
+
source: renderCfg(ctx, cfg.source),
|
|
509
|
+
},
|
|
510
|
+
});
|
|
511
|
+
case 'GetLogHandle':
|
|
512
|
+
return () => ({
|
|
513
|
+
type: 'ScheduleSubroutine',
|
|
514
|
+
subroutine: SRGetLogHandle,
|
|
515
|
+
args: {
|
|
516
|
+
source: renderCfg(ctx, cfg.source),
|
|
517
|
+
},
|
|
518
|
+
});
|
|
519
|
+
default:
|
|
520
|
+
return assertNever(cfg);
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
export { renderCfg, resOp };
|
|
525
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sources":["../../src/cfg_render/renderer.ts"],"sourcesContent":["import type {\n ArchiveFormat,\n Cfg,\n CfgMapArrayValues,\n CfgMapRecordValues,\n CfgMapResourceFields,\n RangeBytes,\n} from '@platforma-sdk/model';\nimport type { ArgumentRequests, Operation, OperationAction, Subroutine } from './operation';\nimport type { PlTreeEntry } from '@milaboratories/pl-tree';\nimport { mapRecord } from './util';\nimport { computableFromCfgUnsafe } from './executor';\nimport { assertNever } from '@milaboratories/ts-helpers';\nimport type { ComputableCtx } from '@milaboratories/computable';\nimport { Computable } from '@milaboratories/computable';\n\nfunction res(result: unknown): OperationAction {\n return {\n type: 'ReturnResult',\n result: result,\n };\n}\n\nexport function resOp(result: unknown): Operation {\n return () => res(result);\n}\n\n//\n// Subroutines\n//\n\nconst SRMakeObject: Subroutine = (args) => {\n const result: Record<string | symbol, unknown> = {};\n for (const [k, v] of Object.entries(args)) result[k] = v;\n return resOp(result);\n};\n\nconst SRFlatten: Subroutine = (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n const result: unknown[] = [];\n for (const nested of source) {\n if (nested instanceof Array) result.push(...(nested as unknown[]));\n else result.push(nested);\n }\n return resOp(result);\n};\n\nconst SRGetResourceField: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return ({ cCtx }) => {\n return res(cCtx.accessor(source).node().traverse(field)?.persist());\n };\n};\n\nfunction mapArrayToRecord<T, R>(elements: T[], cb: (e: T) => R): Record<string, R> {\n const result: Record<string, R> = {};\n const length = elements.length;\n for (let i = 0; i < length; i++) result[String(i)] = cb(elements[i]);\n return result;\n}\n\nfunction SRMapArrayValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapArrayValues, 'itVar' | 'mapping'>,\n): Subroutine {\n return (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRCollectArrayFromArgs(source.length),\n args: mapArrayToRecord(source, (e) => renderCfg({ ...ctx, [ops.itVar]: e }, ops.mapping)),\n });\n };\n}\n\nfunction SRCollectArrayFromArgs(length: number): Subroutine {\n return (args) => {\n const result: unknown[] = [];\n for (let i = 0; i < length; i++) result.push(args[String(i)]);\n return resOp(result);\n };\n}\n\nfunction SRMapRecordValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapRecordValues, 'itVar' | 'mapping'>,\n): Subroutine {\n return (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n if (source === undefined) return resOp(undefined);\n const nextArgs: ArgumentRequests = {};\n for (const [k, v] of Object.entries(source)) {\n const newCtx = { ...ctx, [ops.itVar]: v };\n nextArgs[k] = renderCfg(newCtx, ops.mapping);\n }\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRMapRecordValues2,\n args: nextArgs,\n });\n };\n}\n\nconst SRMapRecordValues2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRIsEmpty: Subroutine = (args) => {\n const arg = args.arg as unknown[] | string | undefined;\n if (arg === undefined) return resOp(undefined);\n return resOp(arg.length === 0);\n};\n\nconst SRNot: Subroutine = (args) => {\n const operand = args.operand as boolean | undefined;\n if (operand === undefined) return resOp(undefined);\n return resOp(!operand);\n};\n\nconst SRAnd: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 && operand2);\n};\n\nconst SROr: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 || operand2);\n};\n\nconst SRResourceValueAsJson: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n return ({ cCtx }) => res(cCtx.accessor(source).node()?.getDataAsJson());\n};\n\nconst SRGetJsonField: Subroutine = (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return resOp(source[field]);\n};\n\nfunction SRMapResourceFields1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapResourceFields, 'itVar' | 'mapping'>,\n): Subroutine {\n return (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx }) => {\n const node = cCtx.accessor(source).node();\n\n const nextArgs: ArgumentRequests = {};\n for (const fieldName of node.listInputFields()) {\n const res = node.traverse(fieldName);\n if (res === undefined) nextArgs[fieldName] = resOp(undefined);\n else {\n const newCtx = { ...ctx, [ops.itVar]: res.persist() };\n nextArgs[fieldName] = renderCfg(newCtx, ops.mapping);\n }\n }\n\n return {\n type: 'ScheduleSubroutine',\n subroutine: SRMapResourceFields2,\n args: nextArgs,\n };\n };\n };\n}\n\nconst SRMapResourceFields2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRGetBlobContent: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: 'ScheduleComputable',\n computable: Computable.make(\n (ctx) => {\n return drivers.blobDriver.getDownloadedBlob(ctx.accessor(source).node().resourceInfo);\n },\n {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n return await drivers.blobDriver.getContent(value.handle, range);\n },\n },\n ),\n };\n };\n};\n\nconst SRGetBlobContentAsString: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx, drivers }) => {\n // getting target resource id and type\n const resourceInfo = cCtx.accessor(source).node().resourceInfo;\n\n return {\n type: 'ScheduleComputable',\n computable: Computable.make((ctx) => drivers.blobDriver.getDownloadedBlob(resourceInfo, ctx), {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n return content.toString();\n },\n }),\n };\n };\n};\n\nconst SRGetBlobContentAsJson: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: 'ScheduleComputable',\n computable: Computable.make(\n (c) => drivers.blobDriver.getDownloadedBlob(c.accessor(source).node().resourceInfo, c),\n {\n postprocessValue: async (value) => {\n if (value == undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n if (content == undefined) return undefined;\n return JSON.parse(Buffer.from(content).toString()) as unknown;\n },\n },\n ),\n };\n };\n};\n\nconst SRGetDownloadedBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return (ctx) => {\n return {\n type: 'ScheduleComputable',\n computable: ctx.drivers.blobDriver.getDownloadedBlob(source),\n };\n };\n};\n\nconst SRGetOnDemandBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: 'ScheduleComputable',\n computable: drivers.blobDriver.getOnDemandBlob(source),\n };\n };\n};\n\nconst SRExtractArchiveAndGetURL: (format: ArchiveFormat) => Subroutine = (format) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: 'ScheduleComputable',\n computable: drivers.blobToURLDriver.extractArchiveAndGetURL(source, format),\n };\n };\n};\n\nconst SRGetImportProgress: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: 'ScheduleComputable',\n computable: drivers.uploadDriver.getProgressId(source),\n };\n };\n};\n\nconst SRGetLastLogs: (lines: number) => Subroutine = (lines) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: 'ScheduleComputable',\n computable: drivers.logDriver.getLastLogs(source, lines),\n };\n };\n};\n\nconst SRGetProgressLog: (patternToSearch: string) => Subroutine = (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: 'ScheduleComputable',\n computable: drivers.logDriver.getProgressLog(source, patternToSearch),\n };\n };\n};\n\nconst SRGetProgressLogWithInfo: (patternToSearch: string) => Subroutine = (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: 'ScheduleComputable',\n computable: drivers.logDriver.getProgressLogWithInfo(source, patternToSearch),\n };\n };\n};\n\nconst SRGetLogHandle: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: 'ScheduleComputable',\n computable: drivers.logDriver.getLogHandle(source),\n };\n };\n};\n\n/** Renders configuration into executor's Operation */\nexport function renderCfg(ctx: Record<string, unknown>, cfg: Cfg): Operation {\n switch (cfg.type) {\n case 'GetFromCtx':\n {\n const ctxValue = ctx[cfg.variable];\n if (typeof ctxValue === 'function') {\n return (e) => res((ctxValue as (cCtx: ComputableCtx) => OperationAction)(e.cCtx));\n } else {\n return resOp(ctxValue);\n }\n }\n\n case 'Isolate':\n return ({ drivers }) => ({\n type: 'ScheduleComputable',\n computable: computableFromCfgUnsafe(drivers, ctx, cfg.cfg),\n });\n\n case 'Immediate':\n return resOp(cfg.value);\n\n case 'GetJsonField':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetJsonField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case 'MapArrayValues':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRMapArrayValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'MapRecordValues':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRMapRecordValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'MakeObject':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRMakeObject,\n args: mapRecord(cfg.template, (c) => renderCfg(ctx, c)),\n });\n\n case 'MakeArray':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRCollectArrayFromArgs(cfg.template.length),\n args: mapArrayToRecord(cfg.template, (e) => renderCfg(ctx, e)),\n });\n\n case 'Flatten':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRFlatten,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'IsEmpty':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRIsEmpty,\n args: {\n arg: renderCfg(ctx, cfg.arg),\n },\n });\n\n case 'Not':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRNot,\n args: {\n operand: renderCfg(ctx, cfg.operand),\n },\n });\n\n case 'And':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRAnd,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case 'Or':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SROr,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case 'MapResourceFields':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRMapResourceFields1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetResourceField':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetResourceField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case 'GetResourceValueAsJson':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRResourceValueAsJson,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetBlobContent':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetBlobContent(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetBlobContentAsString':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetBlobContentAsString(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetBlobContentAsJson':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetBlobContentAsJson(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetDownloadedBlobContent':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetDownloadedBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetOnDemandBlobContent':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetOnDemandBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'ExtractArchiveAndGetURL':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRExtractArchiveAndGetURL(cfg.format),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetImportProgress':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetImportProgress,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetLastLogs':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetLastLogs(cfg.lines),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetProgressLog':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetProgressLog(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetProgressLogWithInfo':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetProgressLogWithInfo(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case 'GetLogHandle':\n return () => ({\n type: 'ScheduleSubroutine',\n subroutine: SRGetLogHandle,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n default:\n return assertNever(cfg);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tsHelpers = require('@milaboratories/ts-helpers');
|
|
4
|
+
|
|
5
|
+
function* traverseCfg(cfg, guide) {
|
|
6
|
+
yield cfg;
|
|
7
|
+
switch (cfg.type) {
|
|
8
|
+
case 'GetFromCtx':
|
|
9
|
+
case 'Immediate':
|
|
10
|
+
return;
|
|
11
|
+
case 'Isolate':
|
|
12
|
+
yield* traverseCfg(cfg.cfg);
|
|
13
|
+
return;
|
|
14
|
+
case 'MakeObject':
|
|
15
|
+
for (const [, child] of Object.entries(cfg.template))
|
|
16
|
+
yield* traverseCfg(child);
|
|
17
|
+
return;
|
|
18
|
+
case 'MakeArray':
|
|
19
|
+
for (const child of cfg.template)
|
|
20
|
+
yield* traverseCfg(child);
|
|
21
|
+
return;
|
|
22
|
+
case 'GetJsonField':
|
|
23
|
+
case 'GetResourceField':
|
|
24
|
+
yield* traverseCfg(cfg.source);
|
|
25
|
+
yield* traverseCfg(cfg.field);
|
|
26
|
+
return;
|
|
27
|
+
case 'MapRecordValues':
|
|
28
|
+
case 'MapArrayValues':
|
|
29
|
+
case 'MapResourceFields':
|
|
30
|
+
yield* traverseCfg(cfg.source);
|
|
31
|
+
yield* traverseCfg(cfg.mapping);
|
|
32
|
+
return;
|
|
33
|
+
case 'Flatten':
|
|
34
|
+
case 'GetResourceValueAsJson':
|
|
35
|
+
case 'GetBlobContent':
|
|
36
|
+
case 'ExtractArchiveAndGetURL':
|
|
37
|
+
case 'GetBlobContentAsString':
|
|
38
|
+
case 'GetBlobContentAsJson':
|
|
39
|
+
case 'GetDownloadedBlobContent':
|
|
40
|
+
case 'GetOnDemandBlobContent':
|
|
41
|
+
case 'GetImportProgress':
|
|
42
|
+
case 'GetLastLogs':
|
|
43
|
+
case 'GetProgressLog':
|
|
44
|
+
case 'GetProgressLogWithInfo':
|
|
45
|
+
case 'GetLogHandle':
|
|
46
|
+
yield* traverseCfg(cfg.source);
|
|
47
|
+
return;
|
|
48
|
+
case 'IsEmpty':
|
|
49
|
+
yield* traverseCfg(cfg.arg);
|
|
50
|
+
return;
|
|
51
|
+
case 'Not':
|
|
52
|
+
yield* traverseCfg(cfg.operand);
|
|
53
|
+
return;
|
|
54
|
+
case 'And':
|
|
55
|
+
case 'Or':
|
|
56
|
+
yield* traverseCfg(cfg.operand1);
|
|
57
|
+
yield* traverseCfg(cfg.operand2);
|
|
58
|
+
return;
|
|
59
|
+
default:
|
|
60
|
+
tsHelpers.assertNever(cfg);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
exports.traverseCfg = traverseCfg;
|
|
65
|
+
//# sourceMappingURL=traverse.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traverse.cjs","sources":["../../src/cfg_render/traverse.ts"],"sourcesContent":["import type { Cfg } from '@platforma-sdk/model';\nimport { assertNever } from '@milaboratories/ts-helpers';\n\nexport function* traverseCfg(cfg: Cfg, guide?: (cfg: Cfg) => boolean): Generator<Cfg> {\n yield cfg;\n if (guide !== undefined && !guide(cfg)) return;\n switch (cfg.type) {\n case 'GetFromCtx':\n case 'Immediate':\n return;\n case 'Isolate':\n yield * traverseCfg(cfg.cfg);\n return;\n case 'MakeObject':\n for (const [, child] of Object.entries(cfg.template)) yield * traverseCfg(child);\n return;\n case 'MakeArray':\n for (const child of cfg.template) yield * traverseCfg(child);\n return;\n case 'GetJsonField':\n case 'GetResourceField':\n yield * traverseCfg(cfg.source);\n yield * traverseCfg(cfg.field);\n return;\n case 'MapRecordValues':\n case 'MapArrayValues':\n case 'MapResourceFields':\n yield * traverseCfg(cfg.source);\n yield * traverseCfg(cfg.mapping);\n return;\n case 'Flatten':\n case 'GetResourceValueAsJson':\n case 'GetBlobContent':\n case 'ExtractArchiveAndGetURL':\n case 'GetBlobContentAsString':\n case 'GetBlobContentAsJson':\n case 'GetDownloadedBlobContent':\n case 'GetOnDemandBlobContent':\n case 'GetImportProgress':\n case 'GetLastLogs':\n case 'GetProgressLog':\n case 'GetProgressLogWithInfo':\n case 'GetLogHandle':\n yield * traverseCfg(cfg.source);\n return;\n case 'IsEmpty':\n yield * traverseCfg(cfg.arg);\n return;\n case 'Not':\n yield * traverseCfg(cfg.operand);\n return;\n case 'And':\n case 'Or':\n yield * traverseCfg(cfg.operand1);\n yield * traverseCfg(cfg.operand2);\n return;\n default:\n assertNever(cfg);\n }\n}\n"],"names":["assertNever"],"mappings":";;;;UAGiB,WAAW,CAAC,GAAQ,EAAE,KAA6B,EAAA;AAClE,IAAA,MAAM,GAAG;AAET,IAAA,QAAQ,GAAG,CAAC,IAAI;AACd,QAAA,KAAK,YAAY;AACjB,QAAA,KAAK,WAAW;YACd;AACF,QAAA,KAAK,SAAS;YACZ,OAAQ,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAC5B;AACF,QAAA,KAAK,YAAY;AACf,YAAA,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,gBAAA,OAAQ,WAAW,CAAC,KAAK,CAAC;YAChF;AACF,QAAA,KAAK,WAAW;AACd,YAAA,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ;AAAE,gBAAA,OAAQ,WAAW,CAAC,KAAK,CAAC;YAC5D;AACF,QAAA,KAAK,cAAc;AACnB,QAAA,KAAK,kBAAkB;YACrB,OAAQ,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B,OAAQ,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;YAC9B;AACF,QAAA,KAAK,iBAAiB;AACtB,QAAA,KAAK,gBAAgB;AACrB,QAAA,KAAK,mBAAmB;YACtB,OAAQ,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B,OAAQ,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;YAChC;AACF,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,wBAAwB;AAC7B,QAAA,KAAK,gBAAgB;AACrB,QAAA,KAAK,yBAAyB;AAC9B,QAAA,KAAK,wBAAwB;AAC7B,QAAA,KAAK,sBAAsB;AAC3B,QAAA,KAAK,0BAA0B;AAC/B,QAAA,KAAK,wBAAwB;AAC7B,QAAA,KAAK,mBAAmB;AACxB,QAAA,KAAK,aAAa;AAClB,QAAA,KAAK,gBAAgB;AACrB,QAAA,KAAK,wBAAwB;AAC7B,QAAA,KAAK,cAAc;YACjB,OAAQ,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B;AACF,QAAA,KAAK,SAAS;YACZ,OAAQ,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAC5B;AACF,QAAA,KAAK,KAAK;YACR,OAAQ,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;YAChC;AACF,QAAA,KAAK,KAAK;AACV,QAAA,KAAK,IAAI;YACP,OAAQ,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjC,OAAQ,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjC;AACF,QAAA;YACEA,qBAAW,CAAC,GAAG,CAAC;;AAEtB;;;;"}
|