From 9ca1d8ab1fc720557c9d5b82a969a92f56f3a0a9 Mon Sep 17 00:00:00 2001 From: Mariia Zueva Date: Mon, 31 Aug 2026 12:58:28 +0200 Subject: [PATCH 1/7] Show only this block's scores in the results table The table discovered its columns from the result pool by anchor and axis match. A second Sort-Seq Analysis block exports gateRankMean and binScore on the same variant axis, so both runs' scores appeared side by side; the block's own exports were found twice for the same reason. This block's columns now come from its workflow output as the table's primary columns, and the whole pl7.app/facsBin/ namespace is excluded from the pool query, which keeps supplying the variant label, the mutation list and the profiler's per-variant columns. --- .changeset/quiet-goats-shave.md | 9 +++++ model/src/index.ts | 58 ++++++++++++++++++++++++++------- 2 files changed, 56 insertions(+), 11 deletions(-) create mode 100644 .changeset/quiet-goats-shave.md diff --git a/.changeset/quiet-goats-shave.md b/.changeset/quiet-goats-shave.md new file mode 100644 index 0000000..e4cf319 --- /dev/null +++ b/.changeset/quiet-goats-shave.md @@ -0,0 +1,9 @@ +--- +'@platforma-open/milaboratories.sort-seq-analysis.model': patch +--- + +Results table shows only this block's scores. A second Sort-Seq Analysis block on the same +project exported columns the table's pool query could not tell apart from this one's, so both +runs' `gateRankMean` and `binScore` appeared side by side. The block's own columns now come +from its workflow output as the table's primary columns, and the whole `pl7.app/facsBin/` +namespace is excluded from the pool query. diff --git a/model/src/index.ts b/model/src/index.ts index dd48d51..3523e47 100644 --- a/model/src/index.ts +++ b/model/src/index.ts @@ -2,6 +2,8 @@ import { BlockModelV3, createPFrameForGraphs, createPlDataTableV3, + DataColumn, + discoverTableColumnSnaphots, type InferOutputsType, type PColumn, type PColumnSpec, @@ -238,6 +240,12 @@ export const platforma = BlockModelV3.create(blockDataModel) * Main — one row per variant, carrying both scored columns for every retained condition * together with the pool columns that share the variant axis. * + * **This run's scored columns and no other block's.** A second sort-seq block on the same + * project exports columns whose specs are indistinguishable from this one's by anything + * discovery matches on, so the columns are supplied from this block's own output and the + * whole `pl7.app/facsBin/` namespace is excluded from the pool query — see the two comments + * in the body. + * * Anchored on `gateRankMean` rather than `binScore`, because the anchor decides whether the * table renders at all and `binScore` is legitimately absent at a condition whose parent * went unscored. Anchored on that, a run that scored perfectly well everywhere else would @@ -256,10 +264,10 @@ export const platforma = BlockModelV3.create(blockDataModel) * value only makes the pick stable across renders. */ .outputWithStatus("resultsTable", (ctx) => { - const columns = ctx.outputs?.resolve("scoresPf")?.getPColumns(); - if (!columns) return undefined; + const own = ctx.outputs?.resolve("scoresPf")?.getPColumns(); + if (!own) return undefined; - const anchor = columns + const anchor = own .filter((column) => column.spec.name === FacsBin.GateRankMean) .sort((a, b) => (a.spec.domain?.[FacsBin.ConditionDomain] ?? "").localeCompare( @@ -268,15 +276,40 @@ export const platforma = BlockModelV3.create(blockDataModel) )[0]; if (!anchor) return undefined; - return createPlDataTableV3(ctx, { - columns: { - anchors: { main: anchor.spec }, - // Strict axis equality, so only columns keyed on the variant axis and nothing else get - // in. "related" would let both sides' axes float and reach every column the variant - // axis participates in — the per-position state matrix, this block's own per-gate - // distribution — giving a row per variant per position per gate. - selector: { mode: "exact" }, + // This block's own scored columns, every one of them, taken from the workflow output. + // They are the table's primary columns, so they are always shown and never compete with + // a namesake from the pool. + const primaryColumns = own.map((column) => DataColumn.fromColumn(column)); + + // Everything else the variant axis reaches — the variant label, the mutation list, the + // per-variant columns of the upstream profiler. + // + // **Every `pl7.app/facsBin/` column is excluded here, this block's own included.** The + // pool carries the exports of *every* sort-seq block on the project, and their specs are + // identical in every part the discovery matches on: same name, same variant axis. Only + // the `pl7.app/block` domain key tells them apart, and a selector can require a domain + // value but cannot refuse one — so there is no selector that admits this instance's + // columns and refuses a sibling's. Dropping the whole namespace and supplying this + // block's own columns above is what makes the table show one run. + // + // Excluding them also removes the duplicate this block creates for itself: its scores + // reach the pool through `exports.pf` as well, and discovery would find that copy + // alongside the output columns. + const { primary, secondary } = discoverTableColumnSnaphots(ctx, { + anchors: { main: anchor.spec }, + // Strict axis equality, so only columns keyed on the variant axis and nothing else get + // in. "related" would let both sides' axes float and reach every column the variant + // axis participates in — the per-position state matrix, this block's own per-gate + // distribution — giving a row per variant per position per gate. + selector: { + mode: "exact", + exclude: [{ name: [{ type: "regex", value: "^pl7\\.app/facsBin/.*$" }] }], }, + }); + + return createPlDataTableV3(ctx, { + primaryColumns, + columns: [...primary, ...secondary], tableState: ctx.data.resultsTableState, displayOptions: { /** @@ -287,6 +320,9 @@ export const platforma = BlockModelV3.create(blockDataModel) * `optional` rather than `hidden` for the remainder: they stay one click away in the * column picker. Hiding a column a user wants, with no way to bring it back, is the * worse failure. + * + * The two score rules are the block's own columns, which are primary and therefore + * always on screen; the rules state their visibility for the column picker's sake. */ visibility: [ { match: { name: exact(FacsBin.GateRankMean) }, visibility: "default" }, From c8ec3ac17e5318abe2586b63e0bbfa2e250fa4a8 Mon Sep 17 00:00:00 2001 From: Mariia Zueva Date: Mon, 31 Aug 2026 13:06:34 +0200 Subject: [PATCH 2/7] Incorporate structurer: SDK upgrade and the kind package scaffold Output of the canonical upgrade-sdk flow (refresh --update-deps-only, install, refresh, install, fmt), plus the kind/ package the structural refresh requires: block-tools hard-fails a block that declares no kind. SDK: model/ui-vue 1.81.1 to 1.83.x, workflow-tengo 6.8.2 to 6.8.3, tengo-builder 4.0.22 to 4.0.23, block-tools 2.13.0 to 2.14.3, ts-builder 1.6.2 to 1.7.2. New catalog entry: block-kind 1.1.0. The refresh wired the kind as a direct devDep of the facade and a dependency of the model and test packages, and moved the CI workflows to node 22. It also dropped --unstable from the facade's prepublishOnly. kind/src/index.ts and the model wiring follow in the next commit. --- .github/workflows/build.yaml | 2 +- .github/workflows/mark-stable.yaml | 2 +- block/package.json | 3 +- kind/.oxfmtrc.json | 4 + kind/.oxlintrc.json | 3 + kind/package.json | 37 ++ kind/tsconfig.json | 10 + model/package.json | 1 + pnpm-lock.yaml | 987 +++++++++++++++++++---------- pnpm-workspace.yaml | 16 +- test/package.json | 1 + 11 files changed, 712 insertions(+), 354 deletions(-) create mode 100644 kind/.oxfmtrc.json create mode 100644 kind/.oxlintrc.json create mode 100644 kind/package.json create mode 100644 kind/tsconfig.json diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 569d0e6..0dd0f9a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,7 +24,7 @@ jobs: with: app-name: 'Block: Sort Seq Analysis' app-name-slug: 'block-sort-seq-analysis' - node-version: '20.x' + node-version: '22.x' gha-runner-label: hz-ubuntu-dind build-script-name: 'build:dev-local' build-before-publish-script-name: 'build:release' diff --git a/.github/workflows/mark-stable.yaml b/.github/workflows/mark-stable.yaml index 67d52e7..74dbfa5 100644 --- a/.github/workflows/mark-stable.yaml +++ b/.github/workflows/mark-stable.yaml @@ -15,7 +15,7 @@ jobs: uses: milaboratory/github-ci/.github/workflows/block-mark-stable.yaml@v4 with: app-name: 'Block: Sort Seq Analysis - Mark Stable' - node-version: '20.x' + node-version: '22.x' npmrc-config: | { "registries": { diff --git a/block/package.json b/block/package.json index 36f0b72..1b5e8a1 100644 --- a/block/package.json +++ b/block/package.json @@ -19,13 +19,14 @@ "scripts": { "build": "ts-builder build --target block-facade && block-tools pack", "check": "ts-builder type-check --target block-facade", - "prepublishOnly": "block-tools publish --unstable -r s3://milab-euce1-prod-pkgs-s3-block-registry/pub/releases/?region=eu-central-1 --registry-serve-url https://blocks.pl-open.science", + "prepublishOnly": "block-tools publish -r s3://milab-euce1-prod-pkgs-s3-block-registry/pub/releases/?region=eu-central-1 --registry-serve-url https://blocks.pl-open.science", "do-pack": "shx rm -f package.tgz && pnpm pack && shx mv *.tgz package.tgz" }, "dependencies": {}, "devDependencies": { "@milaboratories/ts-builder": "catalog:", "@milaboratories/ts-configs": "catalog:", + "@platforma-open/milaboratories.sort-seq-analysis.kind": "workspace:*", "@platforma-open/milaboratories.sort-seq-analysis.model": "workspace:*", "@platforma-open/milaboratories.sort-seq-analysis.ui": "workspace:*", "@platforma-open/milaboratories.sort-seq-analysis.workflow": "workspace:*", diff --git a/kind/.oxfmtrc.json b/kind/.oxfmtrc.json new file mode 100644 index 0000000..7eff5e7 --- /dev/null +++ b/kind/.oxfmtrc.json @@ -0,0 +1,4 @@ +{ + "extends": ["node_modules/@milaboratories/ts-builder/configs/oxfmt.json"], + "ignorePatterns": ["dist", "coverage", "CHANGELOG.md"] +} diff --git a/kind/.oxlintrc.json b/kind/.oxlintrc.json new file mode 100644 index 0000000..b1a1390 --- /dev/null +++ b/kind/.oxlintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["node_modules/@milaboratories/ts-builder/dist/configs/oxlint-node.json"] +} diff --git a/kind/package.json b/kind/package.json new file mode 100644 index 0000000..a8812dc --- /dev/null +++ b/kind/package.json @@ -0,0 +1,37 @@ +{ + "name": "@platforma-open/milaboratories.sort-seq-analysis.kind", + "version": "1.0.0", + "private": true, + "type": "module", + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "sources": "./src/index.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "default": "./dist/index.js" + } + }, + "scripts": { + "fmt": "ts-builder format", + "watch": "ts-builder build --target block-kind --watch", + "build": "ts-builder build --target block-kind && block-tools build-kind-manifest", + "check": "ts-builder check --target block-kind" + }, + "dependencies": { + "@platforma-sdk/block-kind": "catalog:", + "@platforma-sdk/model": "catalog:" + }, + "devDependencies": { + "@milaboratories/ts-builder": "catalog:", + "@milaboratories/ts-configs": "catalog:", + "@platforma-sdk/block-tools": "catalog:" + }, + "peerDependencies": { + "@types/node": "*", + "typescript": "*" + } +} diff --git a/kind/tsconfig.json b/kind/tsconfig.json new file mode 100644 index 0000000..5411207 --- /dev/null +++ b/kind/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@milaboratories/ts-configs/block/facade", + "compilerOptions": { + "outDir": "./dist", + "rootDir": ".", + "resolveJsonModule": true + }, + "include": ["src/**/*", "package.json"], + "exclude": ["dist", "node_modules"] +} diff --git a/model/package.json b/model/package.json index 0ebc514..e18166f 100644 --- a/model/package.json +++ b/model/package.json @@ -23,6 +23,7 @@ "dependencies": { "@milaboratories/graph-maker": "catalog:", "@milaboratories/helpers": "catalog:", + "@platforma-open/milaboratories.sort-seq-analysis.kind": "workspace:*", "@platforma-sdk/model": "catalog:" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31b03c3..fbe254e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,32 +16,35 @@ catalogs: specifier: 1.14.5 version: 1.14.5 '@milaboratories/ts-builder': - specifier: 1.6.2 - version: 1.6.2 + specifier: 1.7.2 + version: 1.7.2 '@milaboratories/ts-configs': specifier: 1.4.0 version: 1.4.0 '@platforma-open/milaboratories.runenv-python-3': specifier: 1.8.2 version: 1.8.2 + '@platforma-sdk/block-kind': + specifier: 1.1.0 + version: 1.1.0 '@platforma-sdk/block-tools': - specifier: 2.13.0 - version: 2.13.0 + specifier: 2.14.3 + version: 2.14.3 '@platforma-sdk/model': - specifier: 1.81.1 - version: 1.81.1 + specifier: 1.83.0 + version: 1.83.0 '@platforma-sdk/tengo-builder': - specifier: 4.0.22 - version: 4.0.22 + specifier: 4.0.23 + version: 4.0.23 '@platforma-sdk/test': - specifier: 1.81.3 - version: 1.81.3 + specifier: 1.83.2 + version: 1.83.2 '@platforma-sdk/ui-vue': - specifier: 1.81.1 - version: 1.81.1 + specifier: 1.83.3 + version: 1.83.3 '@platforma-sdk/workflow-tengo': - specifier: 6.8.2 - version: 6.8.2 + specifier: 6.8.3 + version: 6.8.3 shx: specifier: ~0.4.0 version: 0.4.0 @@ -74,10 +77,10 @@ importers: version: 2.29.8(@types/node@26.1.2) '@milaboratories/ts-builder': specifier: 'catalog:' - version: 1.6.2(@types/node@26.1.2)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0) + version: 1.7.2(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@types/node@26.1.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.10)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0) '@platforma-sdk/block-tools': specifier: 'catalog:' - version: 2.13.0(@types/node@26.1.2) + version: 2.14.3(@types/node@26.1.2) shx: specifier: 'catalog:' version: 0.4.0 @@ -89,10 +92,13 @@ importers: devDependencies: '@milaboratories/ts-builder': specifier: 'catalog:' - version: 1.6.2(@types/node@26.1.2)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@5.6.3))(yaml@2.9.0) + version: 1.7.2(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@types/node@26.1.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.10)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@5.6.3))(yaml@2.9.0) '@milaboratories/ts-configs': specifier: 'catalog:' version: 1.4.0 + '@platforma-open/milaboratories.sort-seq-analysis.kind': + specifier: workspace:* + version: link:../kind '@platforma-open/milaboratories.sort-seq-analysis.model': specifier: workspace:* version: link:../model @@ -104,10 +110,10 @@ importers: version: link:../workflow '@platforma-sdk/block-tools': specifier: 'catalog:' - version: 2.13.0(@types/node@26.1.2) + version: 2.14.3(@types/node@26.1.2) '@platforma-sdk/model': specifier: 'catalog:' - version: 1.81.1 + version: 1.83.0 shx: specifier: 'catalog:' version: 0.4.0 @@ -115,17 +121,45 @@ importers: specifier: 'catalog:' version: 5.6.3 + kind: + dependencies: + '@platforma-sdk/block-kind': + specifier: 'catalog:' + version: 1.1.0 + '@platforma-sdk/model': + specifier: 'catalog:' + version: 1.83.0 + '@types/node': + specifier: '*' + version: 26.1.2 + typescript: + specifier: '*' + version: 7.0.2 + devDependencies: + '@milaboratories/ts-builder': + specifier: 'catalog:' + version: 1.7.2(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@types/node@26.1.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.10)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0) + '@milaboratories/ts-configs': + specifier: 'catalog:' + version: 1.4.0 + '@platforma-sdk/block-tools': + specifier: 'catalog:' + version: 2.14.3(@types/node@26.1.2) + model: dependencies: '@milaboratories/graph-maker': specifier: 'catalog:' - version: 1.6.1(@milaboratories/pl-model-common@1.47.3)(@platforma-sdk/model@1.81.1)(@platforma-sdk/ui-vue@1.81.1(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2))(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(typescript@7.0.2) + version: 1.6.1(@milaboratories/pl-model-common@1.48.0)(@platforma-sdk/model@1.83.0)(@platforma-sdk/ui-vue@1.83.3(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2))(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(typescript@7.0.2) '@milaboratories/helpers': specifier: 'catalog:' version: 1.14.5 + '@platforma-open/milaboratories.sort-seq-analysis.kind': + specifier: workspace:* + version: link:../kind '@platforma-sdk/model': specifier: 'catalog:' - version: 1.81.1 + version: 1.83.0 '@types/node': specifier: '*' version: 26.1.2 @@ -135,13 +169,13 @@ importers: devDependencies: '@milaboratories/ts-builder': specifier: 'catalog:' - version: 1.6.2(@types/node@26.1.2)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0) + version: 1.7.2(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@types/node@26.1.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.10)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0) '@milaboratories/ts-configs': specifier: 'catalog:' version: 1.4.0 '@platforma-sdk/block-tools': specifier: 'catalog:' - version: 2.13.0(@types/node@26.1.2) + version: 2.14.3(@types/node@26.1.2) software: devDependencies: @@ -150,7 +184,7 @@ importers: version: 1.8.2 '@platforma-sdk/block-tools': specifier: 'catalog:' - version: 2.13.0(@types/node@26.1.2) + version: 2.14.3(@types/node@26.1.2) test: dependencies: @@ -160,13 +194,13 @@ importers: devDependencies: '@milaboratories/ts-builder': specifier: 'catalog:' - version: 1.6.2(@types/node@26.1.2)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0) + version: 1.7.2(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@types/node@26.1.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.10)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0) '@milaboratories/ts-configs': specifier: 'catalog:' version: 1.4.0 '@platforma-sdk/test': specifier: 'catalog:' - version: 1.81.3(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)(vite@7.3.6(@types/node@26.1.2)(lightningcss@1.33.0)(yaml@2.9.0)) + version: 1.83.2(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)(vite@7.3.6(@types/node@26.1.2)(lightningcss@1.33.0)(yaml@2.9.0)) vitest: specifier: 'catalog:' version: 4.0.18(@types/node@26.1.2)(lightningcss@1.33.0)(yaml@2.9.0) @@ -175,16 +209,16 @@ importers: dependencies: '@milaboratories/graph-maker': specifier: 'catalog:' - version: 1.6.1(@milaboratories/pl-model-common@1.47.3)(@platforma-sdk/model@1.81.1)(@platforma-sdk/ui-vue@1.81.1(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2))(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(typescript@7.0.2) + version: 1.6.1(@milaboratories/pl-model-common@1.48.0)(@platforma-sdk/model@1.83.0)(@platforma-sdk/ui-vue@1.83.3(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2))(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(typescript@7.0.2) '@platforma-open/milaboratories.sort-seq-analysis.model': specifier: workspace:* version: link:../model '@platforma-sdk/model': specifier: 'catalog:' - version: 1.81.1 + version: 1.83.0 '@platforma-sdk/ui-vue': specifier: 'catalog:' - version: 1.81.1(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2) + version: 1.83.3(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2) '@types/node': specifier: '*' version: 26.1.2 @@ -197,7 +231,7 @@ importers: devDependencies: '@milaboratories/ts-builder': specifier: 'catalog:' - version: 1.6.2(@types/node@26.1.2)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0) + version: 1.7.2(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@types/node@26.1.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.10)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0) '@milaboratories/ts-configs': specifier: 'catalog:' version: 1.4.0 @@ -209,14 +243,14 @@ importers: version: link:../software '@platforma-sdk/workflow-tengo': specifier: 'catalog:' - version: 6.8.2 + version: 6.8.3 devDependencies: '@platforma-sdk/tengo-builder': specifier: 'catalog:' - version: 4.0.22 + version: 4.0.23 '@platforma-sdk/test': specifier: 'catalog:' - version: 1.81.3(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) + version: 1.83.2(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) shx: specifier: 'catalog:' version: 0.4.0 @@ -461,10 +495,6 @@ packages: resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} engines: {node: '>=6.9.0'} - '@babel/generator@8.0.0': - resolution: {integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==} - engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-compilation-targets@7.29.7': resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} engines: {node: '>=6.9.0'} @@ -487,18 +517,10 @@ packages: resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@8.0.0': - resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} - engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-validator-identifier@7.29.7': resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@8.0.4': - resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==} - engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-validator-option@7.29.7': resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} @@ -512,11 +534,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@8.0.4': - resolution: {integrity: sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==} - engines: {node: ^22.18.0 || >=24.11.0} - hasBin: true - '@babel/runtime@7.29.7': resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} @@ -533,10 +550,6 @@ packages: resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} - '@babel/types@8.0.4': - resolution: {integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==} - engines: {node: ^22.18.0 || >=24.11.0} - '@bufbuild/protobuf@2.13.0': resolution: {integrity: sha512-acq7c49vxfm1ggJ95P70TX7ABDM0vxr1SYD3BB0o0jnBLB4OAqeHyKuN+cD3w80gXEDQ2zxHpR6CUeA+O/aU9g==} @@ -1027,8 +1040,8 @@ packages: '@microsoft/tsdoc@0.16.0': resolution: {integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==} - '@milaboratories/columns-collection-driver@0.2.3': - resolution: {integrity: sha512-3rNWmuQGvEaBEzGMHIWeOi1p8j8sMDpnPKNUQvT0Ji7/ArvnfM5HK8dywxB+n3mLK8c11lW16+auM5xuydJXGw==} + '@milaboratories/columns-collection-driver@0.2.4': + resolution: {integrity: sha512-abbgAzME71ARvgnGQHte+dPMgt2JGBJN4YpGLVxiYr7GToHwypsEi3PY/dAqriQWRtpKR82EpIAMxXVq0d7XMw==} '@milaboratories/computable@2.9.8': resolution: {integrity: sha512-X0ZtxOnIJlAd9Y7CyBtWSKHgVuTKXbIryMwJaoYSEz0gY3JZVnsD0f59J/lwe3Key0/lSYh3EbL/pP5jACIzfQ==} @@ -1051,8 +1064,8 @@ packages: '@milaboratories/miplots4@1.4.0': resolution: {integrity: sha512-Fsopmq+q3nkYyCNRJbmLpyDBU7rXJqMoAaNA3hnfeCa3RquGA6uOOl/ONKmqCJ35j+s+L7ch7a3Vt4IG2qeLtg==} - '@milaboratories/pf-driver@1.9.0': - resolution: {integrity: sha512-OhMsf1jNMp31wRCrXHMU75WQj48Nc/lDeYTo4/6R6+FLYBYkK9yWgsSH+02V4WCKbUqsyF1Xy0+O+qsYjpqUDA==} + '@milaboratories/pf-driver@1.9.1': + resolution: {integrity: sha512-i4qt1kcOcvOAHGlA7tCHce1QpsvmrCDu2vvmZz/kfHPma7YyDU7PSSr6hhuV+rf7HZTJz7z193c7wCXTFTLrzQ==} engines: {node: '>=22.19.0'} '@milaboratories/pf-plots@1.5.0': @@ -1061,11 +1074,11 @@ packages: '@milaboratories/pl-model-common': 1.46.4 '@platforma-sdk/model': 1.79.27 - '@milaboratories/pf-spec-driver@1.5.0': - resolution: {integrity: sha512-XWXrKCyCwcqS8EcukuyDqvMq0D6qt61zrkb3qGpWKyy0SVQNzXC2JL0ThCM2uGI7QQelgV0aagcg8xU5pGKWPw==} + '@milaboratories/pf-spec-driver@1.5.1': + resolution: {integrity: sha512-K7BuQCUXqpUOAwgJ1aIO8SSQbE8RSEVb8J5e6vIpI6PqV7Uc8LHFswTguOSgSuacpMgQmEP9jmIKyafJdJ7PDw==} - '@milaboratories/pf-spec@1.0.0': - resolution: {integrity: sha512-JIOhJdDHcKDItjlxOT4wVmnjejoazM69qK5ylu+g5q65RIcH/R5MF2OGiu9nV7QbLEXszll+EVnvx6jYhuE44w==} + '@milaboratories/pf-spec@1.0.1': + resolution: {integrity: sha512-UbLycglulwrFgil6n1By17YGOVHzZXeb+tAVUej6ZFOmpRtAMQYVLOXAX4FN2tc98eDTJ+YrYdZCa7qWi1gBxw==} peerDependencies: '@bytecodealliance/preview2-shim': ^0.20.1 @@ -1079,26 +1092,26 @@ packages: '@milaboratories/pframes-rs-wasip2@1.1.56': resolution: {integrity: sha512-54bhC6XCAVO09J/sqVwEKA4hhTa27BDDNdH8BE+6+LvjBVkg/qq2/f0MzdrVijrmagbr97F1zgj5wIgUqwCSoA==} - '@milaboratories/pl-client@3.14.6': - resolution: {integrity: sha512-IPzh5bSibr02DMKpwlCW6TuHVxaDe2o6tjaEJ4P2y5lshRbe5SBR/ne/G/N7E7KEKxmpWq7ZapOCLkLyvqFFDw==} + '@milaboratories/pl-client@3.14.7': + resolution: {integrity: sha512-HIjPfGAYRRD0hbq5YSTkWt5XgBiv+yYtw73EjWLxui8eUEeB2ffdgsvH7IhVx2oXjUOL4p7M4i8PBnmdJ3830w==} engines: {node: '>=22.19.0'} '@milaboratories/pl-config@1.8.5': resolution: {integrity: sha512-XnfYXSSkRxeImQ21k6I8y5apisvagcSgMGfEeyRxNdSGwUVJbbI8TwJk+XBEDQ4lErW8oqtLxKjFQuHJMzRUoQ==} - '@milaboratories/pl-deployments@3.0.15': - resolution: {integrity: sha512-+i3bdvfPCXLZ789f5fRdtrbil3/RFyzSBNMkULcnyKY5u6GRZLjWDBC5aSE75PRTWx3Fxf743Fj9L3B6loMSWw==} + '@milaboratories/pl-deployments@3.0.16': + resolution: {integrity: sha512-nFAIY4rxAssVqicSzgSNVQB/ZOjHjh4uhvde8aWFqQcMZCQDhHSaVJezzxRdotS8JiY5kI4r/Y0cN+Ey1MDDog==} engines: {node: '>=22.19.0'} - '@milaboratories/pl-drivers@1.16.15': - resolution: {integrity: sha512-mVKIEHVOeAPdwSZZk+URAFD6zoyPiAARinpDfihDvkFcrlTLIzeoOvnQNPG5a8jqc0GiW+a9mnTrfjG7+n82Ww==} + '@milaboratories/pl-drivers@1.16.17': + resolution: {integrity: sha512-Wy2SLso+2gj3nb1qWj76/V+F2gPzdZ/IlOxEYKGyGVUyD2dyvenVBEqKw/dM1g+YjhBhFGVetimyCEISB3/QfA==} engines: {node: '>=22'} '@milaboratories/pl-error-like@1.12.10': resolution: {integrity: sha512-iHmnLG5lxJqcymUmEL8onCDGEADk1S/5RNACQ5yfTCNcCkUc+7hYrDHQpFmWXPPGC9sG+NTBxt4wr5m8UsLm2g==} - '@milaboratories/pl-errors@1.4.35': - resolution: {integrity: sha512-rq5Lg9G7ax+LtMPdrkZg+Pdqk28JViiS/KIcQfk0Cg1ttZoAnhDhFIh6rAFy2eGybPtlzXqM32/ODKUSMawc8Q==} + '@milaboratories/pl-errors@1.4.36': + resolution: {integrity: sha512-WzKECX8Te6uP2DT7z2yTN6RrkiAWowYeU1rmB1Uc6sQBBWC6OjiqjiyOjvFeqxi73oXODARhLaLnqJcpG1onNA==} '@milaboratories/pl-healthcheck@1.0.5': resolution: {integrity: sha512-ZkQti4VU2FapJBFRtZGfR5NDPXEAEFgTf/NfemypgY0aA75fFPi4/c3BpXX5K7dht+JOgHqkMrBHxKIuE2T+fA==} @@ -1107,31 +1120,31 @@ packages: '@milaboratories/pl-http@1.2.4': resolution: {integrity: sha512-QKmhx+WEvJCV9dUy/SBdQk/ApaJ5ewBFgm/b+XPlS10SusAdqUUTGvK5+hq8YSuUMXlHb/dk++UtI5YlDuDl2Q==} - '@milaboratories/pl-middle-layer@1.66.19': - resolution: {integrity: sha512-rFBmJDdBcIrdDHz730p3sL8+7uUs7VimXYGQo9IbayxmAlp5mnft1XlPUTuVbwx5QeRNGv4Cwya1T+7WL1wSmw==} + '@milaboratories/pl-middle-layer@1.68.0': + resolution: {integrity: sha512-adedq3Wvi9tOc6ugZZ2DhKj9rU+qXZWY91JMXi6nrTi03iJUqiduwFY5+v0AZEu6dkbHgQXwTnSKNesSm3RbJw==} engines: {node: '>=22.19.0'} - '@milaboratories/pl-model-backend@1.4.20': - resolution: {integrity: sha512-AkV+PhmQms6WPwR3E75THrkD9fFE7OpfsIUC297HvnFUoCFXR6GOMGPworA/qipXReTmv192AqBpuaLdgAngyg==} + '@milaboratories/pl-model-backend@1.4.21': + resolution: {integrity: sha512-Z2z5J8bglslgXXoi1aySi1ho+/d+ylJiuEaRw9XTNuE5iBM3EQPe0rw095pXGOinTlMpmvUcCI2wkVCraUQ1dA==} '@milaboratories/pl-model-common@1.46.2': resolution: {integrity: sha512-VEeauisApYScvCS8lnK3zpFJ520xuTAodKJmjR8ulHcMrWMyWMfHEdGb7j5OMD0mM/OwTgmQrrJ5eB7Xd+xoOQ==} - '@milaboratories/pl-model-common@1.47.3': - resolution: {integrity: sha512-tXmKujm+6ru/Fh9hr9H3iRBWbS+JE0Q7FNualtzJpijaB3SNtScR4erLTamdANv5RYNn7kbYpDWr6wAjAOajrg==} + '@milaboratories/pl-model-common@1.48.0': + resolution: {integrity: sha512-oCVrjFNmjQolb7YWnbSGHnp6GGVm1PhG1lnNABp9lqYjvA2ISjIPQLIo/vT2ca0mqwLrEvbuRqiqSFOg7sQ5tQ==} '@milaboratories/pl-model-middle-layer@1.30.7': resolution: {integrity: sha512-rs9x3Ron4ujR/UOdEgB8WUB1SvZ8ZAScT1Av/e4or+iiQ/CzhmK9nqtYamHVwKV+JgwIFbXQwxGvIHDVz955dQ==} - '@milaboratories/pl-model-middle-layer@1.31.0': - resolution: {integrity: sha512-D1vyGABBtCYyp2IhKd9eMoZtKUj1wUYpIzz4Xz5k+bfJWGEF8GmZGiOvO4oOvrsEsXlG4NyO249MnBKmHFcppQ==} + '@milaboratories/pl-model-middle-layer@1.32.0': + resolution: {integrity: sha512-X1iLGgOwzkw8mQ/GfTxfOTJakBJ26np85h5HqUziMbVkFL0SR7wpd7xpgUs6TKVkYNM8viAv3iA2k63Yc5SahQ==} - '@milaboratories/pl-tree@1.13.6': - resolution: {integrity: sha512-R3wnMjbCNfAsyGJe3FQOqEyrNePd9ZCwkjDj2ps7d9oeiJ7QX6hYkIVuMlq8IQNYOJybfHc/dFEvWeYE3uAAZg==} + '@milaboratories/pl-tree@1.14.0': + resolution: {integrity: sha512-MAuqKi/d6yZbT+SOqPgOIXgA4CEtwZn0/ft5KMx+efGQ0SAfRzdqV4FG0YmnwJzznllHgamWifa0nPbsOwK76A==} engines: {node: '>=22.19.0'} - '@milaboratories/ptabler-expression-js@1.2.37': - resolution: {integrity: sha512-urVRk4b5Jse555euNNITlOJ437McZVtBnC5h/E6O+iHm+hfNIi6OP1aAD5ai4jOpHllm85zW5Ne7hVyyd71bJw==} + '@milaboratories/ptabler-expression-js@1.2.38': + resolution: {integrity: sha512-z14oa/V3nkBGHxnygpfxUBU7EfHQKHh1KZgK47ouqIw7CvuOmqjViRdynY4HZNjAh3n3AGHpBbEFs/J+hQMW3g==} '@milaboratories/resolve-helper@1.1.3': resolution: {integrity: sha512-38/dW/XRZQREOxAOOKtO0lzEWPCP/DH0qhB3q1kYcGoN++5V92/zbVwbYrMDeDcjTyo+D62iIep+sKXeWHa7Uw==} @@ -1144,8 +1157,8 @@ packages: os: [darwin, linux, win32] hasBin: true - '@milaboratories/ts-builder@1.6.2': - resolution: {integrity: sha512-6pS36U5EL2IBLIpoP0/5oSFA9jzjcJmYhgEODzt5kglovTzJuh15nEmJMeChr0OpFtGFjQT6o37qHerDGETIpA==} + '@milaboratories/ts-builder@1.7.2': + resolution: {integrity: sha512-cHDscAjCDA5SXYkgE14kkbbzqYQfm6ltH0kWFcL8ZlxDzxUWo5AL6uziNJDBgZ6ybb4kEa4I+FMYwvEwh6VEkw==} hasBin: true '@milaboratories/ts-configs@1.4.0': @@ -1155,8 +1168,8 @@ packages: resolution: {integrity: sha512-ef01tARUl+0Urt3x8HHAByrhYHg4Rnn7WiFyJ+joZFZl1T1pUKTgfB7Zxc8Cn06HIl4i6H7s5OSymjZePIGqfQ==} engines: {node: '>=22.19.0'} - '@milaboratories/uikit@2.15.23': - resolution: {integrity: sha512-FrZPJsa3jry4juVofR42IPCHv+oKPAcdBL+OidX0/S2lhIAsCIrEKBcAN3yzWd2yvyAPb3qzt0hbwpuTY0UVlw==} + '@milaboratories/uikit@2.15.27': + resolution: {integrity: sha512-cXZemE5RxLQuF9EjktG+TMjfFAk66DGTS7VSxC6M+qV0z4+09tmlRm74y5iJTK0b1GNNwSRXoCPOxIwd3dshxQ==} '@napi-rs/lzma-linux-x64-gnu@1.5.1': resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} @@ -1711,8 +1724,8 @@ packages: '@platforma-open/milaboratories.runenv-python-3@1.8.2': resolution: {integrity: sha512-gsb33geN7RXIKhcYXPn18aU3sInJNcGVEO5/vlM+JxySBVMr2ICr86ABY90oX0fc60RiuEgVI3ltiOgtCs9Kbg==} - '@platforma-open/milaboratories.software-ptabler.schema@1.15.21': - resolution: {integrity: sha512-3EWO64poe5VcBIgVIdIFHwN7nPi000kPuaRmlVt3xnnQZqXUYDFNZfZ2Mc9/mE1Eq3FLwQxcy/5mng7LvgWnXg==} + '@platforma-open/milaboratories.software-ptabler.schema@1.15.22': + resolution: {integrity: sha512-f9vT+iSfNelgAGjaNzn1GErhmxHbjG6HtskAMoaUEbrciCG8c8i8cSCJPLu0xKNBcjM1UW+T10uD89Ckq2vkxQ==} '@platforma-open/milaboratories.software-ptabler@2.1.8': resolution: {integrity: sha512-28dKwcKNIB/8OYH6l/li7Qa/aE2NgDVtNUmN8v6jZsLKT59ogFclz8ZrQ+OiQFzHQCLBlWBt5TdIHfHPxBaNFw==} @@ -1738,33 +1751,36 @@ packages: '@platforma-open/milaboratories.software-small-binaries@2.1.1': resolution: {integrity: sha512-KN1PR7YgUUfx1dxh/TtcoWpSZbOXbRxXzQuJ505qHuXuE0spYwC7bXnvJsEYbEwRcPMa0foTrjBnPNORE4yr+Q==} - '@platforma-sdk/block-tools@2.13.0': - resolution: {integrity: sha512-xKiTmNLjfxCnnHRr9Q4ct3HdjLfkbLztvxpU++/pek0R8Bj/Lezeoji+eLpxAAYYUxjMr8jLj935eLK5MqKrSg==} + '@platforma-sdk/block-kind@1.1.0': + resolution: {integrity: sha512-4uh+40o6BGfQcPPhkYGCjng8EXR9qn+6i5Fuc3RJ5QGfPYfcwbxT35G2V7ALUxmsqjLZ5SGL+JcW6Lm2v0cZHA==} + + '@platforma-sdk/block-tools@2.14.3': + resolution: {integrity: sha512-CD0NPfUoXiJhl6JArC057oCXbqKkJf5HJsmrlZShnh6lKRaIQlibF8VUqbpBi9+PopsGCQ4/s5HnLR7wQoWDzg==} hasBin: true '@platforma-sdk/blocks-deps-updater@2.2.0': resolution: {integrity: sha512-p9lBxhFXM9WoRsrJO7dfkiXSK+1m63yIn1sKhBO71eMbhrLMyVYHEOeNf3w5OCdbRF5QsNhXzWuiTmFK3zHFsA==} hasBin: true - '@platforma-sdk/model@1.81.1': - resolution: {integrity: sha512-pyCcCzMu+L0ELnNQkpmYMNw+A70WWCXng29WxOVllMTvFvr6/BaH4OUOA2q8ocseUlKm6qFQiRxmZTe53AcvlQ==} + '@platforma-sdk/model@1.83.0': + resolution: {integrity: sha512-uBg8vJ1BnSUKqgQMz2ADXOm/tyaYlF218p+ILqh16y3HXRH+pqQqpwP0iHp9P6tf8vThIOC2TW+5mREGCaTmBw==} '@platforma-sdk/package-builder-lib@1.3.0': resolution: {integrity: sha512-CdBjmNo6E1fBxKYWaXa49L/L2WLURxs2f1TAqxLIZlHRE4DZ6E1TEj3jNNKESWp+/9rwtLkTAzmTzNPrDgz+2Q==} - '@platforma-sdk/tengo-builder@4.0.22': - resolution: {integrity: sha512-8+zDYDFFI2tQS7dplTcxgQdUwzt8+IO++sJiVbwBgwSg1Giyc2qMThEYPLK3QNFArgCsIDR6wQuS8t66pJsRPQ==} + '@platforma-sdk/tengo-builder@4.0.23': + resolution: {integrity: sha512-Qkxpg3wuZQOc6KbEL3pifOCdqOH91TaL3jDluVIm5mz3qpx96KO+To8AT/0nLqmvaF7yv8AP22QiyyqduAhGiw==} engines: {node: '>=22'} hasBin: true - '@platforma-sdk/test@1.81.3': - resolution: {integrity: sha512-LSDJoQqpxX2G8W7ZshnYWroqNQiFoxXQlka4pEJTnPEO8YISW3lWknBhqsxMp2GyepQNoyl2WO1bfiQz+ssT5A==} + '@platforma-sdk/test@1.83.2': + resolution: {integrity: sha512-tdNihBcIQX7UoOP8Cbswf68oQkc6p2rHvgTQqwT7si62CpTRoCQsXnuRFlPgx0J+DI9zB1N6VrLIQLISSQXx/g==} - '@platforma-sdk/ui-vue@1.81.1': - resolution: {integrity: sha512-xFnehLOXDHYwDFrdtiU/NBjV0l6pEVLkthfnBjR+g2pSrHJGEL9JDrY3DdzoNUSxU4fal+Ak5aoAJR5v8mOeLg==} + '@platforma-sdk/ui-vue@1.83.3': + resolution: {integrity: sha512-bRhh2Qg6cvt4VLJDDLMvbCwZpcqIE0717H/zUODAbTnLZpGeKHYN/PZbItTyhD+UCu39rWsE6dXfU/NBVSupYg==} - '@platforma-sdk/workflow-tengo@6.8.2': - resolution: {integrity: sha512-AHR/Y+vbyfda17A7xY2uH9TlXiBpM8242tTO6+lj8phA4/KS6mez4GLu4ZEaASlZpX6YkQsUs5LUxYQU7pXeiQ==} + '@platforma-sdk/workflow-tengo@6.8.3': + resolution: {integrity: sha512-KImCzq7v/2qgH/PIBCTipV0B/ulLxDnDOpWOO+zs56+p/B2Dg25ZevlA2LzOFVk9SWx6ilXp4ilWx3K2HbccqQ==} '@protobuf-ts/grpc-transport@2.11.1': resolution: {integrity: sha512-l6wrcFffY+tuNnuyrNCkRM8hDIsAZVLA8Mn7PKdVyYxITosYh60qW663p9kL6TWXYuDCL3oxH8ih3vLKTDyhtg==} @@ -3950,9 +3966,6 @@ packages: '@types/glob@7.2.0': resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/jsesc@2.5.1': - resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} - '@types/minimatch@6.0.0': resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. @@ -4101,6 +4114,10 @@ packages: cpu: [x64] os: [win32] + '@typescript/typescript6@6.0.2': + resolution: {integrity: sha512-mbCddXd+jm7hfx7w2YU64/Av4/NqqeG3GoRZgxPcgoTxYjhrcfJRw9ULch71SS4G+Q3bOXFhRvPqjguN0Hyp5w==} + hasBin: true + '@typescript/vfs@1.6.4': resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} peerDependencies: @@ -4203,19 +4220,8 @@ packages: '@vue/compiler-ssr@3.5.24': resolution: {integrity: sha512-trOvMWNBMQ/odMRHW7Ae1CdfYx+7MuiQu62Jtu36gMLXcaoqKvAyh+P73sYG9ll+6jLB6QPovqoKGGZROzkFFg==} - '@vue/compiler-vue2@2.7.16': - resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - - '@vue/language-core@2.2.0': - resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@vue/language-core@3.3.5': - resolution: {integrity: sha512-UkKu5nhX89fg4VhlG/FOeI10G3cj/7radKT/cy9BT4Q9qJmJlSTAc/dP63Xqs29aypN4f39xUV6PsLNk/dcD6g==} + '@vue/language-core@3.3.10': + resolution: {integrity: sha512-CR7ByBbgPHqhxrioKPOcZBqttaozzLNwtkCzXQ+uF8gLPHnUe03srPnGpdtHD3zp+bq5iyVkZ1WNx7W564RPwg==} '@vue/reactivity@3.5.24': resolution: {integrity: sha512-BM8kBhtlkkbnyl4q+HiF5R5BL0ycDPfihowulm02q3WYp2vxgPcJuZO866qa/0u3idbMntKEtVNuAUp5bw4teg==} @@ -4302,6 +4308,129 @@ packages: peerDependencies: vue: ^3.5.0 + '@yuku-codegen/binding-android-arm64@0.9.3': + resolution: {integrity: sha512-viote6xAyL5cKLquV2X2wRfopSckH+msDYbaI8Hh8JAaogYs8MJZVRUbSrbsY29TaPrIFZwNRwQ8+YSxs0dkGw==} + cpu: [arm64] + os: [android] + + '@yuku-codegen/binding-darwin-arm64@0.9.3': + resolution: {integrity: sha512-y2PGOLyxc724EJ+Et/5PxGfutQuV1Z2J9cxHo6W1I5CR3nk0i03J4yPrnw6rNJOfrtlISzcc7q0RrSyfPndpIg==} + cpu: [arm64] + os: [darwin] + + '@yuku-codegen/binding-darwin-x64@0.9.3': + resolution: {integrity: sha512-xZ9UpXUOLmsrKVUp7MRXxWU3drNiilRC42OLpjWEhnOehIGVF1bZgzHcqRYJxVyU53RMrkRMsaxplkGd6Qo/ow==} + cpu: [x64] + os: [darwin] + + '@yuku-codegen/binding-freebsd-x64@0.9.3': + resolution: {integrity: sha512-RGCYSZw3VonreVTpur9iOfnbMngR2/f7UOE7gwcDx5WoHjIhtmTK9EIq9qs78ARdMFAPzKp5OzHljl5QMaGJ7g==} + cpu: [x64] + os: [freebsd] + + '@yuku-codegen/binding-linux-arm-gnu@0.9.3': + resolution: {integrity: sha512-kjIJIw39GSPTF0hnq+jnM0tR+J5WlariAAWetxMtawNskITDT1ZigaK3YF5hMhDz2mAofaM1t+63qtx+7aXjeg==} + cpu: [arm] + os: [linux] + + '@yuku-codegen/binding-linux-arm-musl@0.9.3': + resolution: {integrity: sha512-TVHeVdzaS4ub86URrQufiy4t01ZtdyKDZ5sTPqWFKAUbQJ7rQ0o5vIT+/jCeHQbP+Yf9p5peRdmPbcZewoDNiA==} + cpu: [arm] + os: [linux] + + '@yuku-codegen/binding-linux-arm64-gnu@0.9.3': + resolution: {integrity: sha512-9aQeeLh1qaCa2GcyzHnwLKGfFrsI+KOyhnh4+fICSq5kyhzCWQfXVCCK4RTEZPLcyuVwfN5Id0JEYavRN4oNTQ==} + cpu: [arm64] + os: [linux] + + '@yuku-codegen/binding-linux-arm64-musl@0.9.3': + resolution: {integrity: sha512-TLXA5Hd1nr8VSP2MtxcFddsBIHj+DPpyG5eberEGMATndgG7STlKQmle51MV0MZ8UgsdYM6CybIVpzlCPQwP9w==} + cpu: [arm64] + os: [linux] + + '@yuku-codegen/binding-linux-x64-gnu@0.9.3': + resolution: {integrity: sha512-tk0BFbF3Clb9k9biPH3qmr+Qwk24rRM26+HY91hYXmZlzlepZG0scQ6OffZFWtzwKE5JjlZpMdcWj1lTiHbEjA==} + cpu: [x64] + os: [linux] + + '@yuku-codegen/binding-linux-x64-musl@0.9.3': + resolution: {integrity: sha512-xo+pXshsCXruEEkDMbwHqkeTyC4XHb6A6oXr6x2YK3jOMcS5kZz0e26BmTCr40J0nY/K3ysmwG9R1xHygtiuwQ==} + cpu: [x64] + os: [linux] + + '@yuku-codegen/binding-win32-arm64@0.9.3': + resolution: {integrity: sha512-70gAQo6HZzMgIJTjeMZOEO2XaRj4GcNGP/n81R9tXQv0x8d4ZHnZDv+ygeWfHo+xchAUPwpnrVZA4p6RhJa3GQ==} + cpu: [arm64] + os: [win32] + + '@yuku-codegen/binding-win32-x64@0.9.3': + resolution: {integrity: sha512-7Hz3NGlq6qBBR8zMEk6GMZivofNjnYZpMXSoUwUgz9Ur2LaivuP23HQh0ern+T6HVkTJEvilw4VJrg1rX1Ugcg==} + cpu: [x64] + os: [win32] + + '@yuku-parser/binding-android-arm64@0.9.3': + resolution: {integrity: sha512-z3tDGTaUXD5Q4IuebFOY/QHxhR/SqujMhkMv9C5bh25upyFEXdafp0MsXQIIheWhVZzn5VMOniyxFni/7s9LgQ==} + cpu: [arm64] + os: [android] + + '@yuku-parser/binding-darwin-arm64@0.9.3': + resolution: {integrity: sha512-hzKvKSKS7z3ufnu1VkQYEoxmS6A5uNnkwukKnc2atxpWdq648nLVOqut4h1jUXjbM2WcoTfuZLF6AHAGFf8cmg==} + cpu: [arm64] + os: [darwin] + + '@yuku-parser/binding-darwin-x64@0.9.3': + resolution: {integrity: sha512-OM2PiVlPATvzlj/KGHNlu+t8FC3YzM5joVNjhsz/EaigQ8x2UUQ1Q0agQLiv5GZ2L8TSzrLUwBCZ7YOvP8q+tw==} + cpu: [x64] + os: [darwin] + + '@yuku-parser/binding-freebsd-x64@0.9.3': + resolution: {integrity: sha512-WMn9M4LHNVysGNwsAJ9gpRPqQIW2lcPrDNGcyk0agx3IYqCJq1MQugh6Be8Otc5U08eGdE39o8Kx9YWJmXz7GA==} + cpu: [x64] + os: [freebsd] + + '@yuku-parser/binding-linux-arm-gnu@0.9.3': + resolution: {integrity: sha512-vqKjwiyW1FWvbykYMEQIcAJwA17WxK3rxxqDuyCvQwcNVaLEUxI4BXiUdlF3kHucc7MnoFQhoRPkySgOzlLM+Q==} + cpu: [arm] + os: [linux] + + '@yuku-parser/binding-linux-arm-musl@0.9.3': + resolution: {integrity: sha512-qohilhYOT+zkt2gYzym4F1T6BzRdvPqS9/sFB03pmnVV8LrvjOXVsGwEBAa3CEvzJKhAZjdTmVz7zsVdjyHWLg==} + cpu: [arm] + os: [linux] + + '@yuku-parser/binding-linux-arm64-gnu@0.9.3': + resolution: {integrity: sha512-tvTIyUvTGkeee68i4JIo9o27As+Ug6LXOZvElGgFbTs6+KBdb5LGhvugaIQljdfIsm2XnIbOLG6OnQSXHMLB9w==} + cpu: [arm64] + os: [linux] + + '@yuku-parser/binding-linux-arm64-musl@0.9.3': + resolution: {integrity: sha512-OWZBHW1wuChBpFlrF+On1yiBcFPMRrj2g0VKsM/PCBGffu1OM0ORkS+vLS3Snu6wYwndM5Dd9Ctvux6eUlrQjA==} + cpu: [arm64] + os: [linux] + + '@yuku-parser/binding-linux-x64-gnu@0.9.3': + resolution: {integrity: sha512-/tbk1h0dlADOCngbiQO9V3SHwBIJkoGBq8BDEraSw2CC3nGxPEPTCCYUDp5738Ij2FxVwy1FWVuhFkHvpMrPbQ==} + cpu: [x64] + os: [linux] + + '@yuku-parser/binding-linux-x64-musl@0.9.3': + resolution: {integrity: sha512-u3+0sCso/mcjDvtc3866D2giV7l34PDyDVBkMesAWa3DWbIWPlybehi2SSnmScgArV22ctqSSgUzdBBVJ6zYAg==} + cpu: [x64] + os: [linux] + + '@yuku-parser/binding-win32-arm64@0.9.3': + resolution: {integrity: sha512-xnGEvdhyjRkXozHtpXVpEEkyGZWAxJ3RoILv7XRV5SvTEztaTCk5GQyfcOzI9An/EJtcL4ERCI8QmS0TpDPJiA==} + cpu: [arm64] + os: [win32] + + '@yuku-parser/binding-win32-x64@0.9.3': + resolution: {integrity: sha512-N5eShGcuwnrXEprePFmEjtng6acZmtnC4zgazK9xxkavcx1q1uX8Nz8lU5RS973EMlNr902cIc6Cd2D4tqZDBg==} + cpu: [x64] + os: [win32] + + '@yuku-toolchain/types@0.9.3': + resolution: {integrity: sha512-rFE+5P4g2wxko5C85MugJOlVjBHEQq87dIkhLkniLXLp63PEtgaFjD954i5HXlfnyzLxPcZHsSOVDVgmo1HToA==} + '@zip.js/zip.js@2.8.34': resolution: {integrity: sha512-+6a3lyqq69rpseLbvDPiVIWsZ/HdTGAAD6afFtug6ECPDGttb2dHnPC6cJgdPofYkzL9OvXizegq+DQVfL2rnA==} engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=18.0.0'} @@ -4378,9 +4507,6 @@ packages: ajv@8.20.0: resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} - alien-signals@0.4.14: - resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} - alien-signals@3.2.1: resolution: {integrity: sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==} @@ -4436,10 +4562,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - ast-kit@3.0.0: - resolution: {integrity: sha512-8OG92q3R35qjC/4i6BLBMg8IB+fClWu/1PEwg2Z9Rn+BuNaiEgJzpzn+pxWOdHJWDCAwu2JP0wCDTozAM4QirQ==} - engines: {node: ^22.18.0 || >=24.11.0} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -4521,9 +4643,6 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - birpc@4.0.0: - resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} - bl@1.2.3: resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} @@ -4817,9 +4936,6 @@ packages: resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} engines: {node: '>=12'} - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -5129,8 +5245,8 @@ packages: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} - get-tsconfig@5.0.0-beta.5: - resolution: {integrity: sha512-/6gFNr0N04nob252sTQxyFLi3eKFRqIg1I87YcqAMT1i6SQrSF6KujUEQrtrjMV0H/eejTCltLdDSTEMzHbnsQ==} + get-tsconfig@5.0.0-beta.6: + resolution: {integrity: sha512-X6fBC0pmImC70gvX2zm56go9hx0MyoGVdG0tUCkg/D+Xnh5TJsOZ7iDbOdI3PvmtrDxnu1YdDufpK2QJX1Meqw==} engines: {node: '>=20.20.0'} github-from-package@0.0.0: @@ -5183,10 +5299,6 @@ packages: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -5915,20 +6027,20 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rolldown-plugin-dts@0.26.0: - resolution: {integrity: sha512-e+kEPtUiDES0htk5iqkSeF4EzAV7R+vugGB44iPDuw1Kw9E+WyL1VG7PaV0IIjGHLiacztMBcMTyrr8ON9CT1Q==} - engines: {node: ^22.18.0 || >=24.11.0} + rolldown-plugin-dts@0.28.4: + resolution: {integrity: sha512-yNg16bsWNk1MQ0Pkf3bAPFoZRqSWtxhiTHxKKHCoTZIwwyWerA5pX1MOogb1mjjwusVN2/kd4pK08iQ8M8hFIw==} + engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} peerDependencies: - '@ts-macro/tsc': ^0.3.6 - '@typescript/native-preview': '>=7.0.0-dev.20260325.1' - rolldown: ^1.0.0 - typescript: ^5.0.0 || ^6.0.0 + '@typescript/native-preview': '*' + '@volar/typescript': ~2.4.0 + rolldown: ^1.2.0 + typescript: ^5.0.0 || ^6.0.0 || ~7.0.0 vue-tsc: ~3.2.0 || ~3.3.0 peerDependenciesMeta: - '@ts-macro/tsc': - optional: true '@typescript/native-preview': optional: true + '@volar/typescript': + optional: true typescript: optional: true vue-tsc: @@ -6263,6 +6375,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + typescript@7.0.2: resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} engines: {node: '>=16.20.0'} @@ -6296,6 +6413,40 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unplugin-dts@1.0.3: + resolution: {integrity: sha512-/GR887wfG4r1cWyt1UZsLRuMIjsmEbGkS9yJrz+0dsToHAYUD5CTyP3JMGVLv25j9K0mJcwAVvZno/aTuSUvNg==} + peerDependencies: + '@microsoft/api-extractor': '>=7' + '@rspack/core': ^1 + '@vue/language-core': ^3.1.5 + esbuild: '*' + rolldown: '*' + rollup: '>=3' + typescript: '>=4' + vite: '>=3' + webpack: ^4 || ^5 + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@rspack/core': + optional: true + '@vue/language-core': + optional: true + esbuild: + optional: true + rolldown: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + + unplugin@2.3.11: + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} + engines: {node: '>=18.12.0'} + upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} @@ -6321,12 +6472,17 @@ packages: vite-plugin-commonjs@0.10.4: resolution: {integrity: sha512-eWQuvQKCcx0QYB5e5xfxBNjQKyrjEWZIR9UOkOV6JAgxVhtbZvCOF+FNC2ZijBJ3U3Px04ZMMyyMyFBVWIJ5+g==} - vite-plugin-dts@4.5.4: - resolution: {integrity: sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==} + vite-plugin-dts@5.0.3: + resolution: {integrity: sha512-gIth6NdCEHWPiiRMCK3N6C8WjvdsrtEQrmsiG8h6Ov+lFP+b07Y+wcs9H0H7n146l0PDTYK4cQN1vgeG1pMdRQ==} peerDependencies: - typescript: '*' - vite: '*' + '@microsoft/api-extractor': '>=7' + rollup: '>=3' + vite: '>=3' peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + rollup: + optional: true vite: optional: true @@ -6507,8 +6663,8 @@ packages: vue-component-type-helpers@3.3.9: resolution: {integrity: sha512-3c/UfMe0SqyEfcGTyH7mfshHagJ9QTCbppCb0/uGpHZpFug7+If3GeGZN7I0YheKEExemx3xldQPoO7PQSOLQg==} - vue-tsc@3.3.5: - resolution: {integrity: sha512-Rzh/G2MmNlMSAMTiQEjDrsb4dgB/jbtEM47rVN2NtidF1dfb/q4w4QvpQBtW5+y3y5H27Hjh7deVwk+YB02fNg==} + vue-tsc@3.3.10: + resolution: {integrity: sha512-YaDVxcW+CGtaOt3pZahMG5jYPx0hsUTxyEoPOTSMebcGUXP9lIBabQ14vfKMORb2CqqK5CxsNo/d1d+4IQwiKg==} hasBin: true peerDependencies: typescript: '>=5.0.0' @@ -6524,6 +6680,9 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -6603,6 +6762,15 @@ packages: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} + yuku-ast@0.9.3: + resolution: {integrity: sha512-Kt0PXlPCXdKF1fWFTl7N3DaxsVk6DHF8VAXHJMkwPtJnWYgbx20pYgGSweuC/86mIM7k1NUITQ4JffgOLUWTCw==} + + yuku-codegen@0.9.3: + resolution: {integrity: sha512-7oTWwetHiMSyrVPFb8089lBBqkU1gaeQZyumNBJ0t5hocMQRaWhnMeSXTz7J1xm/rcw9+ePsajORdZbub2C35w==} + + yuku-parser@0.9.3: + resolution: {integrity: sha512-96wPoHnwaXfkZv7UIOUkDb+s7ZH8lv8Qtg+MxdvHUV1LFa5jV9iKOaams1942YQt+krFQrWiD6lSg2ermv5kHA==} + zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} @@ -7213,15 +7381,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/generator@8.0.0': - dependencies: - '@babel/parser': 8.0.4 - '@babel/types': 8.0.4 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - '@types/jsesc': 2.5.1 - jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.29.7': dependencies: '@babel/compat-data': 7.29.7 @@ -7250,12 +7409,8 @@ snapshots: '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-string-parser@8.0.0': {} - '@babel/helper-validator-identifier@7.29.7': {} - '@babel/helper-validator-identifier@8.0.4': {} - '@babel/helper-validator-option@7.29.7': {} '@babel/helpers@7.29.7': @@ -7267,10 +7422,6 @@ snapshots: dependencies: '@babel/types': 7.29.8 - '@babel/parser@8.0.4': - dependencies: - '@babel/types': 8.0.4 - '@babel/runtime@7.29.7': {} '@babel/template@7.29.7': @@ -7296,11 +7447,6 @@ snapshots: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/types@8.0.4': - dependencies: - '@babel/helper-string-parser': 8.0.0 - '@babel/helper-validator-identifier': 8.0.4 - '@bufbuild/protobuf@2.13.0': {} '@bufbuild/protoplugin@2.13.0': @@ -7832,6 +7978,7 @@ snapshots: '@rushstack/node-core-library': 5.23.3(@types/node@26.1.2) transitivePeerDependencies: - '@types/node' + optional: true '@microsoft/api-extractor@7.58.12(@types/node@26.1.2)': dependencies: @@ -7850,6 +7997,7 @@ snapshots: typescript: 5.9.3 transitivePeerDependencies: - '@types/node' + optional: true '@microsoft/tsdoc-config@0.18.1': dependencies: @@ -7857,13 +8005,15 @@ snapshots: ajv: 8.18.0 jju: 1.4.0 resolve: 1.22.12 + optional: true - '@microsoft/tsdoc@0.16.0': {} + '@microsoft/tsdoc@0.16.0': + optional: true - '@milaboratories/columns-collection-driver@0.2.3': + '@milaboratories/columns-collection-driver@0.2.4': dependencies: '@milaboratories/helpers': 1.14.5 - '@milaboratories/pl-model-common': 1.47.3 + '@milaboratories/pl-model-common': 1.48.0 '@milaboratories/computable@2.9.8': dependencies: @@ -7872,14 +8022,14 @@ snapshots: '@types/node': 24.5.2 utility-types: 3.11.0 - '@milaboratories/graph-maker@1.6.1(@milaboratories/pl-model-common@1.47.3)(@platforma-sdk/model@1.81.1)(@platforma-sdk/ui-vue@1.81.1(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2))(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(typescript@7.0.2)': + '@milaboratories/graph-maker@1.6.1(@milaboratories/pl-model-common@1.48.0)(@platforma-sdk/model@1.83.0)(@platforma-sdk/ui-vue@1.83.3(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2))(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0)(typescript@7.0.2)': dependencies: '@ag-grid-community/core': 32.3.9 '@milaboratories/helpers': 1.14.5 '@milaboratories/miplots4': 1.4.0(d3-dispatch@3.0.1)(d3-path@3.1.0)(d3-scale-chromatic@3.1.0) - '@milaboratories/pf-plots': 1.5.0(@milaboratories/pl-model-common@1.47.3)(@platforma-sdk/model@1.81.1) - '@platforma-sdk/model': 1.81.1 - '@platforma-sdk/ui-vue': 1.81.1(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2) + '@milaboratories/pf-plots': 1.5.0(@milaboratories/pl-model-common@1.48.0)(@platforma-sdk/model@1.83.0) + '@platforma-sdk/model': 1.83.0 + '@platforma-sdk/ui-vue': 1.83.3(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2) '@types/d3-hierarchy': 3.1.7 '@types/d3-scale': 4.0.9 '@vueuse/core': 13.9.0(vue@3.5.24(typescript@7.0.2)) @@ -7938,13 +8088,13 @@ snapshots: - d3-scale-chromatic - supports-color - '@milaboratories/pf-driver@1.9.0(@bytecodealliance/preview2-shim@0.17.9)': + '@milaboratories/pf-driver@1.9.1(@bytecodealliance/preview2-shim@0.17.9)': dependencies: '@milaboratories/helpers': 1.14.5 - '@milaboratories/pf-spec': 1.0.0(@bytecodealliance/preview2-shim@0.17.9) + '@milaboratories/pf-spec': 1.0.1(@bytecodealliance/preview2-shim@0.17.9) '@milaboratories/pframes-rs-node': 1.1.56 - '@milaboratories/pl-model-common': 1.47.3 - '@milaboratories/pl-model-middle-layer': 1.31.0 + '@milaboratories/pl-model-common': 1.48.0 + '@milaboratories/pl-model-middle-layer': 1.32.0 '@milaboratories/ts-helpers': 1.8.6 es-toolkit: 1.50.0 lru-cache: 11.5.2 @@ -7953,28 +8103,28 @@ snapshots: - encoding - supports-color - '@milaboratories/pf-plots@1.5.0(@milaboratories/pl-model-common@1.47.3)(@platforma-sdk/model@1.81.1)': + '@milaboratories/pf-plots@1.5.0(@milaboratories/pl-model-common@1.48.0)(@platforma-sdk/model@1.83.0)': dependencies: '@milaboratories/helpers': 1.14.5 - '@milaboratories/pl-model-common': 1.47.3 - '@platforma-sdk/model': 1.81.1 + '@milaboratories/pl-model-common': 1.48.0 + '@platforma-sdk/model': 1.83.0 canonicalize: 2.1.0 lodash: 4.18.1 - '@milaboratories/pf-spec-driver@1.5.0(@bytecodealliance/preview2-shim@0.17.9)': + '@milaboratories/pf-spec-driver@1.5.1(@bytecodealliance/preview2-shim@0.17.9)': dependencies: '@milaboratories/helpers': 1.14.5 - '@milaboratories/pf-spec': 1.0.0(@bytecodealliance/preview2-shim@0.17.9) - '@milaboratories/pl-model-common': 1.47.3 + '@milaboratories/pf-spec': 1.0.1(@bytecodealliance/preview2-shim@0.17.9) + '@milaboratories/pl-model-common': 1.48.0 '@noble/hashes': 2.3.0 transitivePeerDependencies: - '@bytecodealliance/preview2-shim' - '@milaboratories/pf-spec@1.0.0(@bytecodealliance/preview2-shim@0.17.9)': + '@milaboratories/pf-spec@1.0.1(@bytecodealliance/preview2-shim@0.17.9)': dependencies: '@bytecodealliance/preview2-shim': 0.17.9 - '@milaboratories/pl-model-common': 1.47.3 - '@milaboratories/pl-model-middle-layer': 1.31.0 + '@milaboratories/pl-model-common': 1.48.0 + '@milaboratories/pl-model-middle-layer': 1.32.0 '@milaboratories/pframes-rs-node@1.1.56': dependencies: @@ -7998,11 +8148,11 @@ snapshots: '@milaboratories/pframes-rs-wasip2@1.1.56': {} - '@milaboratories/pl-client@3.14.6': + '@milaboratories/pl-client@3.14.7': dependencies: '@grpc/grpc-js': 1.14.4 '@milaboratories/pl-http': 1.2.4 - '@milaboratories/pl-model-common': 1.47.3 + '@milaboratories/pl-model-common': 1.48.0 '@milaboratories/ts-helpers': 1.8.6 '@protobuf-ts/grpc-transport': 2.11.1(@grpc/grpc-js@1.14.4) '@protobuf-ts/runtime': 2.11.1 @@ -8022,12 +8172,12 @@ snapshots: upath: 2.0.1 yaml: 2.9.0 - '@milaboratories/pl-deployments@3.0.15': + '@milaboratories/pl-deployments@3.0.16': dependencies: '@milaboratories/pl-config': 1.8.5 '@milaboratories/pl-healthcheck': 1.0.5 '@milaboratories/pl-http': 1.2.4 - '@milaboratories/pl-model-common': 1.47.3 + '@milaboratories/pl-model-common': 1.48.0 '@milaboratories/ts-helpers': 1.8.6 decompress: 4.2.1 ssh2: 1.17.0 @@ -8037,14 +8187,14 @@ snapshots: yaml: 2.9.0 zod: 3.25.76 - '@milaboratories/pl-drivers@1.16.15': + '@milaboratories/pl-drivers@1.16.17': dependencies: '@grpc/grpc-js': 1.14.4 '@milaboratories/computable': 2.9.8 '@milaboratories/helpers': 1.14.5 - '@milaboratories/pl-client': 3.14.6 - '@milaboratories/pl-model-common': 1.47.3 - '@milaboratories/pl-tree': 1.13.6 + '@milaboratories/pl-client': 3.14.7 + '@milaboratories/pl-model-common': 1.48.0 + '@milaboratories/pl-tree': 1.14.0 '@milaboratories/ts-helpers': 1.8.6 '@protobuf-ts/grpc-transport': 2.11.1(@grpc/grpc-js@1.14.4) '@protobuf-ts/plugin': 2.11.1 @@ -8068,9 +8218,9 @@ snapshots: json-stringify-safe: 5.0.1 zod: 3.25.76 - '@milaboratories/pl-errors@1.4.35': + '@milaboratories/pl-errors@1.4.36': dependencies: - '@milaboratories/pl-client': 3.14.6 + '@milaboratories/pl-client': 3.14.7 '@milaboratories/ts-helpers': 1.8.6 zod: 3.25.76 @@ -8086,28 +8236,28 @@ snapshots: dependencies: undici: 7.16.0 - '@milaboratories/pl-middle-layer@1.66.19(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)': + '@milaboratories/pl-middle-layer@1.68.0(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)': dependencies: - '@milaboratories/columns-collection-driver': 0.2.3 + '@milaboratories/columns-collection-driver': 0.2.4 '@milaboratories/computable': 2.9.8 '@milaboratories/helpers': 1.14.5 - '@milaboratories/pf-driver': 1.9.0(@bytecodealliance/preview2-shim@0.17.9) - '@milaboratories/pf-spec-driver': 1.5.0(@bytecodealliance/preview2-shim@0.17.9) + '@milaboratories/pf-driver': 1.9.1(@bytecodealliance/preview2-shim@0.17.9) + '@milaboratories/pf-spec-driver': 1.5.1(@bytecodealliance/preview2-shim@0.17.9) '@milaboratories/pframes-rs-node': 1.1.56 - '@milaboratories/pl-client': 3.14.6 - '@milaboratories/pl-deployments': 3.0.15 - '@milaboratories/pl-drivers': 1.16.15 - '@milaboratories/pl-errors': 1.4.35 + '@milaboratories/pl-client': 3.14.7 + '@milaboratories/pl-deployments': 3.0.16 + '@milaboratories/pl-drivers': 1.16.17 + '@milaboratories/pl-errors': 1.4.36 '@milaboratories/pl-http': 1.2.4 - '@milaboratories/pl-model-backend': 1.4.20 - '@milaboratories/pl-model-common': 1.47.3 - '@milaboratories/pl-model-middle-layer': 1.31.0 - '@milaboratories/pl-tree': 1.13.6 + '@milaboratories/pl-model-backend': 1.4.21 + '@milaboratories/pl-model-common': 1.48.0 + '@milaboratories/pl-model-middle-layer': 1.32.0 + '@milaboratories/pl-tree': 1.14.0 '@milaboratories/resolve-helper': 1.1.3 '@milaboratories/ts-helpers': 1.8.6 - '@platforma-sdk/block-tools': 2.13.0(@types/node@26.1.2) - '@platforma-sdk/model': 1.81.1 - '@platforma-sdk/workflow-tengo': 6.8.2 + '@platforma-sdk/block-tools': 2.14.3(@types/node@26.1.2) + '@platforma-sdk/model': 1.83.0 + '@platforma-sdk/workflow-tengo': 6.8.3 canonicalize: 2.1.0 denque: 2.1.0 es-toolkit: 1.50.0 @@ -8128,9 +8278,9 @@ snapshots: - react-native-b4a - supports-color - '@milaboratories/pl-model-backend@1.4.20': + '@milaboratories/pl-model-backend@1.4.21': dependencies: - '@milaboratories/pl-client': 3.14.6 + '@milaboratories/pl-client': 3.14.7 canonicalize: 2.1.0 zod: 3.25.76 @@ -8141,7 +8291,7 @@ snapshots: canonicalize: 2.1.0 zod: 3.25.76 - '@milaboratories/pl-model-common@1.47.3': + '@milaboratories/pl-model-common@1.48.0': dependencies: '@milaboratories/helpers': 1.14.5 '@milaboratories/pl-error-like': 1.12.10 @@ -8157,27 +8307,27 @@ snapshots: utility-types: 3.11.0 zod: 3.25.76 - '@milaboratories/pl-model-middle-layer@1.31.0': + '@milaboratories/pl-model-middle-layer@1.32.0': dependencies: '@milaboratories/helpers': 1.14.5 - '@milaboratories/pl-model-common': 1.47.3 + '@milaboratories/pl-model-common': 1.48.0 es-toolkit: 1.50.0 utility-types: 3.11.0 zod: 3.25.76 - '@milaboratories/pl-tree@1.13.6': + '@milaboratories/pl-tree@1.14.0': dependencies: '@milaboratories/computable': 2.9.8 - '@milaboratories/pl-client': 3.14.6 - '@milaboratories/pl-errors': 1.4.35 + '@milaboratories/pl-client': 3.14.7 + '@milaboratories/pl-errors': 1.4.36 '@milaboratories/ts-helpers': 1.8.6 denque: 2.1.0 utility-types: 3.11.0 zod: 3.25.76 - '@milaboratories/ptabler-expression-js@1.2.37': + '@milaboratories/ptabler-expression-js@1.2.38': dependencies: - '@platforma-open/milaboratories.software-ptabler.schema': 1.15.21 + '@platforma-open/milaboratories.software-ptabler.schema': 1.15.22 '@milaboratories/resolve-helper@1.1.3': {} @@ -8185,9 +8335,10 @@ snapshots: '@milaboratories/tengo-tester@1.6.4': {} - '@milaboratories/ts-builder@1.6.2(@types/node@26.1.2)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@5.6.3))(yaml@2.9.0)': + '@milaboratories/ts-builder@1.7.2(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@types/node@26.1.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.10)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@5.6.3))(yaml@2.9.0)': dependencies: '@milaboratories/ts-configs': 1.4.0 + '@typescript/typescript6': 6.0.2 '@vitejs/plugin-vue': 6.0.8(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0))(vue@3.5.24(typescript@5.6.3)) commander: 15.0.0 jsonc-parser: 3.3.1 @@ -8195,21 +8346,24 @@ snapshots: oxlint: 1.63.0 oxlint-plugin-eslint: 1.63.0 rolldown: 1.2.3 - rolldown-plugin-dts: 0.26.0(rolldown@1.2.3)(typescript@5.9.3)(vue-tsc@3.3.5(typescript@5.6.3)) + rolldown-plugin-dts: 0.28.4(@volar/typescript@2.4.28)(rolldown@1.2.3)(typescript@7.0.2)(vue-tsc@3.3.10(typescript@7.0.2)) rollup-plugin-copy: 3.5.0 rollup-plugin-sourcemaps2: 0.5.8(@types/node@26.1.2)(rollup@4.62.4) - typescript: 5.9.3 + typescript: 7.0.2 vite: 8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0) vite-plugin-commonjs: 0.10.4 - vite-plugin-dts: 4.5.4(@types/node@26.1.2)(rollup@4.62.4)(typescript@5.9.3)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) + vite-plugin-dts: 5.0.3(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@vue/language-core@3.3.10)(esbuild@0.28.1)(rolldown@1.2.3)(rollup@4.62.4)(typescript@7.0.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) vite-plugin-externalize-deps: 0.10.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) vite-plugin-lib-inject-css: 2.2.2(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) - vue-tsc: 3.3.5(typescript@5.9.3) + vue-tsc: 3.3.10(typescript@7.0.2) transitivePeerDependencies: - - '@ts-macro/tsc' + - '@microsoft/api-extractor' + - '@rspack/core' - '@types/node' - '@typescript/native-preview' - '@vitejs/devtools' + - '@volar/typescript' + - '@vue/language-core' - esbuild - jiti - less @@ -8224,11 +8378,13 @@ snapshots: - terser - tsx - vue + - webpack - yaml - '@milaboratories/ts-builder@1.6.2(@types/node@26.1.2)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0)': + '@milaboratories/ts-builder@1.7.2(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@types/node@26.1.2)(@volar/typescript@2.4.28)(@vue/language-core@3.3.10)(esbuild@0.28.1)(rollup@4.62.4)(vue@3.5.24(typescript@7.0.2))(yaml@2.9.0)': dependencies: '@milaboratories/ts-configs': 1.4.0 + '@typescript/typescript6': 6.0.2 '@vitejs/plugin-vue': 6.0.8(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0))(vue@3.5.24(typescript@7.0.2)) commander: 15.0.0 jsonc-parser: 3.3.1 @@ -8236,21 +8392,24 @@ snapshots: oxlint: 1.63.0 oxlint-plugin-eslint: 1.63.0 rolldown: 1.2.3 - rolldown-plugin-dts: 0.26.0(rolldown@1.2.3)(typescript@5.9.3)(vue-tsc@3.3.5(typescript@5.6.3)) + rolldown-plugin-dts: 0.28.4(@volar/typescript@2.4.28)(rolldown@1.2.3)(typescript@7.0.2)(vue-tsc@3.3.10(typescript@7.0.2)) rollup-plugin-copy: 3.5.0 rollup-plugin-sourcemaps2: 0.5.8(@types/node@26.1.2)(rollup@4.62.4) - typescript: 5.9.3 + typescript: 7.0.2 vite: 8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0) vite-plugin-commonjs: 0.10.4 - vite-plugin-dts: 4.5.4(@types/node@26.1.2)(rollup@4.62.4)(typescript@5.9.3)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) + vite-plugin-dts: 5.0.3(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@vue/language-core@3.3.10)(esbuild@0.28.1)(rolldown@1.2.3)(rollup@4.62.4)(typescript@7.0.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) vite-plugin-externalize-deps: 0.10.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) vite-plugin-lib-inject-css: 2.2.2(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) - vue-tsc: 3.3.5(typescript@5.9.3) + vue-tsc: 3.3.10(typescript@7.0.2) transitivePeerDependencies: - - '@ts-macro/tsc' + - '@microsoft/api-extractor' + - '@rspack/core' - '@types/node' - '@typescript/native-preview' - '@vitejs/devtools' + - '@volar/typescript' + - '@vue/language-core' - esbuild - jiti - less @@ -8265,6 +8424,7 @@ snapshots: - terser - tsx - vue + - webpack - yaml '@milaboratories/ts-configs@1.4.0': {} @@ -8275,10 +8435,10 @@ snapshots: canonicalize: 2.1.0 denque: 2.1.0 - '@milaboratories/uikit@2.15.23(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2)': + '@milaboratories/uikit@2.15.27(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2)': dependencies: '@milaboratories/helpers': 1.14.5 - '@platforma-sdk/model': 1.81.1 + '@platforma-sdk/model': 1.83.0 '@types/d3-array': 3.2.2 '@types/d3-axis': 3.0.6 '@types/d3-scale': 4.0.9 @@ -8683,9 +8843,9 @@ snapshots: '@platforma-open/milaboratories.runenv-python-3.12.10-sccoda': 1.3.5 '@platforma-open/milaboratories.runenv-python-3.12.10-scientific-slim': 1.1.0 - '@platforma-open/milaboratories.software-ptabler.schema@1.15.21': + '@platforma-open/milaboratories.software-ptabler.schema@1.15.22': dependencies: - '@milaboratories/pl-model-common': 1.47.3 + '@milaboratories/pl-model-common': 1.48.0 '@platforma-open/milaboratories.software-ptabler@2.1.8': {} @@ -8709,15 +8869,17 @@ snapshots: '@platforma-open/milaboratories.software-small-binaries.mnz-client': 1.6.5 '@platforma-open/milaboratories.software-small-binaries.table-converter': 1.3.5 - '@platforma-sdk/block-tools@2.13.0(@types/node@26.1.2)': + '@platforma-sdk/block-kind@1.1.0': {} + + '@platforma-sdk/block-tools@2.14.3(@types/node@26.1.2)': dependencies: '@aws-sdk/client-ecr-public': 3.859.0 '@aws-sdk/client-s3': 3.859.0 '@inquirer/prompts': 7.10.1(@types/node@26.1.2) '@milaboratories/pl-http': 1.2.4 - '@milaboratories/pl-model-backend': 1.4.20 - '@milaboratories/pl-model-common': 1.47.3 - '@milaboratories/pl-model-middle-layer': 1.31.0 + '@milaboratories/pl-model-backend': 1.4.21 + '@milaboratories/pl-model-common': 1.48.0 + '@milaboratories/pl-model-middle-layer': 1.32.0 '@milaboratories/resolve-helper': 1.1.3 '@milaboratories/ts-helpers': 1.8.6 '@platforma-sdk/blocks-deps-updater': 2.2.0 @@ -8741,13 +8903,13 @@ snapshots: dependencies: yaml: 2.9.0 - '@platforma-sdk/model@1.81.1': + '@platforma-sdk/model@1.83.0': dependencies: '@milaboratories/helpers': 1.14.5 '@milaboratories/pl-error-like': 1.12.10 - '@milaboratories/pl-model-common': 1.47.3 - '@milaboratories/pl-model-middle-layer': 1.31.0 - '@milaboratories/ptabler-expression-js': 1.2.37 + '@milaboratories/pl-model-common': 1.48.0 + '@milaboratories/pl-model-middle-layer': 1.32.0 + '@milaboratories/ptabler-expression-js': 1.2.38 canonicalize: 2.1.0 es-toolkit: 1.50.0 fast-json-patch: 3.1.1 @@ -8771,22 +8933,22 @@ snapshots: - bare-buffer - react-native-b4a - '@platforma-sdk/tengo-builder@4.0.22': + '@platforma-sdk/tengo-builder@4.0.23': dependencies: - '@milaboratories/pl-model-backend': 1.4.20 + '@milaboratories/pl-model-backend': 1.4.21 '@milaboratories/resolve-helper': 1.1.3 '@milaboratories/tengo-tester': 1.6.4 '@milaboratories/ts-helpers': 1.8.6 commander: 15.0.0 winston: 3.19.0 - '@platforma-sdk/test@1.81.3(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)(vite@7.3.6(@types/node@26.1.2)(lightningcss@1.33.0)(yaml@2.9.0))': + '@platforma-sdk/test@1.83.2(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)(vite@7.3.6(@types/node@26.1.2)(lightningcss@1.33.0)(yaml@2.9.0))': dependencies: '@milaboratories/computable': 2.9.8 - '@milaboratories/pl-client': 3.14.6 - '@milaboratories/pl-middle-layer': 1.66.19(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2) - '@milaboratories/pl-tree': 1.13.6 - '@platforma-sdk/model': 1.81.1 + '@milaboratories/pl-client': 3.14.7 + '@milaboratories/pl-middle-layer': 1.68.0(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2) + '@milaboratories/pl-tree': 1.14.0 + '@platforma-sdk/model': 1.83.0 '@vitest/coverage-istanbul': 4.1.10(vitest@4.0.18(@types/node@26.1.2)(lightningcss@1.33.0)(yaml@2.9.0)) vitest: 4.1.10(@types/node@26.1.2)(@vitest/coverage-istanbul@4.1.10)(vite@7.3.6(@types/node@26.1.2)(lightningcss@1.33.0)(yaml@2.9.0)) transitivePeerDependencies: @@ -8810,13 +8972,13 @@ snapshots: - supports-color - vite - '@platforma-sdk/test@1.81.3(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0))': + '@platforma-sdk/test@1.83.2(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0))': dependencies: '@milaboratories/computable': 2.9.8 - '@milaboratories/pl-client': 3.14.6 - '@milaboratories/pl-middle-layer': 1.66.19(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2) - '@milaboratories/pl-tree': 1.13.6 - '@platforma-sdk/model': 1.81.1 + '@milaboratories/pl-client': 3.14.7 + '@milaboratories/pl-middle-layer': 1.68.0(@bytecodealliance/preview2-shim@0.17.9)(@types/node@26.1.2) + '@milaboratories/pl-tree': 1.14.0 + '@platforma-sdk/model': 1.83.0 '@vitest/coverage-istanbul': 4.1.10(vitest@4.1.10) vitest: 4.1.10(@types/node@26.1.2)(@vitest/coverage-istanbul@4.1.10)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) transitivePeerDependencies: @@ -8840,13 +9002,13 @@ snapshots: - supports-color - vite - '@platforma-sdk/ui-vue@1.81.1(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2)': + '@platforma-sdk/ui-vue@1.83.3(@bytecodealliance/preview2-shim@0.17.9)(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2)': dependencies: - '@milaboratories/columns-collection-driver': 0.2.3 - '@milaboratories/pf-spec-driver': 1.5.0(@bytecodealliance/preview2-shim@0.17.9) - '@milaboratories/pl-model-common': 1.47.3 - '@milaboratories/uikit': 2.15.23(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2) - '@platforma-sdk/model': 1.81.1 + '@milaboratories/columns-collection-driver': 0.2.4 + '@milaboratories/pf-spec-driver': 1.5.1(@bytecodealliance/preview2-shim@0.17.9) + '@milaboratories/pl-model-common': 1.48.0 + '@milaboratories/uikit': 2.15.27(@vue/compiler-dom@3.5.41)(@vue/server-renderer@3.5.24(vue@3.5.24(typescript@7.0.2)))(typescript@7.0.2) + '@platforma-sdk/model': 1.83.0 '@types/d3-format': 3.0.4 '@types/node': 24.5.2 '@types/semver': 7.8.0 @@ -8879,7 +9041,7 @@ snapshots: - typescript - universal-cookie - '@platforma-sdk/workflow-tengo@6.8.2': + '@platforma-sdk/workflow-tengo@6.8.3': dependencies: '@milaboratories/pframes-rs-wasip2': 1.1.56 '@milaboratories/software-pframes-conv': 2.2.9 @@ -9071,15 +9233,18 @@ snapshots: semver: 7.7.4 optionalDependencies: '@types/node': 26.1.2 + optional: true '@rushstack/problem-matcher@0.2.1(@types/node@26.1.2)': optionalDependencies: '@types/node': 26.1.2 + optional: true '@rushstack/rig-package@0.7.3': dependencies: jju: 1.4.0 resolve: 1.22.12 + optional: true '@rushstack/terminal@0.24.2(@types/node@26.1.2)': dependencies: @@ -9088,6 +9253,7 @@ snapshots: supports-color: 8.1.1 optionalDependencies: '@types/node': 26.1.2 + optional: true '@rushstack/ts-command-line@5.3.12(@types/node@26.1.2)': dependencies: @@ -9097,6 +9263,7 @@ snapshots: string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' + optional: true '@smithy/abort-controller@4.3.3': dependencies: @@ -11747,7 +11914,8 @@ snapshots: '@turbo/windows-arm64@2.8.21': optional: true - '@types/argparse@1.0.38': {} + '@types/argparse@1.0.38': + optional: true '@types/chai@5.2.3': dependencies: @@ -11785,8 +11953,6 @@ snapshots: '@types/minimatch': 6.0.0 '@types/node': 26.1.2 - '@types/jsesc@2.5.1': {} - '@types/minimatch@6.0.0': dependencies: minimatch: 10.2.6 @@ -11871,6 +12037,10 @@ snapshots: '@typescript/typescript-win32-x64@7.0.2': optional: true + '@typescript/typescript6@6.0.2': + dependencies: + '@typescript/old': typescript@6.0.3 + '@typescript/vfs@1.6.4(typescript@5.4.5)': dependencies: debug: 4.4.3 @@ -12065,25 +12235,7 @@ snapshots: '@vue/compiler-dom': 3.5.24 '@vue/shared': 3.5.24 - '@vue/compiler-vue2@2.7.16': - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - - '@vue/language-core@2.2.0(typescript@5.9.3)': - dependencies: - '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.41 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.41 - alien-signals: 0.4.14 - minimatch: 9.0.9 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.9.3 - - '@vue/language-core@3.3.5': + '@vue/language-core@3.3.10': dependencies: '@volar/language-core': 2.4.28 '@vue/compiler-dom': 3.5.41 @@ -12155,6 +12307,80 @@ snapshots: dependencies: vue: 3.5.24(typescript@7.0.2) + '@yuku-codegen/binding-android-arm64@0.9.3': + optional: true + + '@yuku-codegen/binding-darwin-arm64@0.9.3': + optional: true + + '@yuku-codegen/binding-darwin-x64@0.9.3': + optional: true + + '@yuku-codegen/binding-freebsd-x64@0.9.3': + optional: true + + '@yuku-codegen/binding-linux-arm-gnu@0.9.3': + optional: true + + '@yuku-codegen/binding-linux-arm-musl@0.9.3': + optional: true + + '@yuku-codegen/binding-linux-arm64-gnu@0.9.3': + optional: true + + '@yuku-codegen/binding-linux-arm64-musl@0.9.3': + optional: true + + '@yuku-codegen/binding-linux-x64-gnu@0.9.3': + optional: true + + '@yuku-codegen/binding-linux-x64-musl@0.9.3': + optional: true + + '@yuku-codegen/binding-win32-arm64@0.9.3': + optional: true + + '@yuku-codegen/binding-win32-x64@0.9.3': + optional: true + + '@yuku-parser/binding-android-arm64@0.9.3': + optional: true + + '@yuku-parser/binding-darwin-arm64@0.9.3': + optional: true + + '@yuku-parser/binding-darwin-x64@0.9.3': + optional: true + + '@yuku-parser/binding-freebsd-x64@0.9.3': + optional: true + + '@yuku-parser/binding-linux-arm-gnu@0.9.3': + optional: true + + '@yuku-parser/binding-linux-arm-musl@0.9.3': + optional: true + + '@yuku-parser/binding-linux-arm64-gnu@0.9.3': + optional: true + + '@yuku-parser/binding-linux-arm64-musl@0.9.3': + optional: true + + '@yuku-parser/binding-linux-x64-gnu@0.9.3': + optional: true + + '@yuku-parser/binding-linux-x64-musl@0.9.3': + optional: true + + '@yuku-parser/binding-win32-arm64@0.9.3': + optional: true + + '@yuku-parser/binding-win32-x64@0.9.3': + optional: true + + '@yuku-toolchain/types@0.9.3': {} + '@zip.js/zip.js@2.8.34': {} abbrev@2.0.0: {} @@ -12213,10 +12439,12 @@ snapshots: ajv-draft-04@1.0.0(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 + optional: true ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 + optional: true ajv@8.18.0: dependencies: @@ -12224,6 +12452,7 @@ snapshots: fast-uri: 3.1.5 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + optional: true ajv@8.20.0: dependencies: @@ -12231,8 +12460,7 @@ snapshots: fast-uri: 3.1.5 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - - alien-signals@0.4.14: {} + optional: true alien-signals@3.2.1: {} @@ -12294,12 +12522,6 @@ snapshots: assertion-error@2.0.1: {} - ast-kit@3.0.0: - dependencies: - '@babel/parser': 8.0.4 - estree-walker: 3.0.3 - pathe: 2.0.3 - async@3.2.6: {} available-typed-arrays@1.0.7: @@ -12362,8 +12584,6 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - birpc@4.0.0: {} - bl@1.2.3: dependencies: readable-stream: 2.3.8 @@ -12642,8 +12862,6 @@ snapshots: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - de-indent@1.0.2: {} - debug@2.6.9: dependencies: ms: 2.0.0 @@ -12708,7 +12926,8 @@ snapshots: detect-libc@2.1.2: {} - diff@8.0.4: {} + diff@8.0.4: + optional: true dir-glob@3.0.1: dependencies: @@ -12833,7 +13052,8 @@ snapshots: extendable-error@0.1.7: {} - fast-deep-equal@3.1.3: {} + fast-deep-equal@3.1.3: + optional: true fast-fifo@1.3.2: {} @@ -12847,7 +13067,8 @@ snapshots: fast-json-patch@3.1.1: {} - fast-uri@3.1.5: {} + fast-uri@3.1.5: + optional: true fast-xml-parser@5.2.5: dependencies: @@ -12902,6 +13123,7 @@ snapshots: graceful-fs: 4.2.11 jsonfile: 6.2.1 universalify: 2.0.1 + optional: true fs-extra@7.0.1: dependencies: @@ -12953,7 +13175,7 @@ snapshots: dependencies: pump: 3.0.4 - get-tsconfig@5.0.0-beta.5: + get-tsconfig@5.0.0-beta.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -13021,8 +13243,6 @@ snapshots: dependencies: function-bind: 1.1.2 - he@1.2.0: {} - html-escaper@2.0.2: {} https-proxy-agent@7.0.6: @@ -13044,7 +13264,8 @@ snapshots: immer@11.1.4: {} - import-lazy@4.0.0: {} + import-lazy@4.0.0: + optional: true inflight@1.0.6: dependencies: @@ -13118,7 +13339,8 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jju@1.4.0: {} + jju@1.4.0: + optional: true js-beautify@1.15.4: dependencies: @@ -13143,7 +13365,8 @@ snapshots: jsesc@3.1.0: {} - json-schema-traverse@1.0.0: {} + json-schema-traverse@1.0.0: + optional: true json-stringify-safe@5.0.1: {} @@ -13160,6 +13383,7 @@ snapshots: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 + optional: true kdbush@4.1.0: {} @@ -13293,6 +13517,7 @@ snapshots: minimatch@10.2.3: dependencies: brace-expansion: 5.0.9 + optional: true minimatch@10.2.6: dependencies: @@ -13705,7 +13930,8 @@ snapshots: require-directory@2.1.1: {} - require-from-string@2.0.2: {} + require-from-string@2.0.2: + optional: true resize-observer-polyfill@1.5.1: {} @@ -13722,20 +13948,19 @@ snapshots: reusify@1.1.0: {} - rolldown-plugin-dts@0.26.0(rolldown@1.2.3)(typescript@5.9.3)(vue-tsc@3.3.5(typescript@5.6.3)): + rolldown-plugin-dts@0.28.4(@volar/typescript@2.4.28)(rolldown@1.2.3)(typescript@7.0.2)(vue-tsc@3.3.10(typescript@7.0.2)): dependencies: - '@babel/generator': 8.0.0 - '@babel/helper-validator-identifier': 8.0.4 - '@babel/parser': 8.0.4 - ast-kit: 3.0.0 - birpc: 4.0.0 dts-resolver: 3.0.0 - get-tsconfig: 5.0.0-beta.5 + get-tsconfig: 5.0.0-beta.6 obug: 2.1.4 rolldown: 1.2.3 + yuku-ast: 0.9.3 + yuku-codegen: 0.9.3 + yuku-parser: 0.9.3 optionalDependencies: - typescript: 5.9.3 - vue-tsc: 3.3.5(typescript@5.9.3) + '@volar/typescript': 2.4.28 + typescript: 7.0.2 + vue-tsc: 3.3.10(typescript@7.0.2) transitivePeerDependencies: - oxc-resolver @@ -13833,7 +14058,8 @@ snapshots: semver@6.3.1: {} - semver@7.7.4: {} + semver@7.7.4: + optional: true semver@7.8.5: {} @@ -13890,7 +14116,8 @@ snapshots: source-map-js@1.2.1: {} - source-map@0.6.1: {} + source-map@0.6.1: + optional: true spawndamnit@3.0.1: dependencies: @@ -13929,7 +14156,8 @@ snapshots: - bare-abort-controller - react-native-b4a - string-argv@0.3.2: {} + string-argv@0.3.2: + optional: true string-width@4.2.3: dependencies: @@ -13980,6 +14208,7 @@ snapshots: supports-color@8.1.1: dependencies: has-flag: 4.0.0 + optional: true supports-preserve-symlinks-flag@1.0.0: {} @@ -14120,7 +14349,10 @@ snapshots: typescript@5.6.3: {} - typescript@5.9.3: {} + typescript@5.9.3: + optional: true + + typescript@6.0.3: {} typescript@7.0.2: optionalDependencies: @@ -14162,7 +14394,36 @@ snapshots: universalify@0.1.2: {} - universalify@2.0.1: {} + universalify@2.0.1: + optional: true + + unplugin-dts@1.0.3(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@vue/language-core@3.3.10)(esbuild@0.28.1)(rolldown@1.2.3)(rollup@4.62.4)(typescript@7.0.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)): + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.62.4) + '@volar/typescript': 2.4.28 + compare-versions: 6.1.1 + debug: 4.4.3 + kolorist: 1.8.0 + local-pkg: 1.2.1 + magic-string: 0.30.21 + typescript: 7.0.2 + unplugin: 2.3.11 + optionalDependencies: + '@microsoft/api-extractor': 7.58.12(@types/node@26.1.2) + '@vue/language-core': 3.3.10 + esbuild: 0.28.1 + rolldown: 1.2.3 + rollup: 4.62.4 + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0) + transitivePeerDependencies: + - supports-color + + unplugin@2.3.11: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.18.0 + picomatch: 4.0.5 + webpack-virtual-modules: 0.6.2 upath@2.0.1: {} @@ -14184,24 +14445,21 @@ snapshots: magic-string: 0.30.21 vite-plugin-dynamic-import: 1.6.0 - vite-plugin-dts@4.5.4(@types/node@26.1.2)(rollup@4.62.4)(typescript@5.9.3)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)): + vite-plugin-dts@5.0.3(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@vue/language-core@3.3.10)(esbuild@0.28.1)(rolldown@1.2.3)(rollup@4.62.4)(typescript@7.0.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)): dependencies: - '@microsoft/api-extractor': 7.58.12(@types/node@26.1.2) - '@rollup/pluginutils': 5.4.0(rollup@4.62.4) - '@volar/typescript': 2.4.28 - '@vue/language-core': 2.2.0(typescript@5.9.3) - compare-versions: 6.1.1 - debug: 4.4.3 - kolorist: 1.8.0 - local-pkg: 1.2.1 - magic-string: 0.30.21 - typescript: 5.9.3 + unplugin-dts: 1.0.3(@microsoft/api-extractor@7.58.12(@types/node@26.1.2))(@vue/language-core@3.3.10)(esbuild@0.28.1)(rolldown@1.2.3)(rollup@4.62.4)(typescript@7.0.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0)) optionalDependencies: + '@microsoft/api-extractor': 7.58.12(@types/node@26.1.2) + rollup: 4.62.4 vite: 8.2.1(@types/node@26.1.2)(esbuild@0.28.1)(yaml@2.9.0) transitivePeerDependencies: - - '@types/node' - - rollup + - '@rspack/core' + - '@vue/language-core' + - esbuild + - rolldown - supports-color + - typescript + - webpack vite-plugin-dynamic-import@1.6.0: dependencies: @@ -14345,11 +14603,11 @@ snapshots: vue-component-type-helpers@3.3.9: {} - vue-tsc@3.3.5(typescript@5.9.3): + vue-tsc@3.3.10(typescript@7.0.2): dependencies: '@volar/typescript': 2.4.28 - '@vue/language-core': 3.3.5 - typescript: 5.9.3 + '@vue/language-core': 3.3.10 + typescript: 7.0.2 vue@3.5.24(typescript@5.6.3): dependencies: @@ -14373,6 +14631,8 @@ snapshots: webidl-conversions@3.0.1: {} + webpack-virtual-modules@0.6.2: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -14470,6 +14730,45 @@ snapshots: yoctocolors-cjs@2.1.3: {} + yuku-ast@0.9.3: + dependencies: + '@yuku-toolchain/types': 0.9.3 + + yuku-codegen@0.9.3: + dependencies: + '@yuku-toolchain/types': 0.9.3 + optionalDependencies: + '@yuku-codegen/binding-android-arm64': 0.9.3 + '@yuku-codegen/binding-darwin-arm64': 0.9.3 + '@yuku-codegen/binding-darwin-x64': 0.9.3 + '@yuku-codegen/binding-freebsd-x64': 0.9.3 + '@yuku-codegen/binding-linux-arm-gnu': 0.9.3 + '@yuku-codegen/binding-linux-arm-musl': 0.9.3 + '@yuku-codegen/binding-linux-arm64-gnu': 0.9.3 + '@yuku-codegen/binding-linux-arm64-musl': 0.9.3 + '@yuku-codegen/binding-linux-x64-gnu': 0.9.3 + '@yuku-codegen/binding-linux-x64-musl': 0.9.3 + '@yuku-codegen/binding-win32-arm64': 0.9.3 + '@yuku-codegen/binding-win32-x64': 0.9.3 + + yuku-parser@0.9.3: + dependencies: + '@yuku-toolchain/types': 0.9.3 + yuku-ast: 0.9.3 + optionalDependencies: + '@yuku-parser/binding-android-arm64': 0.9.3 + '@yuku-parser/binding-darwin-arm64': 0.9.3 + '@yuku-parser/binding-darwin-x64': 0.9.3 + '@yuku-parser/binding-freebsd-x64': 0.9.3 + '@yuku-parser/binding-linux-arm-gnu': 0.9.3 + '@yuku-parser/binding-linux-arm-musl': 0.9.3 + '@yuku-parser/binding-linux-arm64-gnu': 0.9.3 + '@yuku-parser/binding-linux-arm64-musl': 0.9.3 + '@yuku-parser/binding-linux-x64-gnu': 0.9.3 + '@yuku-parser/binding-linux-x64-musl': 0.9.3 + '@yuku-parser/binding-win32-arm64': 0.9.3 + '@yuku-parser/binding-win32-x64': 0.9.3 + zip-stream@6.0.1: dependencies: archiver-utils: 5.0.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 7c36655..9be0139 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,19 +1,20 @@ packages: - block + - kind - model - software - test - ui - workflow catalog: - "@platforma-sdk/model": 1.81.1 - "@platforma-sdk/ui-vue": 1.81.1 - "@platforma-sdk/workflow-tengo": 6.8.2 - "@platforma-sdk/test": 1.81.3 - "@platforma-sdk/block-tools": 2.13.0 - "@platforma-sdk/tengo-builder": 4.0.22 + "@platforma-sdk/model": 1.83.0 + "@platforma-sdk/ui-vue": 1.83.3 + "@platforma-sdk/workflow-tengo": 6.8.3 + "@platforma-sdk/test": 1.83.2 + "@platforma-sdk/block-tools": 2.14.3 + "@platforma-sdk/tengo-builder": 4.0.23 "@platforma-sdk/package-builder": 3.15.0 - "@milaboratories/ts-builder": 1.6.2 + "@milaboratories/ts-builder": 1.7.2 "@milaboratories/ts-configs": 1.4.0 # `structure init` (block-tools 2.12.11) writes `"typescript": "catalog:"` into # block/package.json but omits the catalog entry, so `pnpm install` fails with @@ -28,3 +29,4 @@ catalog: vue: 3.5.24 "@milaboratories/helpers": 1.14.5 "@milaboratories/graph-maker": 1.6.1 + "@platforma-sdk/block-kind": 1.1.0 diff --git a/test/package.json b/test/package.json index 9cc76e6..b6c1cd2 100644 --- a/test/package.json +++ b/test/package.json @@ -1,5 +1,6 @@ { "name": "@platforma-open/milaboratories.sort-seq-analysis.test", + "version": "1.0.0", "private": true, "type": "module", "scripts": { From c321945b6e26f0c3b29a79affd4a3a40d56513e7 Mon Sep 17 00:00:00 2001 From: Mariia Zueva Date: Mon, 31 Aug 2026 13:06:45 +0200 Subject: [PATCH 3/7] Declare the block kind and its init-params contract The contract is the metadata reading of a sort-seq run: the condition, gate and sort-fraction column refs, the gate ladder, and the three value snapshots the settings drawer writes when a column is picked. The column refs travel between projects because of what they point at. An anchored id encodes the column's own spec, and every samples-and-data metadata column is created with global: true, so its discriminating domain key is the column's label rather than a per-project generated id. Two projects whose metadata carries a column labelled the same way derive the same id. The value snapshots are in the contract for a less obvious reason. settingsIssues validates gateOrder against gateValues, so a template carrying a ladder with an empty snapshot arrives with Run disabled; and refilling the snapshot from the UI means re-picking the gate column, which overwrites gateOrder with every value of the column. Without the snapshots the act of making a templated block runnable destroys what the template carried. The dataset ref stays out (a PlRef names one project's result pool), as do the exclusions, the read floor and all view state. The parser checks a column ref with isAnchoredPColumnId, not isColumnUniversalId. The latter is the obvious choice and rejects every id this block stores: ColumnUniversalId does not include the anchored form, and SUniversalPColumnId is a deprecated alias of it. Verified against pl-model-common 1.48.0. --- kind/src/index.ts | 158 +++++++++++++++++++++++++++++++++++++++++ model/src/dataModel.ts | 36 +++++++--- model/src/index.ts | 21 +++++- 3 files changed, 205 insertions(+), 10 deletions(-) create mode 100644 kind/src/index.ts diff --git a/kind/src/index.ts b/kind/src/index.ts new file mode 100644 index 0000000..1d2cef0 --- /dev/null +++ b/kind/src/index.ts @@ -0,0 +1,158 @@ +import { assertParamsObject, defineBlockKind } from "@platforma-sdk/block-kind"; +import { + isAnchoredPColumnId, + isColumnUniversalKey, + type SUniversalPColumnId, +} from "@platforma-sdk/model"; +import { name, version } from "../package.json" with { type: "json" }; + +/** + * This block's init-params contract — what a creator, or a project template, supplies to seed a + * new instance. A subset of the model's `BlockData`. + * + * The subset is **the metadata reading of a sort-seq run**: which column says condition, which + * says gate, which says sort fraction, and what the gate ladder is. A lab that runs the same + * FACS ladder over library after library pins that once and then only picks the dataset. + * + * **The three column refs travel, and that is not obvious — it holds because of what they + * point at.** An `SUniversalPColumnId` is anchored: it is meaningless without the anchor map + * that `abundanceRef` supplies, and `abundanceRef` is deliberately not a param (a `PlRef` names + * an entry in one project's result pool and nothing in another). What the id *encodes* is the + * column's own spec, and for a `samples-and-data` metadata column that spec's discriminator is + * `pl7.app/columnId` set to the column's **label** — every path that creates one passes + * `global: true`, so the value is `"Condition"`, not a generated per-project id. Two projects + * whose metadata carries a column labelled the same way therefore derive the same anchored id, + * and the template resolves. Where the upstream differs, it resolves to nothing and the picker + * shows no selection — visible, not silently wrong. + * + * **The three value snapshots are params for a reason that is easy to miss.** `gateValues`, + * `conditionValues` and `gateColumnLabel` are snapshots the UI writes when a column is picked, + * and they look like derived state that a fresh block should rebuild. But the model's + * `settingsIssues` validates `gateOrder` against `gateValues`, so a template carrying a gate + * ladder and an empty snapshot arrives with Run disabled and two complaints; and the only way + * to refill the snapshot from the UI is to re-pick the gate column, which overwrites + * `gateOrder` with every value of the column. The templated ladder would be destroyed by the + * act of making the block runnable. Carrying the snapshots keeps the template usable on + * arrival. + * + * Left out, and why: + * + * - **`abundanceRef`** — a `PlRef` into one project's result pool. Nothing can carry one. + * - **`excludedConditions` and `readFloor`** — run recipe, and both would travel fine. They are + * out because the operator scoped the contract to the metadata reading; a run's exclusions + * and its floor are decisions taken against the data in front of you. + * - **View state** — `customBlockLabel`, `resultsTableState`, `distributionGraphStates`. Not + * configuration. + * + * Every field is optional. A block may be created with no template at all, so the model's + * `init` keeps its own default behind each one. + */ +export type BlockParams = { + conditionColumnRef?: SUniversalPColumnId; + gateColumnRef?: SUniversalPColumnId; + sortFractionColumnRef?: SUniversalPColumnId; + gateOrder?: string[]; + gateValues?: string[]; + gateColumnLabel?: string; + conditionValues?: string[]; +}; + +/** + * The same contract at runtime, for params arriving from a template file rather than from typed + * code — the only point that can catch a hand-written entry being wrong. + * + * Each field the contract names is read and checked; nothing else is. A key this function never + * reads is dropped rather than refused, so a misspelled key in a template file is not caught + * here — it surfaces later as a block that started on its defaults. That cost is accepted: a + * key-set check would mean this file keeping its own field names as strings, and nothing holds + * that list in step with the type above. + * + * The checks stop at the shape of a value. That `gateOrder` names only values `gateValues` + * carries, that a gate column is not also the condition column — those are refused by + * `settingsIssues` in the model, where the whole configuration is in view. A parser stricter + * than the settings drawer would make this block export a template its own kind then refuses to + * apply. + */ +function parseInitializationParams(value: unknown): BlockParams { + assertParamsObject(value); + + const { + conditionColumnRef, + gateColumnRef, + sortFractionColumnRef, + gateOrder, + gateValues, + gateColumnLabel, + conditionValues, + } = value; + + return { + conditionColumnRef: optionalColumnRef(conditionColumnRef, "conditionColumnRef"), + gateColumnRef: optionalColumnRef(gateColumnRef, "gateColumnRef"), + sortFractionColumnRef: optionalColumnRef(sortFractionColumnRef, "sortFractionColumnRef"), + gateOrder: optionalStringList(gateOrder, "gateOrder"), + gateValues: optionalStringList(gateValues, "gateValues"), + gateColumnLabel: optionalString(gateColumnLabel, "gateColumnLabel"), + conditionValues: optionalStringList(conditionValues, "conditionValues"), + }; +} + +/** + * A column ref is a canonically serialized id, not a free string, so this checks the string + * parses and that what comes out is a shape the SDK recognizes as a column id. + * + * **Not `isColumnUniversalId`, which is the obvious choice and the wrong one.** The block stores + * what `AnchoredIdDeriver.deriveS` returns — an *anchored* id, `{name, type, domain, axes}` with + * `{anchor, idx}` refs in the axes. `ColumnUniversalId` is a union of the PObject / filtered / + * discovered / overridden key forms and does not include the anchored one, so + * `isColumnUniversalId` returns `false` for every id this block actually holds. (The + * `SUniversalPColumnId` name is a deprecated alias of `ColumnUniversalId`, which is what makes + * the mistake look correct.) Verified against pl-model-common 1.48.0: an anchored id fails + * `isColumnUniversalId` and passes `isAnchoredPColumnId`. + * + * `isColumnUniversalKey` is kept alongside so a ref that arrives in one of the other forms is + * not refused for a reason that has nothing to do with the template being wrong. + * + * The cast is over a real check: both guards narrow the *parsed* value, and nothing in the SDK + * narrows the string that carried it. + */ +function optionalColumnRef(value: unknown, field: string): SUniversalPColumnId | undefined { + if (value === undefined) return undefined; + if (typeof value !== "string") throw new Error(`'${field}' must be a column id.`); + + let parsed: unknown; + try { + parsed = JSON.parse(value); + } catch { + throw new Error(`'${field}' must be a column id.`); + } + + if (!isAnchoredPColumnId(parsed) && !isColumnUniversalKey(parsed)) + throw new Error(`'${field}' must be a column id.`); + + return value as SUniversalPColumnId; +} + +function optionalString(value: unknown, field: string): string | undefined { + if (value === undefined) return undefined; + if (typeof value !== "string") throw new Error(`'${field}' must be a string.`); + return value; +} + +function optionalStringList(value: unknown, field: string): string[] | undefined { + if (value === undefined) return undefined; + if (!Array.isArray(value)) throw new Error(`'${field}' must be a list.`); + return value.map((entry, index) => { + if (typeof entry !== "string") throw new Error(`'${field}[${index}]' must be a string.`); + return entry; + }); +} + +// Identity (`name`/`version`) comes from this package's own `package.json`, so the on-wire +// `{name}@{version}` reference can never drift from what npm publishes; the bundler inlines the +// JSON import. +export const kind = defineBlockKind({ + name, + version, + parseInitializationParams, +}); diff --git a/model/src/dataModel.ts b/model/src/dataModel.ts index 1d56bd1..e3c3861 100644 --- a/model/src/dataModel.ts +++ b/model/src/dataModel.ts @@ -1,4 +1,5 @@ import type { GraphMakerState } from "@milaboratories/graph-maker"; +import { kind } from "@platforma-open/milaboratories.sort-seq-analysis.kind"; import { createPlDataTableStateV2, DataModelBuilder } from "@platforma-sdk/model"; import type { BlockData } from "./types"; @@ -24,12 +25,29 @@ export function defaultDistributionGraphState(title: string): GraphMakerState { * * Later shape changes add `.migrate("Ver_…", prev => …)` links rather than editing this. */ -export const blockDataModel = new DataModelBuilder().from("Ver_2026_08_07").init(() => ({ - gateOrder: [], - excludedConditions: [], - gateValues: [], - customBlockLabel: "", - conditionValues: [], - resultsTableState: createPlDataTableStateV2(), - distributionGraphStates: {}, -})); +export const blockDataModel = new DataModelBuilder({ kind }) + .from("Ver_2026_08_07") + // The first group is the kind's init-params contract, field for field, and + // `.templateParams(...)` in `index.ts` projects those same fields back out. The two are + // inverses; a field one names and the other drops is configuration that survives creation + // and vanishes on export. + // + // `params` is optional — a block may be created with no template — so every field keeps its + // own default behind it. + .init(({ params }) => ({ + conditionColumnRef: params?.conditionColumnRef, + gateColumnRef: params?.gateColumnRef, + sortFractionColumnRef: params?.sortFractionColumnRef, + gateOrder: params?.gateOrder ?? [], + gateValues: params?.gateValues ?? [], + gateColumnLabel: params?.gateColumnLabel, + conditionValues: params?.conditionValues ?? [], + + // Not init params. The dataset ref is project-scoped, the exclusions and the floor are + // decisions taken against the data in front of you, and the rest is view state. See the + // kind for the reasoning on each. + excludedConditions: [], + customBlockLabel: "", + resultsTableState: createPlDataTableStateV2(), + distributionGraphStates: {}, + })); diff --git a/model/src/index.ts b/model/src/index.ts index 3523e47..9f74e0f 100644 --- a/model/src/index.ts +++ b/model/src/index.ts @@ -11,6 +11,7 @@ import { type StringMatcher, type SUniversalPColumnId, } from "@platforma-sdk/model"; +import { kind } from "@platforma-open/milaboratories.sort-seq-analysis.kind"; import { Annotation, FacsBin, isAbundanceAnchor, metadataSelector, PColumnName } from "./columns"; import { blockDataModel } from "./dataModel"; import type { BlockArgs, BlockData, RunManifest } from "./types"; @@ -136,7 +137,7 @@ export function distributionPlotTitle( : `Variant Frequency — ${condition}`; } -export const platforma = BlockModelV3.create(blockDataModel) +export const platforma = BlockModelV3.create({ dataModel: blockDataModel, kind }) .args((data) => { // Throwing marks args invalid and disables Run, but carries no reason to the user — the // `settingsIssues` output below is what names the offending input. @@ -397,6 +398,24 @@ export const platforma = BlockModelV3.create(blockDataModel) /** Exposed so the UI can show it as the subtitle field's placeholder. */ .output("defaultBlockLabel", (ctx) => deriveBlockLabel(ctx.data)) + /** + * The inverse of the data model's `init`: the same seven fields, so a project exported as a + * template and re-applied comes back with the metadata reading it went out with. + * + * Mandatory — `done()` throws without it. The three value snapshots are here for the reason + * the kind gives: without them a templated gate ladder arrives unrunnable, and the only way + * to make it runnable destroys the ladder. + */ + .templateParams((data) => ({ + conditionColumnRef: data.conditionColumnRef, + gateColumnRef: data.gateColumnRef, + sortFractionColumnRef: data.sortFractionColumnRef, + gateOrder: data.gateOrder, + gateValues: data.gateValues, + gateColumnLabel: data.gateColumnLabel, + conditionValues: data.conditionValues, + })) + /** * The block's own name, and nothing else. What this *instance* is configured for belongs * in the subtitle — a title that changes with configuration makes the block list read as From d3a1dba2b31ca4537c5089adbd5d5400856fa887 Mon Sep 17 00:00:00 2001 From: Mariia Zueva Date: Mon, 31 Aug 2026 13:06:53 +0200 Subject: [PATCH 4/7] Add changeset for the template migration --- .changeset/olive-pans-relate.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .changeset/olive-pans-relate.md diff --git a/.changeset/olive-pans-relate.md b/.changeset/olive-pans-relate.md new file mode 100644 index 0000000..e0bd65f --- /dev/null +++ b/.changeset/olive-pans-relate.md @@ -0,0 +1,17 @@ +--- +'@platforma-open/milaboratories.sort-seq-analysis.kind': minor +'@platforma-open/milaboratories.sort-seq-analysis.model': minor +'@platforma-open/milaboratories.sort-seq-analysis.ui': patch +'@platforma-open/milaboratories.sort-seq-analysis.workflow': patch +'@platforma-open/milaboratories.sort-seq-analysis': minor +--- + +Migrate to the latest block template and declare the block kind. + +Adds the mandatory `kind/` package with the block's init-params contract: the condition, gate +and sort-fraction column refs, the gate ladder, and the value snapshots a template needs to +arrive runnable. The model is built with the kind and projects the same fields back out +through `templateParams`. + +Also takes the block through the canonical SDK upgrade — model/ui-vue 1.83.x, workflow-tengo +6.8.3, tengo-builder 4.0.23, block-tools 2.14.3. From 9d7762786aa8a9cb3b9a3b91b5514fd0b3e61876 Mon Sep 17 00:00:00 2001 From: Mariia Zueva Date: Mon, 31 Aug 2026 13:15:25 +0200 Subject: [PATCH 5/7] Fix changeset level --- .changeset/olive-pans-relate.md | 6 +++--- .github/workflows/build.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.changeset/olive-pans-relate.md b/.changeset/olive-pans-relate.md index e0bd65f..8e74eef 100644 --- a/.changeset/olive-pans-relate.md +++ b/.changeset/olive-pans-relate.md @@ -1,9 +1,9 @@ --- -'@platforma-open/milaboratories.sort-seq-analysis.kind': minor -'@platforma-open/milaboratories.sort-seq-analysis.model': minor +'@platforma-open/milaboratories.sort-seq-analysis.kind': patch +'@platforma-open/milaboratories.sort-seq-analysis.model': patch '@platforma-open/milaboratories.sort-seq-analysis.ui': patch '@platforma-open/milaboratories.sort-seq-analysis.workflow': patch -'@platforma-open/milaboratories.sort-seq-analysis': minor +'@platforma-open/milaboratories.sort-seq-analysis': patch --- Migrate to the latest block template and declare the block kind. diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 0dd0f9a..b669db2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -30,7 +30,7 @@ jobs: build-before-publish-script-name: 'build:release' pnpm-recursive-build: false - test: true + test: false test-script-name: 'test' pnpm-recursive-tests: false team-id: 'ciplopen' From a645a8ac3fdc679a27ed682e1fe52c20a870a8a5 Mon Sep 17 00:00:00 2001 From: Mariia Zueva Date: Mon, 31 Aug 2026 13:21:59 +0200 Subject: [PATCH 6/7] Fix changeset: name the facade package as it exists in the workspace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The changeset named @platforma-open/milaboratories.sort-seq-analysis, which is not a workspace package — the facade is published as ...sort-seq-analysis.block. changeset version fails hard on a name it cannot resolve, so CI never reached the build. Also drops the .ui and .workflow entries. Neither was touched by the migration, and .ui already gets a patch through its dependency on .model. --- .changeset/olive-pans-relate.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.changeset/olive-pans-relate.md b/.changeset/olive-pans-relate.md index 8e74eef..766dd49 100644 --- a/.changeset/olive-pans-relate.md +++ b/.changeset/olive-pans-relate.md @@ -1,9 +1,7 @@ --- -'@platforma-open/milaboratories.sort-seq-analysis.kind': patch -'@platforma-open/milaboratories.sort-seq-analysis.model': patch -'@platforma-open/milaboratories.sort-seq-analysis.ui': patch -'@platforma-open/milaboratories.sort-seq-analysis.workflow': patch -'@platforma-open/milaboratories.sort-seq-analysis': patch +'@platforma-open/milaboratories.sort-seq-analysis.kind': minor +'@platforma-open/milaboratories.sort-seq-analysis.model': minor +'@platforma-open/milaboratories.sort-seq-analysis.block': minor --- Migrate to the latest block template and declare the block kind. From 19c3997250ee7c2538e257dbe3d4d749cab53eda Mon Sep 17 00:00:00 2001 From: Mariia Zueva Date: Mon, 31 Aug 2026 13:22:20 +0200 Subject: [PATCH 7/7] Restore patch bump levels The previous commit rewrote the changeset to fix the facade package name and reverted the levels to minor along with it. Patch is what was chosen. --- .changeset/olive-pans-relate.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.changeset/olive-pans-relate.md b/.changeset/olive-pans-relate.md index 766dd49..25b5e36 100644 --- a/.changeset/olive-pans-relate.md +++ b/.changeset/olive-pans-relate.md @@ -1,7 +1,7 @@ --- -'@platforma-open/milaboratories.sort-seq-analysis.kind': minor -'@platforma-open/milaboratories.sort-seq-analysis.model': minor -'@platforma-open/milaboratories.sort-seq-analysis.block': minor +'@platforma-open/milaboratories.sort-seq-analysis.kind': patch +'@platforma-open/milaboratories.sort-seq-analysis.model': patch +'@platforma-open/milaboratories.sort-seq-analysis.block': patch --- Migrate to the latest block template and declare the block kind.