From b330efd939161706750db1b5c9328dd790b962f5 Mon Sep 17 00:00:00 2001 From: aiturbidemil Date: Wed, 12 Nov 2025 10:50:43 +0100 Subject: [PATCH 1/6] update sdk --- pnpm-lock.yaml | 661 ++++++++++++++++++++++++-------------------- pnpm-workspace.yaml | 10 +- 2 files changed, 366 insertions(+), 305 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 977499b..1015210 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,23 +31,23 @@ catalogs: specifier: ^1.1.0 version: 1.1.0 '@platforma-sdk/model': - specifier: ^1.45.0 - version: 1.45.0 + specifier: ^1.45.23 + version: 1.45.23 '@platforma-sdk/package-builder': specifier: ^3.10.7 version: 3.10.7 '@platforma-sdk/tengo-builder': - specifier: ^2.3.3 - version: 2.3.3 + specifier: ^2.3.4 + version: 2.3.4 '@platforma-sdk/test': - specifier: ^1.45.11 - version: 1.45.11 + specifier: ^1.45.25 + version: 1.45.25 '@platforma-sdk/ui-vue': - specifier: ^1.45.5 - version: 1.45.5 + specifier: ^1.45.23 + version: 1.45.23 '@platforma-sdk/workflow-tengo': - specifier: ^5.5.9 - version: 5.5.9 + specifier: ^5.5.16 + version: 5.5.16 '@vitejs/plugin-vue': specifier: ^5.2.1 version: 5.2.1 @@ -110,7 +110,7 @@ importers: version: 1.1.175(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(sortablejs@1.15.6)(typescript@5.5.4) '@platforma-sdk/model': specifier: 'catalog:' - version: 1.45.0 + version: 1.45.23 devDependencies: '@platforma-sdk/block-tools': specifier: 'catalog:' @@ -148,7 +148,7 @@ importers: devDependencies: '@platforma-sdk/test': specifier: 'catalog:' - version: 1.45.11(@types/node@24.5.2) + version: 1.45.25(@types/node@24.5.2)(yaml@2.8.1) typescript: specifier: 'catalog:' version: 5.5.4 @@ -166,10 +166,10 @@ importers: version: link:../model '@platforma-sdk/model': specifier: 'catalog:' - version: 1.45.0 + version: 1.45.23 '@platforma-sdk/ui-vue': specifier: 'catalog:' - version: 1.45.5(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(sortablejs@1.15.6)(typescript@5.5.4) + version: 1.45.23(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(sortablejs@1.15.6)(typescript@5.5.4) vue: specifier: 'catalog:' version: 3.5.13(typescript@5.5.4) @@ -204,13 +204,13 @@ importers: version: 1.15.23 '@platforma-sdk/tengo-builder': specifier: 'catalog:' - version: 2.3.3 + version: 2.3.4 '@platforma-sdk/test': specifier: 'catalog:' - version: 1.45.11(@types/node@24.5.2) + version: 1.45.25(@types/node@24.5.2)(yaml@2.8.1) '@platforma-sdk/workflow-tengo': specifier: 'catalog:' - version: 5.5.9 + version: 5.5.16 vitest: specifier: 'catalog:' version: 3.0.5(@types/node@24.5.2) @@ -1049,6 +1049,9 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -1080,67 +1083,58 @@ packages: resolution: {integrity: sha512-Eg3AQMJbVClYhdvhogdlW3Ys9EdLLl8ZTqG675iLwoO64ZJcQOAnIPjXwl4zJ/bZWx4nEhRF9AvwxRdc08fikQ==} engines: {node: '>=22'} - '@milaboratories/miplots4@1.0.155': - resolution: {integrity: sha512-DapqlH2rdKGryhwF47fFwxv03dOROpVjRhpi3EmI/vHoDqEAeRmBNRalhkh8NOLaP5y9Rt7WqLh+ZW6oz8KxMQ==} - '@milaboratories/miplots4@1.0.157': resolution: {integrity: sha512-Efgaz5KxzZwmBPVbk1ninHfU0I6OM8NQnUWmqDcpwZFMAukb/NYo9ODer2GcLP1+MxcpZWk7l8txF2/GuqDlKw==} '@milaboratories/pf-plots@1.1.41': resolution: {integrity: sha512-BvIetn6rt9zA1WlEvu70Nn1TuJ6WE1vOvTVRlfNTbMEeIDfnKSprEoKObiUG7y3k66e88UMUygUuuTbkfL7Udg==} - '@milaboratories/pframes-rs-node@1.0.95': - resolution: {integrity: sha512-ms6dGTDvtwdESoX0GqVXGEaTcP1Oynpn0CRarpadZEOmc35DY3uufdoqnBSbXKz4bVkS/mkNZbHg+x1nZIE/DA==} + '@milaboratories/pframes-rs-node@1.0.103': + resolution: {integrity: sha512-MwY8EOAxtdFBHAFYCTt9VwJcP1JK2GC+teTuwZVzlSpTp0t8FOVGDhmAnf5Zb5pQFiXMav8hF3xbw6n2DZunfw==} - '@milaboratories/pframes-rs-serv@1.0.95': - resolution: {integrity: sha512-qr5lnaJSnI7PmZMh+/PJXOURe3jKSFLWiqo1Ha1OSbY0JwHOmpU8n2aZOGjwscLLTk8AgF6Jfv5t/kPhGk348g==} + '@milaboratories/pframes-rs-serv@1.0.103': + resolution: {integrity: sha512-l541clKAMs6fHoZhGIuqB6qN85Jdv+kwsh75I9h7I5mTcOO0l2fbjB1pM+8K75F1DGdfNMZb8fIZid+GPeBa/A==} hasBin: true - '@milaboratories/pl-client@2.16.1': - resolution: {integrity: sha512-XcFa5xBpQQ/jJwyEWXEwuX8yiqsUCmGSzaywvShcsJOOuSkX/u8gV5bIIgivV6X7nJt1yX+mukaugo4wjkZZoQ==} + '@milaboratories/pl-client@2.16.2': + resolution: {integrity: sha512-PS6p/ajvMe8RIVlpbsckJehABtgTRHJDsZZ8fy7huycEKXeWAZbsK48gd7Jm68wMg5r7b4qKQr66LmjJi7Jg/g==} engines: {node: '>=22.19.0'} '@milaboratories/pl-config@1.7.6': resolution: {integrity: sha512-D3dSyCCW+9lVW6LTVpjcUU9pyr7qILo+mYDrv3YTYLLQuqreCmID+CSl1t9xj/fBZlxGvnY19f1yAnherMJJQw==} - '@milaboratories/pl-deployments@2.11.0': - resolution: {integrity: sha512-eWwKQqt9yOW4o0Bp9XLsA1j5S8xyoZM+1oK5XAn7thsnJOSUMG6qbqOBmGi98ivr/n0NhWUPx/pnoUUxMuJzAQ==} + '@milaboratories/pl-deployments@2.12.0': + resolution: {integrity: sha512-S4Su+cpq+pptuCEhgGajTsvay73sNRJN4xKY3cYTwSeLlONIto1glmrt9m9MaRasH9ENiff81y9lVTKBLhisCw==} engines: {node: '>=22.19.0'} - '@milaboratories/pl-drivers@1.11.12': - resolution: {integrity: sha512-0f/JKYzeNQKQsZljCDk0aatHNds2yT2rxqF9k63lQ+3gJ2K0m84pMqcQNn2ZigsAMRYPO7K8y7b4xf0zmuPqRg==} + '@milaboratories/pl-drivers@1.11.13': + resolution: {integrity: sha512-ruU1XFcsD+jwNdoaT5JuPLcZ2fEmtZ1OSkK2X9IUH5wu5uhUiLBIsnE2PFmlTOWrGaRGf0PQf8LL14BQiyHLhw==} engines: {node: '>=22'} '@milaboratories/pl-error-like@1.12.5': resolution: {integrity: sha512-opYP4OrB6JBMsH9RMRmAH44+MG7PWiV08dHW9+RsXGOaqX+rYXs9TTBXYRhlVMDLwwefSKzelvDg8HL748aM+A==} - '@milaboratories/pl-errors@1.1.33': - resolution: {integrity: sha512-RKUdWQtpfiKz9TYS1/i6ZUP4azdjkJKMO3O7rbVWvAeZ9s89pp4G7Eq6fyDiSIuQA5G5HSfuPE54SuZbJVpEqw==} + '@milaboratories/pl-errors@1.1.34': + resolution: {integrity: sha512-TTL1CC2BS1GDBiksVwtoINRwCZOM9mbWAeE29UodiB7wLyBCymL0ZEvFCjGsUuHvxwI+4ocLmVuhfWWyBMH+pg==} '@milaboratories/pl-http@1.2.0': resolution: {integrity: sha512-5iRxug4TjE88+XoMU5LVcXe1PEmXYfZI3WxJGrayzYQFM/9GiKuwcUsQ0kDlFmw+s6UlEAzgC9+MsJFKvU7C5Q==} - '@milaboratories/pl-middle-layer@1.43.47': - resolution: {integrity: sha512-z3aYsP1LkAAqWHK2S7zUANUC/InB7Veny5esz/DTWfqRlclguFqbyJFEL/VJ9xgfLmaO3jOdsKI6zrK0y5/dxA==} + '@milaboratories/pl-middle-layer@1.43.59': + resolution: {integrity: sha512-+Pw5i/f3KPrzUrtM/b50vssup4wYCgUOv6LdX8CCb21jaR7pPqYitWksNSbWBo5eVgHmFJyA8iVLv9Hm4VEUsw==} engines: {node: '>=22.19.0'} - '@milaboratories/pl-model-backend@1.1.18': - resolution: {integrity: sha512-zYJPylAl281yWne8ysOGHn0MnO+zRk3B2rj8ZIkdvgxbhQmM8SgDnjisrS/BWGUAWMdvH/mxIfmQQQ/MAhMyPA==} - - '@milaboratories/pl-model-common@1.21.3': - resolution: {integrity: sha512-H5DyyUstaKvm1llydEmicVPgaPCEpMkiDIRlksXJm594O9jFTWG0ByUQP+1MAwiskiUNNeHfZ+IX8jMF368M/g==} + '@milaboratories/pl-model-backend@1.1.19': + resolution: {integrity: sha512-2DtZ19SqTQTmEhHRfRf8Atu6l3HUdOnMF3VXkjUWpPVWXKnd/yVpMEDo3p35zjUTjid9N+o14xt3a7BtOGCd6Q==} '@milaboratories/pl-model-common@1.21.4': resolution: {integrity: sha512-k0dqRSWF2npDXEI00F+on6g/B6LDIOlRTJTZ5Pc+vyj9n4GvlR2lT93GKJwJXEx4jok8H//2FwZabC+EFxTYpQ==} - '@milaboratories/pl-model-middle-layer@1.8.34': - resolution: {integrity: sha512-0VdpZ67nmX0bWjCjcCR0paGqzJleZ/1TVLdbK71gWuq2jwN6wmBA90t5rDAfRWj7Ju9RkUU7LR5QyuwB/L0OfQ==} - '@milaboratories/pl-model-middle-layer@1.8.35': resolution: {integrity: sha512-fNYE4nWcmDn5CAK7IOwSR9htq10F7mPpfIunEcOHDXS1pSrPxc+QGiw6fJRWcV4KE8Qt55xfmmrl0zO/r2aCvg==} - '@milaboratories/pl-tree@1.8.8': - resolution: {integrity: sha512-EKXHZCs5G1lmpXNMzKcr60JF54k8FuZqhwQmFQSN8NRtRNkSTXy1BFIcP918cOpdSXKEUukNE0OrVbJdIY6zww==} + '@milaboratories/pl-tree@1.8.9': + resolution: {integrity: sha512-QsEniicguMiYABlfES1XHDpSDG7MVIAZneMJHA6uO7nLqlgSa3WXzJ07ORfxkSiIJNkSj6lgN9K04gEb3Rm3OA==} engines: {node: '>=22.19.0'} '@milaboratories/ptabler-expression-js@1.1.0': @@ -1167,6 +1161,9 @@ packages: '@milaboratories/uikit@2.5.0': resolution: {integrity: sha512-977B+x3kmg1MXhekg4JpieXEyoNmmMxVwQKCbXQLokq4PtYNBzbVnL/T4XvDhEtmQel2bhYs4eeUhiqqAmhn9A==} + '@milaboratories/uikit@2.5.3': + resolution: {integrity: sha512-UV7RZ0nbuJx1PZblHURFiDRM4s0XIPclQ+4qih58T1ilQMCSIYpQp1MHxbcFhlmJNRi9vEtC/dK1DdBdVUQfNg==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1208,8 +1205,8 @@ packages: '@platforma-open/milaboratories.software-ptabler.schema@1.12.0': resolution: {integrity: sha512-tQw07omRWh7XFNyGDZz1VeiRxjzprvXWxhJI3git3Yf0GlgsCMmdxwSd1gpeORwFU9ggvLTGwdlAMN5KkfFwAw==} - '@platforma-open/milaboratories.software-ptabler@1.13.2': - resolution: {integrity: sha512-52lwVxYYm7Vl6KCSQDDb3xzqWExg1cBmGcsrK3yg2qjY/8JaJMOz3BQTWSLQEcdxMtsjWq3nJPfKHVs69xZJVQ==} + '@platforma-open/milaboratories.software-ptabler@1.13.4': + resolution: {integrity: sha512-//fyGaFZY4zsrIhmJ6TJuXWlur2mAsGn8DW+vNzvvkvXP2IXlpw/3uDBRZHkUjh/s+Sjq4F3Mnfp9pFSUlLPoQ==} '@platforma-open/milaboratories.software-ptexter@1.2.0': resolution: {integrity: sha512-7dKhQyecDcxjRNOS9XRgLemZpOuJ3dKMryrBbbkYR6VLKj566tJkbKiC7p1wAWEtHKHEZUhCQYgTZfEtwHCkDA==} @@ -1276,26 +1273,29 @@ packages: '@platforma-sdk/model@1.45.0': resolution: {integrity: sha512-AMplDyyW/07D62/heNeh2yVd3Yx36Axq5qhxSIjFNvWnr3QVTxqLuch4OtyKZL1VB8ME6x+8vuNtPCFvrzQe8w==} + '@platforma-sdk/model@1.45.23': + resolution: {integrity: sha512-7HwzSM53k5uWHqtPw/LOStxJ+b+l2+NZpnL19vTtUJl2XaT4LRKwc+4jDA1I6A441BRuTlm/8o/gIIGFh0jEMQ==} + '@platforma-sdk/package-builder@3.10.7': resolution: {integrity: sha512-3qWieTD0GTCNQ65lVV1/LAcwNlTFh7BuswS6qrK8acRtREFEZm/QvywbE6fQu7gEEF697y7/6/ktR8Sd1EzP/A==} hasBin: true - '@platforma-sdk/tengo-builder@2.3.3': - resolution: {integrity: sha512-Wdtnmswk1uv/x5gzGNTvDHPW0uvNP+vvjMwHHShUmR+ShGq8Jc+Ho/eAxFHIiGv9paed1kXZ/VZWzS3S+ma+RQ==} + '@platforma-sdk/tengo-builder@2.3.4': + resolution: {integrity: sha512-9SLPMiaAoT+KfEki06yOs05aB/odqmNN4hohVtw2E13Shs0OJEV9YrXHWcIWDAoXeDe6YAPUyKc3omPIKVXCKQ==} engines: {node: '>=22'} hasBin: true - '@platforma-sdk/test@1.45.11': - resolution: {integrity: sha512-nj6EgPTkIGpZx1FiR2jsMxlhv8BQ/NfEenA8wk/FJnisB/VG0Vm1o6j+0dkOb1mcCYdW2U4pCiRW8G+PpqCpCw==} + '@platforma-sdk/test@1.45.25': + resolution: {integrity: sha512-aZnHprN/uIATSPDbWiEQXVmIg+KQZtXEpDpWxfDc2NDYgzXtcd/gK10/d9O+nn39uKQuSCDySmhGarUmJ2KrzA==} '@platforma-sdk/ui-vue@1.45.0': resolution: {integrity: sha512-82PqQzDvJtKeoMwefr8hppH36fVsCIF4kcsy2yRPn5luILssVqfkOs4k3qMlK72+cwQ+aI5vBmPmyQ33qd4wCw==} - '@platforma-sdk/ui-vue@1.45.5': - resolution: {integrity: sha512-hjsWIjLn2WBP7kBhqZhL7gOFQBqQrfuOFZe4EMZja4v82GGRej9tCrDnIcC/h9074uhvzJLVvmZMPQevNfCBpQ==} + '@platforma-sdk/ui-vue@1.45.23': + resolution: {integrity: sha512-afsZKIzJDXomgjyrEdcBiC+9mR2r4CcRFHd+TjPBSxm0yARNdIum7pvsDI1e9+ckMVM/ib5EcZb2StQLl1cdAw==} - '@platforma-sdk/workflow-tengo@5.5.9': - resolution: {integrity: sha512-+J+E262ZtS6Cv2fOsdzDJpd5J+qjRLZKa2qZVKvFPpOzmE0fsMAxVTGpjN9eYSAOnJnOZO2DBIQox/kE0S0nMA==} + '@platforma-sdk/workflow-tengo@5.5.16': + resolution: {integrity: sha512-iG81nz4CwQ0ZcNEZLvVESmgUUmFkK6Yjy6Vxcovxyd26pIDVUwuCx/xfG+OBFD1+4w1W2mqrPdVl9D0JoXdsHg==} '@protobuf-ts/grpc-transport@2.11.1': resolution: {integrity: sha512-l6wrcFffY+tuNnuyrNCkRM8hDIsAZVLA8Mn7PKdVyYxITosYh60qW663p9kL6TWXYuDCL3oxH8ih3vLKTDyhtg==} @@ -1743,6 +1743,9 @@ packages: resolution: {integrity: sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==} engines: {node: '>=18.0.0'} + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + '@stdlib/array-base-accessor-getter@0.2.2': resolution: {integrity: sha512-HGJNjWWysDoo6ORrLj+FV/6IpfIbDGqZtpzGQzFI1A6jgqJMw2JuRwlsgRsriJ1SnyFoPNIObwyGDSY18XQrMw==} engines: {node: '>=0.10.0', npm: '>2.7.0'} @@ -3177,6 +3180,9 @@ packages: '@types/archiver@6.0.3': resolution: {integrity: sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/d3-array@3.2.1': resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} @@ -3225,6 +3231,9 @@ packages: '@types/d3-zoom@3.0.8': resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -3337,64 +3346,64 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - '@vitest/expect@2.1.9': - resolution: {integrity: sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==} - '@vitest/expect@3.0.5': resolution: {integrity: sha512-nNIOqupgZ4v5jWuQx2DSlHLEs7Q4Oh/7AYwNyE+k0UQzG7tSmjPXShUikn1mpNGzYEN2jJbTvLejwShMitovBA==} - '@vitest/mocker@2.1.9': - resolution: {integrity: sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==} + '@vitest/expect@4.0.8': + resolution: {integrity: sha512-Rv0eabdP/xjAHQGr8cjBm+NnLHNoL268lMDK85w2aAGLFoVKLd8QGnVon5lLtkXQCoYaNL0wg04EGnyKkkKhPA==} + + '@vitest/mocker@3.0.5': + resolution: {integrity: sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==} peerDependencies: msw: ^2.4.9 - vite: ^5.0.0 + vite: ^5.0.0 || ^6.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/mocker@3.0.5': - resolution: {integrity: sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==} + '@vitest/mocker@4.0.8': + resolution: {integrity: sha512-9FRM3MZCedXH3+pIh+ME5Up2NBBHDq0wqwhOKkN4VnvCiKbVxddqH9mSGPZeawjd12pCOGnl+lo/ZGHt0/dQSg==} peerDependencies: msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 + vite: ^6.0.0 || ^7.0.0-0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@2.1.9': - resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} - '@vitest/pretty-format@3.0.5': resolution: {integrity: sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA==} - '@vitest/runner@2.1.9': - resolution: {integrity: sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==} + '@vitest/pretty-format@4.0.8': + resolution: {integrity: sha512-qRrjdRkINi9DaZHAimV+8ia9Gq6LeGz2CgIEmMLz3sBDYV53EsnLZbJMR1q84z1HZCMsf7s0orDgZn7ScXsZKg==} '@vitest/runner@3.0.5': resolution: {integrity: sha512-BAiZFityFexZQi2yN4OX3OkJC6scwRo8EhRB0Z5HIGGgd2q+Nq29LgHU/+ovCtd0fOfXj5ZI6pwdlUmC5bpi8A==} - '@vitest/snapshot@2.1.9': - resolution: {integrity: sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==} + '@vitest/runner@4.0.8': + resolution: {integrity: sha512-mdY8Sf1gsM8hKJUQfiPT3pn1n8RF4QBcJYFslgWh41JTfrK1cbqY8whpGCFzBl45LN028g0njLCYm0d7XxSaQQ==} '@vitest/snapshot@3.0.5': resolution: {integrity: sha512-GJPZYcd7v8QNUJ7vRvLDmRwl+a1fGg4T/54lZXe+UOGy47F9yUfE18hRCtXL5aHN/AONu29NGzIXSVFh9K0feA==} - '@vitest/spy@2.1.9': - resolution: {integrity: sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==} + '@vitest/snapshot@4.0.8': + resolution: {integrity: sha512-Nar9OTU03KGiubrIOFhcfHg8FYaRaNT+bh5VUlNz8stFhCZPNrJvmZkhsr1jtaYvuefYFwK2Hwrq026u4uPWCw==} '@vitest/spy@3.0.5': resolution: {integrity: sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg==} - '@vitest/utils@2.1.9': - resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + '@vitest/spy@4.0.8': + resolution: {integrity: sha512-nvGVqUunyCgZH7kmo+Ord4WgZ7lN0sOULYXUOYuHr55dvg9YvMz3izfB189Pgp28w0vWFbEEfNc/c3VTrqrXeA==} '@vitest/utils@3.0.5': resolution: {integrity: sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg==} + '@vitest/utils@4.0.8': + resolution: {integrity: sha512-pdk2phO5NDvEFfUTxcTP8RFYjVj/kfLSPIN5ebP2Mu9kcIMeAQTbknqcFEyBcC4z2pJlJI9aS5UQjcYfhmKAow==} + '@volar/language-core@2.4.11': resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} @@ -3749,6 +3758,10 @@ packages: resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} engines: {node: '>=12'} + chai@6.2.1: + resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} + engines: {node: '>=18'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -3813,8 +3826,8 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} - commander@14.0.1: - resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} + commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} engines: {node: '>=20'} commander@2.20.3: @@ -3989,6 +4002,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decompress-tar@4.1.1: resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} engines: {node: '>=4'} @@ -4072,6 +4094,9 @@ packages: es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-toolkit@1.39.10: resolution: {integrity: sha512-E0iGnTtbDhkeczB0T+mxmoVlT4YNweEKBLq7oaU4p11mecdsZpNWOglI4895Vh4usbQ+LsJiuLuI2L0Vdmfm2w==} @@ -4195,6 +4220,10 @@ packages: resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} engines: {node: '>=12.0.0'} + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + engines: {node: '>=12.0.0'} + extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -4236,6 +4265,15 @@ packages: picomatch: optional: true + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -4591,6 +4629,9 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + make-dir@1.3.0: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} engines: {node: '>=4'} @@ -4782,9 +4823,6 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -4806,6 +4844,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -5009,8 +5051,8 @@ packages: resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} hasBin: true - selfsigned@3.0.1: - resolution: {integrity: sha512-6U6w6kSLrM9Zxo0D7mC7QdGS6ZZytMWBnj/vhF9p+dAHx6CwGezuRcO4VclTbrrI7mg7SD6zNiqXUuBHOVopNQ==} + selfsigned@4.0.0: + resolution: {integrity: sha512-eP/1BEUCziBF/7p96ergE2JlGOMsGj9kIe77pD99G3ValgxDFwHA2oNCYW4rjlmYp8LXc684ypH0836GjSKw0A==} engines: {node: '>=10'} semver@7.6.3: @@ -5067,6 +5109,9 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + std-env@3.8.0: resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} @@ -5180,18 +5225,22 @@ packages: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tinypool@1.0.2: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} - tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} - engines: {node: '>=14.0.0'} - tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} + tinyrainbow@3.0.3: + resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + engines: {node: '>=14.0.0'} + tinyspy@3.0.2: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} @@ -5230,6 +5279,9 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -5363,11 +5415,6 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - vite-node@2.1.9: - resolution: {integrity: sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - vite-node@3.0.5: resolution: {integrity: sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -5444,20 +5491,23 @@ packages: yaml: optional: true - vitest@2.1.9: - resolution: {integrity: sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==} - engines: {node: ^18.0.0 || >=20.0.0} + vitest@3.0.5: + resolution: {integrity: sha512-4dof+HvqONw9bvsYxtkfUp2uHsTN9bV2CZIi1pWgoFpL1Lld8LA1ka9q/ONSsoScAKG7NVGf2stJTI7XRkXb2Q==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.9 - '@vitest/ui': 2.1.9 + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.0.5 + '@vitest/ui': 3.0.5 happy-dom: '*' jsdom: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/debug': + optional: true '@types/node': optional: true '@vitest/browser': @@ -5469,16 +5519,18 @@ packages: jsdom: optional: true - vitest@3.0.5: - resolution: {integrity: sha512-4dof+HvqONw9bvsYxtkfUp2uHsTN9bV2CZIi1pWgoFpL1Lld8LA1ka9q/ONSsoScAKG7NVGf2stJTI7XRkXb2Q==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vitest@4.0.8: + resolution: {integrity: sha512-urzu3NCEV0Qa0Y2PwvBtRgmNtxhj5t5ULw7cuKhIHh3OrkKTLlut0lnBOv9qe5OvbkMH2g38G7KPDCTpIytBVg==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.0.5 - '@vitest/ui': 3.0.5 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.0.8 + '@vitest/browser-preview': 4.0.8 + '@vitest/browser-webdriverio': 4.0.8 + '@vitest/ui': 4.0.8 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -5488,7 +5540,11 @@ packages: optional: true '@types/node': optional: true - '@vitest/browser': + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': optional: true '@vitest/ui': optional: true @@ -6669,6 +6725,8 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -6721,7 +6779,7 @@ snapshots: '@milaboratories/helpers': 1.12.0 '@milaboratories/miplots4': 1.0.157(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0) '@milaboratories/pf-plots': 1.1.41 - '@platforma-sdk/model': 1.45.0 + '@platforma-sdk/model': 1.45.23 '@platforma-sdk/ui-vue': 1.45.0(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(sortablejs@1.15.6)(typescript@5.5.4) '@types/d3-hierarchy': 3.1.7 '@types/d3-scale': 4.0.9 @@ -6752,60 +6810,6 @@ snapshots: '@milaboratories/helpers@1.12.0': {} - '@milaboratories/miplots4@1.0.155(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)': - dependencies: - '@d3fc/d3fc-chart': 5.1.9(d3-array@3.2.4)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(d3-scale@4.0.2)(d3-selection@3.0.0)(d3-shape@3.2.0) - '@d3fc/d3fc-pointer': 3.0.3(d3-dispatch@3.0.1)(d3-selection@3.0.0) - '@d3fc/d3fc-webgl': 3.2.1(d3-scale@4.0.2)(d3-shape@3.2.0) - '@stdlib/stats-anova1': 0.2.2 - '@stdlib/stats-kruskal-test': 0.2.2 - '@stdlib/stats-ttest': 0.2.2 - '@stdlib/stats-ttest2': 0.2.2 - '@stdlib/stats-wilcoxon': 0.2.2 - '@types/d3-array': 3.2.1 - '@types/d3-axis': 3.0.6 - '@types/d3-color': 3.1.3 - '@types/d3-drag': 3.0.7 - '@types/d3-format': 3.0.4 - '@types/d3-hierarchy': 3.1.7 - '@types/d3-polygon': 3.0.2 - '@types/d3-quadtree': 3.0.6 - '@types/d3-random': 3.0.3 - '@types/d3-scale': 4.0.9 - '@types/d3-selection': 3.0.11 - '@types/d3-shape': 3.1.7 - '@types/d3-zoom': 3.0.8 - '@types/kdbush': 3.0.5 - '@types/lodash': 4.17.20 - '@types/node': 18.15.3 - '@types/rbush': 4.0.0 - '@types/react': 18.3.23 - '@types/react-dom': 18.3.7(@types/react@18.3.23) - d3-array: 3.2.4 - d3-axis: 3.0.0 - d3-color: 3.1.0 - d3-drag: 3.0.0 - d3-format: 3.1.0 - d3-hierarchy: 3.1.2 - d3-polygon: 3.0.1 - d3-quadtree: 3.0.1 - d3-random: 3.0.1 - d3-scale: 4.0.2 - d3-selection: 3.0.0 - d3-shape: 3.2.0 - d3-zoom: 3.0.0 - kdbush: 4.0.2 - lodash: 4.17.21 - rbush: 4.0.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zod: 3.23.8 - transitivePeerDependencies: - - d3-dispatch - - d3-path - - d3-scale-chromatic - - supports-color - '@milaboratories/miplots4@1.0.157(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)': dependencies: '@d3fc/d3fc-chart': 5.1.9(d3-array@3.2.4)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(d3-scale@4.0.2)(d3-selection@3.0.0)(d3-shape@3.2.0) @@ -6864,30 +6868,30 @@ snapshots: '@milaboratories/pf-plots@1.1.41': dependencies: '@milaboratories/pl-model-common': 1.21.4 - '@platforma-sdk/model': 1.45.0 + '@platforma-sdk/model': 1.45.23 canonicalize: 2.1.0 lodash: 4.17.21 - '@milaboratories/pframes-rs-node@1.0.95': + '@milaboratories/pframes-rs-node@1.0.103': dependencies: '@mapbox/node-pre-gyp': 2.0.0 '@milaboratories/helpers': 1.12.0 - '@milaboratories/pframes-rs-serv': 1.0.95 - '@milaboratories/pl-model-common': 1.21.3 + '@milaboratories/pframes-rs-serv': 1.0.103 + '@milaboratories/pl-model-common': 1.21.4 ulid: 3.0.1 transitivePeerDependencies: - encoding - supports-color - '@milaboratories/pframes-rs-serv@1.0.95': + '@milaboratories/pframes-rs-serv@1.0.103': dependencies: '@milaboratories/helpers': 1.12.0 - '@milaboratories/pl-model-common': 1.21.3 - '@milaboratories/pl-model-middle-layer': 1.8.34 - commander: 14.0.1 - selfsigned: 3.0.1 + '@milaboratories/pl-model-common': 1.21.4 + '@milaboratories/pl-model-middle-layer': 1.8.35 + commander: 14.0.2 + selfsigned: 4.0.0 - '@milaboratories/pl-client@2.16.1': + '@milaboratories/pl-client@2.16.2': dependencies: '@grpc/grpc-js': 1.13.4 '@milaboratories/pl-http': 1.2.0 @@ -6901,6 +6905,7 @@ snapshots: https-proxy-agent: 7.0.6 long: 5.3.2 lru-cache: 11.2.2 + tslib: 2.7.0 undici: 7.16.0 utility-types: 3.11.0 yaml: 2.8.1 @@ -6915,7 +6920,7 @@ snapshots: yaml: 2.8.1 zod: 3.23.8 - '@milaboratories/pl-deployments@2.11.0': + '@milaboratories/pl-deployments@2.12.0': dependencies: '@milaboratories/pl-config': 1.7.6 '@milaboratories/pl-http': 1.2.0 @@ -6931,14 +6936,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@milaboratories/pl-drivers@1.11.12': + '@milaboratories/pl-drivers@1.11.13': dependencies: '@grpc/grpc-js': 1.13.4 '@milaboratories/computable': 2.7.1 '@milaboratories/helpers': 1.12.0 - '@milaboratories/pl-client': 2.16.1 + '@milaboratories/pl-client': 2.16.2 '@milaboratories/pl-model-common': 1.21.4 - '@milaboratories/pl-tree': 1.8.8 + '@milaboratories/pl-tree': 1.8.9 '@milaboratories/ts-helpers': 1.5.1 '@protobuf-ts/grpc-transport': 2.11.1(@grpc/grpc-js@1.13.4) '@protobuf-ts/plugin': 2.11.1 @@ -6959,9 +6964,9 @@ snapshots: json-stringify-safe: 5.0.1 zod: 3.23.8 - '@milaboratories/pl-errors@1.1.33': + '@milaboratories/pl-errors@1.1.34': dependencies: - '@milaboratories/pl-client': 2.16.1 + '@milaboratories/pl-client': 2.16.2 '@milaboratories/ts-helpers': 1.5.1 zod: 3.23.8 transitivePeerDependencies: @@ -6974,25 +6979,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@milaboratories/pl-middle-layer@1.43.47': + '@milaboratories/pl-middle-layer@1.43.59': dependencies: '@milaboratories/computable': 2.7.1 - '@milaboratories/pframes-rs-node': 1.0.95 - '@milaboratories/pl-client': 2.16.1 + '@milaboratories/pframes-rs-node': 1.0.103 + '@milaboratories/pl-client': 2.16.2 '@milaboratories/pl-config': 1.7.6 - '@milaboratories/pl-deployments': 2.11.0 - '@milaboratories/pl-drivers': 1.11.12 - '@milaboratories/pl-errors': 1.1.33 + '@milaboratories/pl-deployments': 2.12.0 + '@milaboratories/pl-drivers': 1.11.13 + '@milaboratories/pl-errors': 1.1.34 '@milaboratories/pl-http': 1.2.0 - '@milaboratories/pl-model-backend': 1.1.18 + '@milaboratories/pl-model-backend': 1.1.19 '@milaboratories/pl-model-common': 1.21.4 '@milaboratories/pl-model-middle-layer': 1.8.35 - '@milaboratories/pl-tree': 1.8.8 + '@milaboratories/pl-tree': 1.8.9 '@milaboratories/resolve-helper': 1.1.1 '@milaboratories/ts-helpers': 1.5.1 '@platforma-sdk/block-tools': 2.6.16 - '@platforma-sdk/model': 1.45.0 - '@platforma-sdk/workflow-tengo': 5.5.9 + '@platforma-sdk/model': 1.45.23 + '@platforma-sdk/workflow-tengo': 5.5.16 canonicalize: 2.1.0 denque: 2.1.0 es-toolkit: 1.39.10 @@ -7008,33 +7013,20 @@ snapshots: - encoding - supports-color - '@milaboratories/pl-model-backend@1.1.18': + '@milaboratories/pl-model-backend@1.1.19': dependencies: - '@milaboratories/pl-client': 2.16.1 + '@milaboratories/pl-client': 2.16.2 canonicalize: 2.1.0 zod: 3.23.8 transitivePeerDependencies: - supports-color - '@milaboratories/pl-model-common@1.21.3': - dependencies: - '@milaboratories/pl-error-like': 1.12.5 - canonicalize: 2.1.0 - zod: 3.23.8 - '@milaboratories/pl-model-common@1.21.4': dependencies: '@milaboratories/pl-error-like': 1.12.5 canonicalize: 2.1.0 zod: 3.23.8 - '@milaboratories/pl-model-middle-layer@1.8.34': - dependencies: - '@milaboratories/pl-model-common': 1.21.3 - remeda: 2.30.0 - utility-types: 3.11.0 - zod: 3.23.8 - '@milaboratories/pl-model-middle-layer@1.8.35': dependencies: '@milaboratories/pl-model-common': 1.21.4 @@ -7042,12 +7034,12 @@ snapshots: utility-types: 3.11.0 zod: 3.23.8 - '@milaboratories/pl-tree@1.8.8': + '@milaboratories/pl-tree@1.8.9': dependencies: '@milaboratories/computable': 2.7.1 - '@milaboratories/pl-client': 2.16.1 + '@milaboratories/pl-client': 2.16.2 '@milaboratories/pl-error-like': 1.12.5 - '@milaboratories/pl-errors': 1.1.33 + '@milaboratories/pl-errors': 1.1.34 '@milaboratories/ts-helpers': 1.5.1 denque: 2.1.0 utility-types: 3.11.0 @@ -7109,6 +7101,40 @@ snapshots: - typescript - universal-cookie + '@milaboratories/uikit@2.5.3(typescript@5.5.4)': + dependencies: + '@milaboratories/helpers': 1.12.0 + '@platforma-sdk/model': 1.45.23 + '@types/d3-array': 3.2.1 + '@types/d3-axis': 3.0.6 + '@types/d3-scale': 4.0.9 + '@types/d3-selection': 3.0.11 + '@types/sortablejs': 1.15.8 + '@vue/test-utils': 2.4.6 + '@vueuse/core': 13.5.0(vue@3.5.13(typescript@5.5.4)) + '@vueuse/integrations': 13.5.0(sortablejs@1.15.6)(vue@3.5.13(typescript@5.5.4)) + canonicalize: 2.1.0 + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-scale: 4.0.2 + d3-selection: 3.0.0 + resize-observer-polyfill: 1.5.1 + sortablejs: 1.15.6 + vue: 3.5.13(typescript@5.5.4) + transitivePeerDependencies: + - async-validator + - axios + - change-case + - drauu + - focus-trap + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - typescript + - universal-cookie + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7164,7 +7190,7 @@ snapshots: '@platforma-open/milaboratories.software-ptabler.schema@1.12.0': {} - '@platforma-open/milaboratories.software-ptabler@1.13.2': {} + '@platforma-open/milaboratories.software-ptabler@1.13.4': {} '@platforma-open/milaboratories.software-ptexter@1.2.0': {} @@ -7253,6 +7279,15 @@ snapshots: utility-types: 3.11.0 zod: 3.23.8 + '@platforma-sdk/model@1.45.23': + dependencies: + '@milaboratories/pl-error-like': 1.12.5 + '@milaboratories/pl-model-common': 1.21.4 + '@milaboratories/ptabler-expression-js': 1.1.0 + canonicalize: 2.1.0 + utility-types: 3.11.0 + zod: 3.23.8 + '@platforma-sdk/package-builder@3.10.7': dependencies: '@aws-sdk/client-s3': 3.859.0 @@ -7271,9 +7306,9 @@ snapshots: transitivePeerDependencies: - aws-crt - '@platforma-sdk/tengo-builder@2.3.3': + '@platforma-sdk/tengo-builder@2.3.4': dependencies: - '@milaboratories/pl-model-backend': 1.1.18 + '@milaboratories/pl-model-backend': 1.1.19 '@milaboratories/resolve-helper': 1.1.1 '@milaboratories/tengo-tester': 1.6.4 '@milaboratories/ts-helpers': 1.5.1 @@ -7283,23 +7318,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@platforma-sdk/test@1.45.11(@types/node@24.5.2)': + '@platforma-sdk/test@1.45.25(@types/node@24.5.2)(yaml@2.8.1)': dependencies: '@milaboratories/computable': 2.7.1 - '@milaboratories/pl-client': 2.16.1 - '@milaboratories/pl-middle-layer': 1.43.47 - '@milaboratories/pl-tree': 1.8.8 + '@milaboratories/pl-client': 2.16.2 + '@milaboratories/pl-middle-layer': 1.43.59 + '@milaboratories/pl-tree': 1.8.9 '@milaboratories/ts-helpers': 1.5.1 - '@platforma-sdk/model': 1.45.0 - vitest: 2.1.9(@types/node@24.5.2) + '@platforma-sdk/model': 1.45.23 + vitest: 4.0.8(@types/node@24.5.2)(yaml@2.8.1) transitivePeerDependencies: - '@edge-runtime/vm' + - '@types/debug' - '@types/node' - - '@vitest/browser' + - '@vitest/browser-playwright' + - '@vitest/browser-preview' + - '@vitest/browser-webdriverio' - '@vitest/ui' - aws-crt - encoding - happy-dom + - jiti - jsdom - less - lightningcss @@ -7310,6 +7349,8 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml '@platforma-sdk/ui-vue@1.45.0(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(sortablejs@1.15.6)(typescript@5.5.4)': dependencies: @@ -7350,13 +7391,13 @@ snapshots: - typescript - universal-cookie - '@platforma-sdk/ui-vue@1.45.5(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(sortablejs@1.15.6)(typescript@5.5.4)': + '@platforma-sdk/ui-vue@1.45.23(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(sortablejs@1.15.6)(typescript@5.5.4)': dependencies: '@milaboratories/biowasm-tools': 2.0.0 - '@milaboratories/miplots4': 1.0.155(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0) + '@milaboratories/miplots4': 1.0.157(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0) '@milaboratories/ptabler-expression-js': 1.1.0 - '@milaboratories/uikit': 2.5.0(typescript@5.5.4) - '@platforma-sdk/model': 1.45.0 + '@milaboratories/uikit': 2.5.3(typescript@5.5.4) + '@platforma-sdk/model': 1.45.23 '@types/d3-format': 3.0.4 '@types/node': 24.5.2 '@types/semver': 7.7.0 @@ -7389,10 +7430,10 @@ snapshots: - typescript - universal-cookie - '@platforma-sdk/workflow-tengo@5.5.9': + '@platforma-sdk/workflow-tengo@5.5.16': dependencies: '@milaboratories/software-pframes-conv': 2.2.9 - '@platforma-open/milaboratories.software-ptabler': 1.13.2 + '@platforma-open/milaboratories.software-ptabler': 1.13.4 '@platforma-open/milaboratories.software-ptexter': 1.2.0 '@platforma-open/milaboratories.software-small-binaries': 1.15.23 @@ -7891,6 +7932,8 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@standard-schema/spec@1.0.0': {} + '@stdlib/array-base-accessor-getter@0.2.2': {} '@stdlib/array-base-accessor-setter@0.2.2': {} @@ -9984,6 +10027,11 @@ snapshots: dependencies: '@types/readdir-glob': 1.1.5 + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + '@types/d3-array@3.2.1': {} '@types/d3-axis@3.0.6': @@ -10029,6 +10077,8 @@ snapshots: '@types/d3-interpolate': 3.0.4 '@types/d3-selection': 3.0.11 + '@types/deep-eql@4.0.2': {} + '@types/estree@1.0.6': {} '@types/json-schema@7.0.15': {} @@ -10161,13 +10211,6 @@ snapshots: vite: 6.1.0(@types/node@24.5.2)(yaml@2.8.1) vue: 3.5.13(typescript@5.5.4) - '@vitest/expect@2.1.9': - dependencies: - '@vitest/spy': 2.1.9 - '@vitest/utils': 2.1.9 - chai: 5.1.2 - tinyrainbow: 1.2.0 - '@vitest/expect@3.0.5': dependencies: '@vitest/spy': 3.0.5 @@ -10175,13 +10218,14 @@ snapshots: chai: 5.1.2 tinyrainbow: 2.0.0 - '@vitest/mocker@2.1.9(vite@5.4.11(@types/node@24.5.2))': + '@vitest/expect@4.0.8': dependencies: - '@vitest/spy': 2.1.9 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - vite: 5.4.11(@types/node@24.5.2) + '@standard-schema/spec': 1.0.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.0.8 + '@vitest/utils': 4.0.8 + chai: 6.2.1 + tinyrainbow: 3.0.3 '@vitest/mocker@3.0.5(vite@5.4.11(@types/node@24.5.2))': dependencies: @@ -10191,29 +10235,31 @@ snapshots: optionalDependencies: vite: 5.4.11(@types/node@24.5.2) - '@vitest/pretty-format@2.1.9': + '@vitest/mocker@4.0.8(vite@6.1.0(@types/node@24.5.2)(yaml@2.8.1))': dependencies: - tinyrainbow: 1.2.0 + '@vitest/spy': 4.0.8 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 6.1.0(@types/node@24.5.2)(yaml@2.8.1) '@vitest/pretty-format@3.0.5': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@2.1.9': + '@vitest/pretty-format@4.0.8': dependencies: - '@vitest/utils': 2.1.9 - pathe: 1.1.2 + tinyrainbow: 3.0.3 '@vitest/runner@3.0.5': dependencies: '@vitest/utils': 3.0.5 pathe: 2.0.3 - '@vitest/snapshot@2.1.9': + '@vitest/runner@4.0.8': dependencies: - '@vitest/pretty-format': 2.1.9 - magic-string: 0.30.17 - pathe: 1.1.2 + '@vitest/utils': 4.0.8 + pathe: 2.0.3 '@vitest/snapshot@3.0.5': dependencies: @@ -10221,19 +10267,17 @@ snapshots: magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@2.1.9': + '@vitest/snapshot@4.0.8': dependencies: - tinyspy: 3.0.2 + '@vitest/pretty-format': 4.0.8 + magic-string: 0.30.21 + pathe: 2.0.3 '@vitest/spy@3.0.5': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.9': - dependencies: - '@vitest/pretty-format': 2.1.9 - loupe: 3.1.2 - tinyrainbow: 1.2.0 + '@vitest/spy@4.0.8': {} '@vitest/utils@3.0.5': dependencies: @@ -10241,6 +10285,11 @@ snapshots: loupe: 3.1.2 tinyrainbow: 2.0.0 + '@vitest/utils@4.0.8': + dependencies: + '@vitest/pretty-format': 4.0.8 + tinyrainbow: 3.0.3 + '@volar/language-core@2.4.11': dependencies: '@volar/source-map': 2.4.11 @@ -10610,6 +10659,8 @@ snapshots: loupe: 3.1.2 pathval: 2.0.0 + chai@6.2.1: {} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -10670,7 +10721,7 @@ snapshots: commander@10.0.1: {} - commander@14.0.1: {} + commander@14.0.2: {} commander@2.20.3: {} @@ -10819,6 +10870,10 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decompress-tar@4.1.1: dependencies: file-type: 5.2.0 @@ -10908,6 +10963,8 @@ snapshots: es-module-lexer@1.6.0: {} + es-module-lexer@1.7.0: {} + es-toolkit@1.39.10: {} esbuild@0.21.5: @@ -11124,6 +11181,8 @@ snapshots: expect-type@1.1.0: {} + expect-type@1.2.2: {} + extendable-error@0.1.7: {} external-editor@3.1.0: @@ -11164,6 +11223,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + fecha@4.2.3: {} file-entry-cache@8.0.0: @@ -11476,6 +11539,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + make-dir@1.3.0: dependencies: pify: 3.0.0 @@ -11631,8 +11698,6 @@ snapshots: path-type@4.0.0: {} - pathe@1.1.2: {} - pathe@2.0.3: {} pathval@2.0.0: {} @@ -11645,6 +11710,8 @@ snapshots: picomatch@4.0.2: {} + picomatch@4.0.3: {} + pify@2.3.0: {} pify@3.0.0: {} @@ -11881,7 +11948,7 @@ snapshots: dependencies: commander: 2.20.3 - selfsigned@3.0.1: + selfsigned@4.0.0: dependencies: node-forge: 1.3.1 @@ -11930,6 +11997,8 @@ snapshots: stackback@0.0.2: {} + std-env@3.10.0: {} + std-env@3.8.0: {} stream-browserify@3.0.0: @@ -12065,12 +12134,17 @@ snapshots: fdir: 6.4.2(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.0.2: {} + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 - tinyrainbow@1.2.0: {} + tinypool@1.0.2: {} tinyrainbow@2.0.0: {} + tinyrainbow@3.0.3: {} + tinyspy@3.0.2: {} tmp@0.0.33: @@ -12099,6 +12173,8 @@ snapshots: ts-interface-checker@0.1.13: {} + tslib@2.7.0: {} + tslib@2.8.1: {} tsup@8.3.5(postcss@8.5.2)(typescript@5.5.4)(yaml@2.8.1): @@ -12208,24 +12284,6 @@ snapshots: uuid@9.0.1: {} - vite-node@2.1.9(@types/node@24.5.2): - dependencies: - cac: 6.7.14 - debug: 4.4.0(supports-color@8.1.1) - es-module-lexer: 1.6.0 - pathe: 1.1.2 - vite: 5.4.11(@types/node@24.5.2) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - vite-node@3.0.5(@types/node@24.5.2): dependencies: cac: 6.7.14 @@ -12263,27 +12321,27 @@ snapshots: fsevents: 2.3.3 yaml: 2.8.1 - vitest@2.1.9(@types/node@24.5.2): + vitest@3.0.5(@types/node@24.5.2): dependencies: - '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.11(@types/node@24.5.2)) - '@vitest/pretty-format': 2.1.9 - '@vitest/runner': 2.1.9 - '@vitest/snapshot': 2.1.9 - '@vitest/spy': 2.1.9 - '@vitest/utils': 2.1.9 + '@vitest/expect': 3.0.5 + '@vitest/mocker': 3.0.5(vite@5.4.11(@types/node@24.5.2)) + '@vitest/pretty-format': 3.0.5 + '@vitest/runner': 3.0.5 + '@vitest/snapshot': 3.0.5 + '@vitest/spy': 3.0.5 + '@vitest/utils': 3.0.5 chai: 5.1.2 debug: 4.4.0(supports-color@8.1.1) expect-type: 1.1.0 magic-string: 0.30.17 - pathe: 1.1.2 + pathe: 2.0.3 std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinypool: 1.0.2 - tinyrainbow: 1.2.0 + tinyrainbow: 2.0.0 vite: 5.4.11(@types/node@24.5.2) - vite-node: 2.1.9(@types/node@24.5.2) + vite-node: 3.0.5(@types/node@24.5.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.5.2 @@ -12298,31 +12356,32 @@ snapshots: - supports-color - terser - vitest@3.0.5(@types/node@24.5.2): - dependencies: - '@vitest/expect': 3.0.5 - '@vitest/mocker': 3.0.5(vite@5.4.11(@types/node@24.5.2)) - '@vitest/pretty-format': 3.0.5 - '@vitest/runner': 3.0.5 - '@vitest/snapshot': 3.0.5 - '@vitest/spy': 3.0.5 - '@vitest/utils': 3.0.5 - chai: 5.1.2 - debug: 4.4.0(supports-color@8.1.1) - expect-type: 1.1.0 - magic-string: 0.30.17 + vitest@4.0.8(@types/node@24.5.2)(yaml@2.8.1): + dependencies: + '@vitest/expect': 4.0.8 + '@vitest/mocker': 4.0.8(vite@6.1.0(@types/node@24.5.2)(yaml@2.8.1)) + '@vitest/pretty-format': 4.0.8 + '@vitest/runner': 4.0.8 + '@vitest/snapshot': 4.0.8 + '@vitest/spy': 4.0.8 + '@vitest/utils': 4.0.8 + debug: 4.4.3 + es-module-lexer: 1.7.0 + expect-type: 1.2.2 + magic-string: 0.30.21 pathe: 2.0.3 - std-env: 3.8.0 + picomatch: 4.0.3 + std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinypool: 1.0.2 - tinyrainbow: 2.0.0 - vite: 5.4.11(@types/node@24.5.2) - vite-node: 3.0.5(@types/node@24.5.2) + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 6.1.0(@types/node@24.5.2)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.5.2 transitivePeerDependencies: + - jiti - less - lightningcss - msw @@ -12332,6 +12391,8 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml vscode-uri@3.0.8: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dcf9b3b..51b4fd0 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -7,12 +7,12 @@ packages: - block catalog: - "@platforma-sdk/model": ^1.45.0 - "@platforma-sdk/ui-vue": ^1.45.5 - "@platforma-sdk/workflow-tengo": ^5.5.9 + "@platforma-sdk/model": ^1.45.23 + "@platforma-sdk/ui-vue": ^1.45.23 + "@platforma-sdk/workflow-tengo": ^5.5.16 "@platforma-sdk/block-tools": ^2.6.16 - "@platforma-sdk/test": ^1.45.11 - "@platforma-sdk/tengo-builder": ^2.3.3 + "@platforma-sdk/test": ^1.45.25 + "@platforma-sdk/tengo-builder": ^2.3.4 "@platforma-sdk/package-builder": ^3.10.7 "@platforma-sdk/blocks-deps-updater": ^2.0.0 "@milaboratories/graph-maker": ^1.1.175 From 721534a5a4bf982acc892d690a28ac9e9e06cab6 Mon Sep 17 00:00:00 2001 From: aiturbidemil Date: Wed, 12 Nov 2025 10:50:54 +0100 Subject: [PATCH 2/6] update metadata --- block/package.json | 6 +++--- docs/description.md | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/block/package.json b/block/package.json index 9d89c7a..496cc29 100644 --- a/block/package.json +++ b/block/package.json @@ -1,6 +1,6 @@ { "name": "@platforma-open/milaboratories.dimensionality-reduction", - "version": "1.2.16", + "version": "1.2.15", "scripts": { "pretty": "prettier --write \"./**/*.{js,jsx,mjs,cjs,ts,tsx,json,vue}\"", "build": "rm -rf block-pack && block-tools pack", @@ -26,9 +26,9 @@ "title": "Dimensionality Reduction", "logo": "file:../logos/block-logo.png", "url": "https://github.com/platforma-open/dimensionality-reduction", - "docs": "https://github.com/platforma-open/dimensionality-reduction/docs", + "docs": "https://docs.platforma.bio/guides/sc-rna-seq-analysis/dimensionality-reduction/", "support": "mailto:support@milaboratories.com", - "description": "Takes single cell count matrix as input, performs dimensionality reduction using UMAP and tSNE methods.", + "description": "Performs dimensionality reduction on single-cell RNA-seq count matrices using PCA, t-SNE, and UMAP, with optional Harmony batch correction.", "longDescription": "file:../docs/description.md", "changelog": "file:../CHANGELOG.md", "tags": [ diff --git a/docs/description.md b/docs/description.md index b7b1db4..6e10a38 100644 --- a/docs/description.md +++ b/docs/description.md @@ -1,3 +1,19 @@ # Overview -Takes high-dimensional gene expression data and transforms it into a lower-dimensional space while preserving the most important biological variation. The block takes the output from any scRNA-seq preprocessing block (e.g., Cell Ranger) as input. It generates plots with tSNE and UMAP projections to aid dataset exploration and outputs dimension values to be used by downstream blocks (e.g. Cell Browser). +Takes high-dimensional gene expression data from scRNA-seq preprocessing blocks (e.g., Cell Ranger) and transforms it into a lower-dimensional space while preserving biological variation using three complementary methods. Principal Component Analysis (PCA) reduces the data to a configurable number of principal components capturing major sources of variation. t-distributed Stochastic Neighbor Embedding (t-SNE) creates a two-dimensional embedding optimized for local structure preservation, while Uniform Manifold Approximation and Projection (UMAP) generates a three-dimensional embedding balancing local and global structure. Both t-SNE and UMAP use adaptive parameters that adjust based on dataset size, and all methods operate on the PCA space for computational efficiency. + +When metadata covariates are provided, the block optionally performs batch correction using Harmony, which integrates cells across batches while preserving biological variation. Harmony correction is applied to the PCA space, and both UMAP and t-SNE embeddings are recomputed using the corrected principal components. + +The resulting dimension values are used by downstream blocks: PCA components for clustering and pseudotime inference, and UMAP/t-SNE embeddings for visualization. The block provides both standard and batch-corrected embeddings for comparison. + +The block uses scanpy v1.10.1 for dimensionality reduction algorithms and preprocessing. When using this block in your research, cite the scanpy publication (Wolf et al. 2018) listed below. + +The following publications describe the methodologies used: + +> Wolf, F. A., Angerer, P., & Theis, F. J. (2018). SCANPY: large-scale single-cell gene expression data analysis. _Genome Biology_ **19**, 15 (2018). [https://doi.org/10.1186/s13059-017-1382-0](https://doi.org/10.1186/s13059-017-1382-0) + +> McInnes, L., Healy, J., & Melville, J. (2018). UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. _Journal of Open Source Software_ **3**(29), 861. [https://doi.org/10.21105/joss.00861](https://doi.org/10.21105/joss.00861) + +> van der Maaten, L., & Hinton, G. (2008). Visualizing data using t-SNE. _Journal of Machine Learning Research_ **9**, 2579-2605. [http://www.jmlr.org/papers/v9/vandermaaten08a.html](http://www.jmlr.org/papers/v9/vandermaaten08a.html) + +> Korsunsky, I., Millard, N., Fan, J. et al. (2019). Fast, sensitive and accurate integration of single-cell data with Harmony. _Nature Methods_ **16**, 1289–1296 (2019). [https://doi.org/10.1038/s41592-019-0619-0](https://doi.org/10.1038/s41592-019-0619-0) From 55765bf8234f2ddeaeb553193558cafbba7a2ef3 Mon Sep 17 00:00:00 2001 From: aiturbidemil Date: Wed, 12 Nov 2025 10:51:00 +0100 Subject: [PATCH 3/6] fix trace --- workflow/src/main.tpl.tengo | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/workflow/src/main.tpl.tengo b/workflow/src/main.tpl.tengo index b46cd30..7fda97a 100644 --- a/workflow/src/main.tpl.tengo +++ b/workflow/src/main.tpl.tengo @@ -122,18 +122,13 @@ wf.body(func(args) { } // Make trace with informative label - traceLabel := "(nPCs:" + string(nPCs) + ", nNeighbors:" + string(nNeighbors) + ")" + traceLabel := "Dimensionality Reduction (nPCs:" + string(nPCs) + ", nNeighbors:" + string(nNeighbors) + ")" // Make trace trace := pSpec.makeTrace(inputSpec, { type: "milaboratories.dimensionality-reduction", id: blockId, importance: 35, - label: "Dimensionality Reduction" - }, - { - type: "milaboratories.dimensionality-reduction", - id: blockId, importance: 30, label: traceLabel } ) @@ -142,12 +137,7 @@ wf.body(func(args) { { type: "milaboratories.dimensionality-reduction", id: blockId, importance: 35, - label: "Batch Corrected Dimensionality Reduction" - }, - { - type: "milaboratories.dimensionality-reduction", - id: blockId, importance: 30, - label: traceLabel + label: "Batch Corrected " + traceLabel } ) From 7f5ee46dd94030b5b115beafcee8ffcb4d217fff Mon Sep 17 00:00:00 2001 From: aiturbidemil Date: Wed, 12 Nov 2025 12:06:45 +0100 Subject: [PATCH 4/6] deduplication --- workflow/src/batch-correction.tpl.tengo | 41 ++++++++++++ .../src/dim-reduction-calculation.tpl.tengo | 42 ++++++++++++ workflow/src/main.tpl.tengo | 64 +++++++------------ 3 files changed, 106 insertions(+), 41 deletions(-) create mode 100644 workflow/src/batch-correction.tpl.tengo create mode 100644 workflow/src/dim-reduction-calculation.tpl.tengo diff --git a/workflow/src/batch-correction.tpl.tengo b/workflow/src/batch-correction.tpl.tengo new file mode 100644 index 0000000..560fdef --- /dev/null +++ b/workflow/src/batch-correction.tpl.tengo @@ -0,0 +1,41 @@ +self := import("@platforma-sdk/workflow-tengo:tpl") +exec := import("@platforma-sdk/workflow-tengo:exec") +assets := import("@platforma-sdk/workflow-tengo:assets") + +self.defineOutputs("umapDimensionsCsv", "tsneDimensionsCsv", "harmonyResultsCsv") + +self.body(func(args) { + // Input parameters + csvCounts := args.csvCounts + csvCovariates := args.csvCovariates + mem := args.mem + cpu := args.cpu + + // Batch correction software execution + batchCorrection := exec.builder(). + software(assets.importSoftware("@platforma-open/milaboratories.dimensionality-reduction.software:calculate-batchCorrection")). + mem(mem). + cpu(cpu). + addFile("rawCounts.csv", csvCounts). + addFile("metadata.csv", csvCovariates). + arg("--counts").arg("rawCounts.csv"). + arg("--metadata").arg("metadata.csv"). + arg("--output").arg("."). + saveFile("umap_dimensions.csv"). + saveFile("tsne_dimensions.csv"). + saveFile("harmony_results.csv"). + cache(24 * 60 * 60 * 1000). + run() + + // Get result files + umapDimensionsCsv := batchCorrection.getFile("umap_dimensions.csv") + tsneDimensionsCsv := batchCorrection.getFile("tsne_dimensions.csv") + harmonyResultsCsv := batchCorrection.getFile("harmony_results.csv") + + return { + umapDimensionsCsv: umapDimensionsCsv, + tsneDimensionsCsv: tsneDimensionsCsv, + harmonyResultsCsv: harmonyResultsCsv + } +}) + diff --git a/workflow/src/dim-reduction-calculation.tpl.tengo b/workflow/src/dim-reduction-calculation.tpl.tengo new file mode 100644 index 0000000..248f4db --- /dev/null +++ b/workflow/src/dim-reduction-calculation.tpl.tengo @@ -0,0 +1,42 @@ +self := import("@platforma-sdk/workflow-tengo:tpl") +exec := import("@platforma-sdk/workflow-tengo:exec") +assets := import("@platforma-sdk/workflow-tengo:assets") + +self.defineOutputs("umapResultsCsv", "tsneResultsCsv", "pcaResultsCsv") + +self.body(func(args) { + // Input parameters + csvCounts := args.csvCounts + nPCs := args.nPCs + nNeighbors := args.nNeighbors + mem := args.mem + cpu := args.cpu + + // Dimensionality reduction software execution + dimReduction := exec.builder(). + software(assets.importSoftware("@platforma-open/milaboratories.dimensionality-reduction.software:calculate-dimRed")). + mem(mem). + cpu(cpu). + addFile("rawCounts.csv", csvCounts). + arg("--file_path").arg("rawCounts.csv"). + arg("--output_dir").arg("."). + arg("--n_pcs").arg(string(nPCs)). + arg("--n_neighbors").arg(string(nNeighbors)). + saveFile("umap_results.csv"). + saveFile("tsne_results.csv"). + saveFile("pca_results.csv"). + cache(24 * 60 * 60 * 1000). + run() + + // Get result files + umapResultsCsv := dimReduction.getFile("umap_results.csv") + tsneResultsCsv := dimReduction.getFile("tsne_results.csv") + pcaResultsCsv := dimReduction.getFile("pca_results.csv") + + return { + umapResultsCsv: umapResultsCsv, + tsneResultsCsv: tsneResultsCsv, + pcaResultsCsv: pcaResultsCsv + } +}) + diff --git a/workflow/src/main.tpl.tengo b/workflow/src/main.tpl.tengo index 7fda97a..7c52094 100644 --- a/workflow/src/main.tpl.tengo +++ b/workflow/src/main.tpl.tengo @@ -1,6 +1,6 @@ wf := import("@platforma-sdk/workflow-tengo:workflow") -exec := import("@platforma-sdk/workflow-tengo:exec") assets:= import("@platforma-sdk/workflow-tengo:assets") +render := import("@platforma-sdk/workflow-tengo:render") xsv := import("@platforma-sdk/workflow-tengo:pframes.xsv") pframes := import("@platforma-sdk/workflow-tengo:pframes") pSpec := import("@platforma-sdk/workflow-tengo:pframes.spec") @@ -15,6 +15,9 @@ pfPCABatchConv := import(":pf-pca-batch-conv") // pfRawCountsConv := import(":pf-counts-conv") // pfNormCountsConv := import(":pf-norm-counts-conv") +dimReductionTpl := assets.importTemplate(":dim-reduction-calculation") +batchCorrectionTpl := assets.importTemplate(":batch-correction") + wf.prepare(func(args){ metaRefs := {} i := 0 @@ -46,31 +49,22 @@ wf.body(func(args) { csvCounts := xsv.exportFrame([rawCounts], "csv", { mem: defaultConvMem, cpu: defaultConvCpu }) // Always run regular dimensionality reduction - dimReduction := exec.builder(). - software(assets.importSoftware("@platforma-open/milaboratories.dimensionality-reduction.software:calculate-dimRed")). - mem("32GiB"). - cpu(16). - addFile("rawCounts.csv", csvCounts). - arg("--file_path").arg("rawCounts.csv"). - arg("--output_dir").arg("."). - arg("--n_pcs").arg(string(nPCs)). - arg("--n_neighbors").arg(string(nNeighbors)). - saveFile("umap_results.csv"). - saveFile("tsne_results.csv"). - saveFile("pca_results.csv"). - printErrStreamToStdout(). - saveStdoutContent(). - cache(24 * 60 * 60 * 1000). - run() + dimReductionRender := render.create(dimReductionTpl, { + csvCounts: csvCounts, + nPCs: nPCs, + nNeighbors: nNeighbors, + mem: "32GiB", + cpu: 16 + }) UMAPDimImportParams := pfUMAPConv.getColumns(blockId, inputSpec) - UMAPPf := xsv.importFile(dimReduction.getFile("umap_results.csv"), "csv", UMAPDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) + UMAPPf := xsv.importFile(dimReductionRender.output("umapResultsCsv"), "csv", UMAPDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) tSNEDimImportParams := pfTSNEConv.getColumns(blockId, inputSpec) - tSNEPf := xsv.importFile(dimReduction.getFile("tsne_results.csv"), "csv", tSNEDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) + tSNEPf := xsv.importFile(dimReductionRender.output("tsneResultsCsv"), "csv", tSNEDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) PCADimImportParams := pfPCAConv.getColumns(blockId, inputSpec) - PCAPf := xsv.importFile(dimReduction.getFile("pca_results.csv"), "csv", PCADimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) + PCAPf := xsv.importFile(dimReductionRender.output("pcaResultsCsv"), "csv", PCADimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) // Conditionally run batch correction if covariates are provided UMAPHarmonyPf := undefined @@ -85,37 +79,25 @@ wf.body(func(args) { csvCovariates := xsv.exportFrame(covariates, "csv", {}) - batchCorrection := exec.builder(). - software(assets.importSoftware("@platforma-open/milaboratories.dimensionality-reduction.software:calculate-batchCorrection")). - mem("32GiB"). - cpu(16). - addFile("rawCounts.csv", csvCounts). - addFile("metadata.csv", csvCovariates). - arg("--counts").arg("rawCounts.csv"). - arg("--metadata").arg("metadata.csv"). - arg("--output").arg("."). - saveFile("umap_dimensions.csv"). - saveFile("tsne_dimensions.csv"). - // saveFile("batch_corrected_counts.csv"). - // saveFile("batch_corrected_normalized_counts.csv"). - saveFile("harmony_results.csv"). - printErrStreamToStdout(). - saveStdoutContent(). - cache(24 * 60 * 60 * 1000). - run() + batchCorrectionRender := render.create(batchCorrectionTpl, { + csvCounts: csvCounts, + csvCovariates: csvCovariates, + mem: "32GiB", + cpu: 16 + }) // Process harmony-corrected results UMAPHarmonyDimImportParams := pfUMAPBatchConv.getColumns(blockId, inputSpec) - UMAPHarmonyPf = xsv.importFile(batchCorrection.getFile("umap_dimensions.csv"), "csv", UMAPHarmonyDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) + UMAPHarmonyPf = xsv.importFile(batchCorrectionRender.output("umapDimensionsCsv"), "csv", UMAPHarmonyDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) tSNEHarmonyDimImportParams := pfTSNEBatchConv.getColumns(blockId, inputSpec) - tSNEHarmonyPf = xsv.importFile(batchCorrection.getFile("tsne_dimensions.csv"), "csv", tSNEHarmonyDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) + tSNEHarmonyPf = xsv.importFile(batchCorrectionRender.output("tsneDimensionsCsv"), "csv", tSNEHarmonyDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) // batchCorrectedCountsImportParams := pfRawCountsConv.getColumns(blockId, inputSpec, species) // batchCorrectedCountsPf := xsv.importFile(batchCorrection.getFile("batch_corrected_counts.csv"), "csv", batchCorrectedCountsImportParams) PCAHarmonyDimImportParams := pfPCABatchConv.getColumns(blockId, inputSpec) - PCAHarmonyPf = xsv.importFile(batchCorrection.getFile("harmony_results.csv"), "csv", PCAHarmonyDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) + PCAHarmonyPf = xsv.importFile(batchCorrectionRender.output("harmonyResultsCsv"), "csv", PCAHarmonyDimImportParams, {splitDataAndSpec: true, mem: defaultConvMem, cpu: defaultConvCpu}) // batchCorrectedNormalizedCountsImportParams := pfNormCountsConv.getColumns(blockId, inputSpec, species) // batchCorrectedNormalizedCountsPf := xsv.importFile(batchCorrection.getFile("batch_corrected_normalized_counts.csv"), "csv", batchCorrectedNormalizedCountsImportParams) From 914c7b0249dce6421ae05786fdb83883643a8f68 Mon Sep 17 00:00:00 2001 From: aiturbidemil Date: Wed, 12 Nov 2025 12:10:27 +0100 Subject: [PATCH 5/6] changeset --- .changeset/famous-hounds-dress.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/famous-hounds-dress.md diff --git a/.changeset/famous-hounds-dress.md b/.changeset/famous-hounds-dress.md new file mode 100644 index 0000000..5dd0353 --- /dev/null +++ b/.changeset/famous-hounds-dress.md @@ -0,0 +1,6 @@ +--- +'@platforma-open/milaboratories.dimensionality-reduction.workflow': minor +'@platforma-open/milaboratories.dimensionality-reduction': minor +--- + +Enable block deduplication and improve trace label From 6bee537ff17de0923ef38659a24bf07155bd4677 Mon Sep 17 00:00:00 2001 From: aiturbidemil Date: Wed, 12 Nov 2025 12:15:56 +0100 Subject: [PATCH 6/6] fix block version --- block/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/package.json b/block/package.json index 496cc29..5ac5a05 100644 --- a/block/package.json +++ b/block/package.json @@ -1,6 +1,6 @@ { "name": "@platforma-open/milaboratories.dimensionality-reduction", - "version": "1.2.15", + "version": "1.2.16", "scripts": { "pretty": "prettier --write \"./**/*.{js,jsx,mjs,cjs,ts,tsx,json,vue}\"", "build": "rm -rf block-pack && block-tools pack",